Comment générer un fichier tnsnames.ora pour me connecter à une base de données Oracle?


22

J'ai installé Oracle 11g et je peux me connecter sysmanà la base de données Oracle, mais tnsnames.oraje ne trouve aucun fichier.

Dois-je générer moi-même le fichier tnsnames.ora? Si oui, où dois-je le placer? Sinon, comment Oracle le génère-t-il pour moi? Si j'ai besoin de le générer, quelle est la syntaxe appropriée pour le fichier?

Réponses:


15

Vous pouvez facilement créer un fichier tnsnames.ora [texte]. Il devrait être dans $ ORACLE_HOME / network / admin / et devrait ressembler à ceci:

 ORATST=
 (description=
   (address_list=
     (address = (protocol = TCP)(host = fu.bar)(port = 1521))
   )
 (connect_data =
   (service_name=oratst)
 )
)

Bonne réponse, même si j'ai trouvé que je devais nommer mon dossier $HOME/.tnsnames.ora; le chemin suggéré dans la réponse semble ignoré par sqlplus.
DuffJ

@DuffJ alors quelque chose ne va pas avec votre environnement.
miracle173

11

Le répertoire par défaut d'un fichier tnsnames.ora est

/u01/app/oracle/product/<version>/<dbname>/network/admin/tnsnames.ora

Contenu:

<alias> = (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = <ip>)(PORT = <port>))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = <dbname>)
    )
  )
  • alias: vous pouvez le choisir et l'utiliser plus tard comme chaîne de connexion.
  • port: la valeur par défaut est 1521

Plus d'informations ici: http://docs.oracle.com/cd/B28359_01/network.111/b28317/tnsnames.htm


6
Le répertoire par défaut n'est rien de la sorte. Il est relatif $ORACLE_HOMEet sera donc $ORACLE_HOME/network/admin(où $ORACLE_HOMEpeuvent être plusieurs répertoires différents où il y a plus d'un niveau d'installation / correctif Oracle) ou peut être remplacé par le$TNS_ADMIN variable d'environnement. Il appartient entièrement à l'utilisateur où réside le logiciel.
Philᵀᴹ

4
Honnêtement, c'est la valeur par défaut sur un système Linux ... Si vous ne touchez à rien, il sera mis là ... étant donc la valeur par défaut. Mais $ ORACLE_HOME s'il n'est pas falsifié est en effet une meilleure solution.
Munchi

J'ai exécuté Oracle sur des centaines de systèmes Linux et ce n'est PAS la valeur par défaut, et il n'y a rien de tel. Peut-être que vous voulez dire que c'est l'exemple de la documentation, eh bien, ils ont dû choisir quelque chose. Il n'y a pas de distribution Linux que je connaisse qui ait un système de fichiers / u01 "par défaut", vous devez l'avoir créé et dire à Oracle de l'utiliser!
Gaius

2

$ORACLE_HOME/network/adminest le répertoire où le tnsnames.orafichier est créé par DBCA et / ou NetCA.

$ORACLE_HOMEest un chemin d'accès /u01/app ..., c'est un chemin conforme à l'OFA que l'installateur utilise par défaut s'il n'est pas remplacé par le programme d'installation.


2

Si votre système d'exploitation est Windows 10 , vous pouvez trouver un tnsnames.orafichier dans le chemin UNC suivant:

C:\app\myAccount\product\11.2.0\dbhome_1\NETWORK\ADMIN

myAccountest le nom de votre compte Windows.


1
En d'autres termes, c'est %ORACLE_HOME%\NETWORK\ADMIN, non?
Andriy M

Oui, c'est correcte. N'oubliez pas Oracle par défaut, stockez tnsnames.ora dans le répertoire $ ORACLE_HOME / network / admin sur les systèmes d'exploitation UNIX et dans le répertoire% ORACLE_HOME% \ network \ admin sur les systèmes d'exploitation Windows.
S. Mayol

$ ORACLE_HOME ne fonctionnait pas pour moi sur mon environnement, donc connaître le chemin complet m'a vraiment aidé ... le fait de savoir qu'il était dans C: \ app \ ... m'a donné le départ dont j'avais besoin et j'ai pu le retrouver à partir de Là. M'a sauvé des heures de recherche!
Gallus

1

Autant que je sache, les tnsnames.orabesoins doivent être placés dans le <ORA_INSTALL_FOLDER>\product\11.1.0\client_1\network\admin\dossier

La documentation peut être trouvée ici

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.