Parfois, je rencontre des problèmes de connexion Oracle parce que je ne sais pas quel fichier tnsnames.ora utilise mon client de base de données.
Quelle est la meilleure façon de comprendre cela? ++ heureux pour diverses solutions de plate-forme.
Parfois, je rencontre des problèmes de connexion Oracle parce que je ne sais pas quel fichier tnsnames.ora utilise mon client de base de données.
Quelle est la meilleure façon de comprendre cela? ++ heureux pour diverses solutions de plate-forme.
Oracle fournit un utilitaire appelé tnsping
:
R:\>tnsping someconnection
TNS Ping Utility for 32-bit Windows: Version 9.0.1.3.1 - Production on 27-AUG-20
08 10:38:07
Copyright (c) 1997 Oracle Corporation. All rights reserved.
Used parameter files:
C:\Oracle92\network\ADMIN\sqlnet.ora
C:\Oracle92\network\ADMIN\tnsnames.ora
TNS-03505: Failed to resolve name
R:\>
R:\>tnsping entpr01
TNS Ping Utility for 32-bit Windows: Version 9.0.1.3.1 - Production on 27-AUG-20
08 10:39:22
Copyright (c) 1997 Oracle Corporation. All rights reserved.
Used parameter files:
C:\Oracle92\network\ADMIN\sqlnet.ora
C:\Oracle92\network\ADMIN\tnsnames.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = **)
(PROTOCOL = TCP) (Host = ****) (Port = 1521))) (CONNECT_DATA = (SID = ENTPR0
1)))
OK (40 msec)
R:\>
Cela devrait montrer quel fichier vous utilisez. L'utilitaire est situé dans le répertoire Oracle bin
.
Pour linux:
$ strace sqlplus -L scott/tiger@orcl 2>&1| grep -i 'open.*tnsnames.ora'
montre quelque chose comme ça:
open("/opt/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora",O_RDONLY)=7
Passer à
$ strace sqlplus -L scott/tiger@orcl 2>&1| grep -i 'tnsnames.ora'
montrera tous les chemins de fichiers qui échouent.
Il existe un autre emplacement où l’emplacement TNS est stocké: Si vous utilisez Windows, ouvrez regedit
et accédez à My HKEY Local Machine/Software/ORACLE/KEY_OraClient10_home1
où KEY_OraClient10_home1
est votre domicile Oracle. S'il existe une entrée de chaîne appelée TNS_ADMIN
, sa valeur pointera vers le fichier TNS utilisé par Oracle sur votre ordinateur.
Sur ma machine de développement, j'ai trois versions différentes du logiciel client Oracle. Je gère le fichier tnsnames.ora
dans l’un d’eux. Dans les deux autres, j'ai entré dans le fichier tnsnames.ora
:
ifile=path_to_tnsnames.ora_file/tnsnames.ora
Ainsi, si, pour une raison quelconque, le client utilise le mauvais fichier tnsnames.ora
, il se terminera toujours à la version la plus récente.
Pour Windows: Filemon de SysInternals va vous montrer quels sont les fichiers en cours d'accès.
N'oubliez pas de régler vos filtres de sorte que vous ne sont pas débordés par le bavard système de fichiers de la circulation.
Ajouté: Filemon ne fonctionne pas avec les nouvelles versions de Windows, alors vous pourriez avoir à utiliser le Moniteur de Processus.
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.