sviluppo-web-qa.it

Differenza Oracle tra SID, Nome DB, Dominio DB, Nome database globale, Nome servizio, Alias ​​servizio e Nome istanza

Qualcuno può spiegarmi qual è la differenza tra SID, Nome DB, Dominio DB, Nome database globale, Nome servizio, Alias ​​servizio e Nome istanza in Oracle?

Grazie Michael

14

SID = identifica l'istanza del database (nome del database + numero dell'istanza). Pertanto, se il nome del database è somedb e il numero di istanza è 3, il SID è somedb3.

Nome DB = Nome del database (il database può essere condiviso da più istanze)

Dominio DB = Solitamente uguale al dominio della tua azienda (somecompany.com)

Nome database globale = Nome database + dominio database (somedb.somecompany.com)

Nome servizio = Un "connettore" per una o più istanze. È spesso utile creare nomi di servizi aggiuntivi in ​​un ambiente RAC poiché il servizio può essere modificato per utilizzare determinati SID come connessioni primarie o secondarie o per non utilizzare affatto determinati SID.

Service Alias ​​= Un alias per il nome del servizio (proprio come un CNAME, ecc.). Supponi che il nome del tuo servizio sia significativo per il dba, ma forse è un po 'esoterico. Creare un alias di servizio e denominarlo come qualcosa che sarà significativo per l'utente.

Nome istanza = uguale a SID

11
jswoods7

Il modo in cui descrivi SID è solo il comportamento PREDEFINITO in una configurazione RAC. Il SID (== nome_istanza) è proprio questo: il nome della tua istanza.

Lo guardo sempre così: un'istanza, è un'istanza del software RDBMS. Un'istanza MOUNTS un file di controllo, (modifica montaggio database) In questo controfile viene scritta la posizione dei file di dati. la raccolta di file di dati (ok, e i file di controllo) == il database.

Un database ha un nome, il nome_db e (facoltativamente) un dominio (dominio_db) -> insieme nome_db globale. Ora immagina di replicare (DataGuard) il tuo database. Vorresti mantenere lo stesso DB_name, giusto? (Voglio dire: per quanto riguarda i dati, è il database SAME) Ma allora come identificare le due 'versioni' del tuo database? Inserisci "DB_UNIQUE_NAME" ... Sì, si sta confondendo ...

La mia pratica personale è quella di nominare INSTANCE come db_unique_name in una configurazione DataGuard e attenersi ai nomi RAC (db_name + Instance_Number) in una configurazione RAC. Quindi, i nomi_db_unique che compongo sono generalmente come nome_db + suffisso 1 lettera (MYDBa MYDBb ecc.)

Saluti, Paul

4
paul

SID è un'istanza. Meglio evitare di usare il termine "istanza del database", solo istanza.

"SID = identifica l'istanza del database (nome database + numero istanza)" è errata. "Un'istanza, è un'istanza del software RDBMS" è errata. Un DBMS disinstallato o installato è solo DBMS.

"Dominio DB = solitamente uguale al dominio della tua azienda" dovrebbe essere evitato. Ho riscontrato un problema con l'utilizzo del dominio e i problemi scompaiono quando non si utilizza il dominio.

Anche "Nome database globale = nome database + dominio database" è errato. Il nome del database globale è il nome del servizio. È così semplice.

"SID = identifica l'istanza del database (nome del database + numero dell'istanza). Quindi, se il nome del tuo database è somedb e il tuo numero di istanza è 3, allora il tuo SID è somedb3." è sbagliato. Non esiste una tale catenazione di identità o nome.

0
Bernaridho