Citazione di @DAC
In breve:SID =il nome univoco del tuo DB, ServiceName =l'alias utilizzato durante la connessione
Non rigorosamente vero. SID =nome univoco dell'ISTANZA (es. il processo Oracle in esecuzione sulla macchina). Oracle considera il "Database" i file.
Nome servizio =alias di un'ISTANZA (o molte istanze). Lo scopo principale di questo è se stai eseguendo un cluster, il client può dire "connettimi a SALES.acme.com
", il DBA può modificare al volo il numero di istanze disponibili per SALES.acme.com
richieste o anche spostare SALES.acme.com
in un database completamente diverso senza che il client debba modificare alcuna impostazione.