it-swarm-eu.dev

Différence Oracle entre SID, nom de base de données, domaine de base de données, nom de base de données globale, nom de service, alias de service et nom d'instance

Quelqu'un peut-il m'expliquer quelle est la différence entre SID, nom de base de données, domaine de base de données, nom de base de données globale, nom de service, alias de service et nom d'instance dans Oracle?

Merci Michael

14
Michael Ellick Ang

SID = identifie l'instance de base de données (nom de base de données + numéro d'instance). Donc, si le nom de votre base de données est somedb et votre numéro d'instance est 3, votre SID est somedb3.

Nom de la base de données = nom de la base de données (la base de données peut être partagée b/t plusieurs instances)

Domaine DB = généralement le même que le domaine de votre entreprise (somecompany.com)

Nom de la base de données globale = nom de la base de données + domaine de la base de données (somedb.somecompany.com)

Nom du service = Un "connecteur" pour une ou plusieurs instances. Il est souvent utile de créer des noms de service supplémentaires dans un environnement RAC car le service peut être modifié pour utiliser des SID particuliers comme connexions principales ou secondaires, ou pour ne pas utiliser certains SID du tout.

Alias ​​de service = alias du nom du service (comme un CNAME, etc.). Supposons que vous donniez à votre service un nom significatif pour la base de données, mais c'est peut-être un peu ésotérique. Créez un alias de service et nommez-le quelque chose qui sera significatif pour l'utilisateur.

Nom d'instance = identique au SID

11
jswoods7

La façon dont vous décrivez SID est uniquement le comportement DEFAULT dans une configuration RAC. Le SID (== nom_instance) n'est que cela: le nom de votre instance.

Je le regarde toujours comme ceci: une instance, est une instance du logiciel SGBDR. Une instance MOUNTS un fichier de contrôle, (modifier le montage de la base de données) Dans ce controfile sont écrits l'emplacement des fichiers de données. la collecte des fichiers de données (d'accord, et les fichiers de contrôle) == la base de données.

Une base de données a un nom, le db_name et (éventuellement) un domaine (db_domain) -> ensemble global_db_name. Imaginez maintenant que vous répliquez (DataGuard) votre base de données. Vous souhaitez conserver le DB_name le même, non? (Je veux dire: au niveau des données, c'est la même base de données) Mais alors comment identifier les deux "versions" de votre base de données? Entrez 'DB_UNIQUE_NAME' ... Oui, ça devient confus ...

Ma pratique personnelle est de nommer l'INSTANCE comme db_unique_name dans une configuration DataGuard et de coller avec les noms RAC (db_name + Instance_Number) dans une configuration RAC. Ensuite, les db_unique_names que je compose sont généralement comme db_name + 1-letter-suffix (MYDBa MYDBb etc.)

À la vôtre, Paul

4
paul

SID est une instance. Mieux vaut éviter d'utiliser le terme "instance de base de données", juste instance.

"SID = identifie l'instance de base de données (nom de base de données + numéro d'instance)" est incorrect. "Une instance, est une instance du logiciel SGBDR" est incorrect. Un SGBD désinstallé ou installé n'est qu'un SGBD.

"Domaine DB = généralement le même que le domaine de votre entreprise" doit être évité. J'ai rencontré un problème lors de l'utilisation du domaine et les problèmes disparaissent lorsque je n'utilise pas le domaine.

"Global Database Name = nom de la base de données + domaine de la base de données" est également incorrect. Le nom de la base de données globale est le nom du service. C'est si simple.

"SID = identifie l'instance de base de données (nom de base de données + numéro d'instance). Donc, si votre nom de base de données est somedb et votre numéro d'instance est 3, alors votre SID est somedb3." est faux. Il n'y a pas une telle caténation d'identité ou de nom.

0
Bernaridho