195 votes

Comment le SID est différent du nom de service dans le fichier tnsnames.ora d'Oracle ?

Pourquoi ai-je besoin de deux d'entre eux ? Quand je dois utiliser l'un ou l'autre ?

2 votes

Comment trouver le nom de notre service lorsque j'ai le nom du SID ?

165voto

Matthew Watson Points 7762

Citation de @DAC

En bref : SID = le nom unique de votre base de données. votre base de données, ServiceName = l'alias utilisé lors de la connexion

Ce n'est pas tout à fait vrai. SID = nom unique de l'INSTANCE (par exemple le processus oracle exécuté sur la machine). Oracle considère la "base de données" comme étant les fichiers.

Nom du service = alias d'une INSTANCE (ou de plusieurs instances). L'objectif principal est que si vous utilisez un cluster, le client peut dire "connectez-moi à SALES.acme.com "L'administrateur de base de données peut modifier à la volée le nombre d'instances qui sont disponibles pour l'utilisateur. SALES.acme.com demandes, ou même de déménager SALES.acme.com vers une base de données complètement différente sans que le client n'ait à modifier aucun paramètre.

2 votes

Donc, dans votre exemple, il pourrait y avoir des SIDs Sales1 , Sales2 y Sales3 qui sont tous disponibles via le nom du service Sales ?

2 votes

Je pense que c'est le contraire qui se produit : Vous avez un SID qui est disponible pour plusieurs services. Vous pouvez alors prendre l'un des services et le diriger vers un SID/base de données différent.

0 votes

Peut-on avoir le même nom de SID Oracle que le nom TNS ? Cela posera-t-il un problème ?

28voto

DAC Points 873

Veuillez voir : http://www.sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htm

Quelle est la différence entre Oracle SIDs et Oracle SERVICE NAMES. Un outil de configuration de outil de configuration recherche le NOM DE SERVICE et puis le suivant cherche les SIDs ! Que se passe-t-il ? ce qui se passe ? !

Oracle SID est le nom unique que identifie de manière unique votre instance/base de données, tandis que le nom est l'alias TNS que vous donnez lorsque vous vous connectez à distance à votre base de données et ce nom de service est enregistré dans le fichier Tnsnames.ora sur votre ordinateur. clients et il peut être le même que le SID et vous pouvez également lui donner tout autre nom que vous voulez.

SERVICE_NAME est la nouvelle fonctionnalité de d'oracle 8i, dans laquelle la base de données peut s'enregistrer auprès de l'auditeur. Si base de données est enregistrée auprès de l'auditeur de cette manière, vous pouvez utiliser le paramètre SERVICE_NAME dans tnsnames.ora sinon - utilisez SID dans tnsnames.ora.

De plus, si vous disposez d'un OPS (RAC), vous pourrez vous aurez un SERVICE_NAME différent pour chaque instance.

SERVICE_NAMES spécifie un ou plusieurs noms pour le service de base de données auquel base de données auquel cette instance se connecte. Vous pouvez spécifier plusieurs noms de services afin afin de faire la distinction entre les différentes différentes utilisations de la même base de données. Pour exemple :

SERVICE_NAMES = ventes.acme.com, widgets ventes.acme.com

Vous pouvez également utiliser les noms de service pour identifier un seul service qui est disponible à partir de deux bases de données différentes grâce à l'utilisation de la réplication.

Dans un serveur Oracle Parallel vous devez définir ce paramètre paramètre pour chaque instance.

En bref : SID = le nom unique de votre instance de DB, ServiceName = l'alias utilisé lors de la connexion.

1 votes

Je suis confus. Ne devrait-on pas dire qu'en RAC, vous aurez un "INSTANCE_NAME" différent pour chaque instance ? Et un SERVICE_NAME peut être associé à plusieurs instances ?

0 votes

Je pense que nous devrions éviter de dire "Instance/base de données". Nous avons établi que l'instance et la base de données sont différentes. L'instance est le programme oracle qui s'exécute en mémoire. La base de données est le fichier réel qui contient les données. Une analogie serait Microsoft Word. L'application Word est l'"Instance". Le document réel que vous ouvrez est la "base de données".

24voto

seorphates Points 539

Je sais que c'est ancien, mais lorsque l'on a affaire à des outils, des utilisations, des utilisateurs ou des symptômes difficiles en ce qui concerne le nommage des sid et des services, on peut ajouter un peu de souplesse à vos entrées tnsnames, par exemple :

mySID, mySID.whereever.com =
(DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = myHostname)(PORT = 1521))
  )
  (CONNECT_DATA =
    (SERVICE_NAME = mySID.whereever.com)
    (SID = mySID)
    (SERVER = DEDICATED)
  )
)

J'ai juste pensé que je laisserais ceci ici car c'est légèrement pertinent pour la question et peut être utile lorsque l'on tente de contourner certaines idiosyncrasies moins claires du réseau oracle.

7voto

swaroop Points 161

qu'est-ce qu'un SID et un nom de service

veuillez consulter la documentation d'oracle à l'adresse https://docs.oracle.com/cd/B19306_01/network.102/b14212/concepts.htm

Au cas où le lien ci-dessus ne serait pas accessible à l'avenir, au moment de la rédaction de cette réponse, le lien ci-dessus vous dirigera vers la rubrique "Identification du service de base de données et de l'instance de base de données" dans le chapitre Concepts de connectivité du "Database Net Services Administrator's Guide". Ce guide est publié par oracle dans le cadre de "Oracle Database Online Documentation, 10g Release 2 (10.2)".

Quand je dois utiliser l'un ou l'autre ? Pourquoi ai-je besoin de deux d'entre eux ?

Considérez le mappage ci-dessous dans un environnement RAC,

SID NOM_DU_SERVICE
bob1 bob
bob2 bob
bob3 bob
bob4 bob

si l'équilibrage de la charge est configuré, l'écouteur "équilibrera" la charge de travail entre les quatre SID. Même si l'équilibrage de charge est configuré, vous pouvez vous connecter à bob1 tout le temps si vous le souhaitez en utilisant le SID au lieu de SERVICE_NAME.

Veuillez vous référer, https://community.oracle.com/thread/4049517

1voto

Ashish Points 1

Selon le glossaire Oracle :

Le SID est un nom unique pour une instance de la base de données Oracle. ---> Pour basculer entre les bases de données Oracle, les utilisateurs doivent spécifier le SID souhaité <---. Le SID est inclus dans les parties CONNECT DATA des descripteurs de connexion dans un fichier TNSNAMES.ORA. dans un fichier TNSNAMES.ORA, et dans la définition de l'écouteur réseau dans le fichier LISTENER.ORA. Également connu sous le nom de System ID. Nom du service Oracle peut être n'importe quoi de descriptif comme "MyOracleServiceORCL". Sous Windows, Vous pouvez exécuter votre nom de service en tant que service sous Windows Services.

Vous devriez utiliser le SID dans TNSNAMES.ORA comme meilleure approche.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X