Différence entre l'utilisation d'un TNS nom et un nom de service dans une connexion JDBC
J'ai un basé sur java serveur (Tomcat) qui se connecte à une base de données Oracle à l'aide d'une connexion JDBC. Il existe plusieurs façons de se connecter à la base de données: SID, TNS nom, le nom du Service.
J'aimerais comprendre quelle est la différence entre chacune de ces connexions et quelle serait la connexion recommandée (SID, TNS, ou de service) en cas de connexion à une base de données en cluster. Ici, c'est le nom TNS, nous avons pour la base de données:
MY_NICE_TNS_NAME.MY_COMPANY.COM =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myhostname)(PORT = 1521))
(LOAD_BALANCE = YES)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = MY_NICE_SERVICE_NAME.MY_COMPANY.COM)
(FAILOVER_MODE =
(TYPE = SELECT)(METHOD = BASIC)(RETRIES = 180)(DELAY = 5)
)
)
)
Merci!
tant que vous n'avez qu'UN nom d'hôte spécifié il n'y a pratiquement pas de différence. Si vous étiez connecté à RAC(OPS) ou DataGuard, alors oui. SID est unique, non modifiable et se termine avec le numéro. Alors que le SERVICE_NAME peuvent être présents sur un ou plusieurs nœuds. Et il peut aussi se déplacer entre les nœuds
Merci, un grand savoir. Voir mon commentaire ci-dessous. Nous avons un RAC.
si vous utilisez RAC ensuite, vous devez spécifier le nom d'hôte de chaque nœud. voir: stackoverflow.com/questions/13424385/...
Merci, un grand savoir. Voir mon commentaire ci-dessous. Nous avons un RAC.
si vous utilisez RAC ensuite, vous devez spécifier le nom d'hôte de chaque nœud. voir: stackoverflow.com/questions/13424385/...
OriginalL'auteur Luis Garcia | 2013-04-04
Vous devez vous connecter pour publier un commentaire.
Oracle SID est le nom unique qui identifie de manière unique une instance de base de données/où en tant que nom de Service est le TNS alias que vous donnez lorsque vous vous connectez à distance à votre base de données et ce nom de Service est enregistré dans Tnsnames.ora fichier sur vos clients et il peut être le même que SID et vous pouvez aussi lui donner un autre nom que vous voulez.
SERVICE_NAME est la nouvelle fonctionnalité d'oracle 8i à partir de la base de données qui peut s'inscrire lui-même avec l'auditeur. Si la base de données est enregistrée auprès de l'auditeur de cette façon, alors vous pouvez utiliser SERVICE_NAME paramètre dans tnsnames.ora sinon utiliser SID dans tnsnames.ora.
Aussi, si vous avez OPS (RAC), vous aurez différents SERVICE_NAME pour chaque instance.
SERVICE_NAMES spécifie un ou plusieurs noms pour le service de base de données à laquelle cette instance se connecte. Vous pouvez spécifier plusieurs services de noms dans l'ordre à la distinction entre les différents usages de la même base de données. Par exemple:
SERVICE_NAMES = sales.acme.com, widgetsales.acme.com
Vous pouvez également utiliser les services de noms pour identifier un service unique qui est disponible à partir de deux bases de données différentes par le biais de l'utilisation de la réplication.
Dans un Oracle Parallel Server l'environnement, vous devez définir ce paramètre pour chaque instance.
Le TNS est le sql*net fichier de configuration qui définit datbases adresse de l'établissement de la connexion.
Oui, c'est correct. Dans votre TNS vous pouvez spécifier vos différents nœuds pour votre RAC. Dans ce cas, si un nœud tombe en panne, le service est toujours disponible.
OriginalL'auteur TheEwook
SERVICE_NAME
est un alias à une instance de base de données (ou de nombreux cas). Le but principal de ce est si vous exécutez un cluster. L'utilisation de ce nous pouvons nous connecter à des bases de données au sein d'un cluster. Et de l'autre manière, à l'aide deSID
(Système IDentifier) nous pouvons nous connecter à une instance de base de données, qui est un unique nom d'une instance de base de données Oracle.En bref, SID = le nom unique de votre DB, SERVICE_NAME = l'alias utilisé lors de la connexion.
Il y a plusieurs façons de fournir des informations de base de données comme Spécifiée Directement, tnsnames.ora (c'est à dire du nom TNS), Annuaire LDAP, Réseau des Services d'Information.
Un TNS (Transparent Nréseau Substrate) est le nom de l'entrée dans
tnsnames.ora
fichier, qui est conservé dans$ORACLE_HOME/network/admin
Ce fichier contient l'information qui est utilisé par le système pour se connecter à la base de données oracle. À l'aide de ce qu'un client peut récupérer serveur associé de l'information de manière transparente. Il contient les informations suivantes
E. g
Pilotes JDBC pour se connecter à une chaîne de connexion à l'aide de TNS comme suit
OriginalL'auteur Premraj