2017-09-27 3 views
2

Gibt es einfachen Weg, um alle verfügbaren Tnsnamen in meinem System über die Befehlszeile aufzulisten?Wie listet ich Tnsnamen auf

Immer wenn ich ein tnsname herauszufinden müssen, ich suche einfach nur für die tnsnames.ora Datei mit tnsping Befehl und öffnen Sie sie in einem Texteditor durch zu scannen. Führen Sie anschließend tnsping [tnsname] aus, um den Verbindungszustand zu überprüfen. Ich dachte, wenn es einen einfachen Befehl wie tnslist oder tns -l gibt, um alle tnsnames aufzulisten, aber ich konnte solche nicht finden.

+0

speichern alle SIDs, Dienstleistungen in einer einzigen Datei einmal und Schleife durch diese Datei und kann tnsping in der Schleife . –

Antwort

1

Unter der Annahme, dass Sie eine solche Datei tnsnames.ora:

DB01 = 
    (DESCRIPTION = 
     (FAILOVER=off) 
     (LOAD_BALANCE=off) 
      (ADDRESS = (PROTOCOL = TCP)(HOST = db01-vip)(PORT = 1521)) 
     (CONNECT_DATA = 
      (SERVER = DEDICATED) 
      (SERVICE_NAME = mydb1) 
     ) 
    ) 

DB02 = 
    (DESCRIPTION = 
     (FAILOVER=off) 
     (LOAD_BALANCE=off) 
      (ADDRESS = (PROTOCOL = TCP)(HOST = db02-vip)(PORT = 1531)) 
     (CONNECT_DATA = 
      (SERVER = DEDICATED) 
      (SERVICE_NAME = mydb2) 
     ) 
    ) 

bearbeiten .profile oder .bash_profile wie folgt aus:

[oracle @ mydb12c ~] vi Bash_profile

ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1; export ORACLE_HOME 
... 
alias lstns="sed -n '/DESCR/{x;p;d;}; x' $ORACLE_HOME/network/admin/tnsnames.ora | sed "s/=/${s}/"" 
echo 'lstns : tnsnames.ora listing' 

[oracle @ mydb12c ~]. Bash_profile

lstns : tnsnames.ora listing 

[oracle @ mydb12c ~] lstns

DB01 
    DB02 
+0

Vielen Dank. Wir werden ähnliche .bat-Datei auch in Windows haben und es in den Systempfad einfügen. Also, wir werden den Befehl vom Terminal aus nahtlos ausführen. Ich dachte zuerst, dass es ein einziges Paket mit Oracle gibt. – Damith

+0

@Damith du bist willkommen. –

0

Es gibt keinen Dateilistenbefehl tnsnames.ora. Aber es gibt mehrere Optionen, wo die Datei tnsnames.ora platziert werden kann. Sie können nur den Befehl find verwenden Die Priorität der Suche nach Tnsnames.ora-Dateien durch den Oracle-Client.

1) current directory (Linux, Windows) 
    2) $TNS_ADMIN (Linux, Windows environment variable, Windows registry key) 
    3) $ORACLE_HOME/network/admin (Linux, Windows) 
    4) /etc (Linux) 
    5) %USERPROFILE%/AppData/Oracle (Windows 7). 


[[email protected] ~]# find/-name tnsnames.ora 
/opt/ora/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora 
/opt/ora/app/oracle/product/11.2.0/dbhome_1/network/admin/samples/tnsnames.ora 
/home/oracle/diman/tnsnames.ora 
[[email protected] ~]# 
+1

das ist nicht seine Frage – Ravi

+0

@Dmitry Demin, Danke für die Antwort, aber was ich wissen möchte ist, wie Tnsnamen auflisten. – Damith

+0

Es gibt keinen tnsnames.ora-Dateiauflistungsbefehl. Es gibt jedoch mehrere Optionen, wo die Datei tnsnames.ora platziert werden kann. Sie können nur den Befehl find verwenden. –

Verwandte Themen