Как мне перечислить tnsnames

Есть ли простой способ перечислить все доступные tnsname в моей системе через командную строку?

Всякий раз, когда мне нужно узнать имя tnsname, я просто ищу файл tnsnames.ora с помощью команды tnsping и открываю его в текстовом редакторе для просмотра. Затем выполните tnsping [tnsname], чтобы проверить работоспособность соединения. Я думал, есть ли какая-нибудь простая команда, такая как tnslist или tns -l, чтобы вывести список всех tnsnames, но я не смог найти такое.

2 ответа

Решение

Предполагая, что у вас есть такой 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) 
         ) 
     ) 

отредактируйте ваш.profile или.bash_profile следующим образом:

[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'

[оракул @ mydb12c ~]..bash_profile

lstns : tnsnames.ora listing

[oracle @ mydb12c ~] lstns

  DB01 
  DB02

Нет команды вывода файла tnsnames.ora. Но есть несколько вариантов размещения файла tnsnames.ora. Вы можете использовать только команду поиска Приоритет поиска файлов tnsnames.ora клиентом oracle.

    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). 


[root@elbrus-1 ~]#  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
[root@elbrus-1 ~]#
Другие вопросы по тегам