我如何列出 tnsnames
How do I list tnsnames
有什么简单的方法可以通过命令行列出我系统中所有可用的 tnsname 吗?
每当我需要查找 tnsname 时,我只需使用 tnsping 命令搜索 tnsnames.ora 文件,然后在文本编辑器中打开它进行扫描。然后随后 运行 tnsping [tnsname] 检查连接健康状况。我在想是否有像 tnslist 或 tns -l 这样的简单命令来列出所有的 tnsname,但我找不到这样的命令。
没有tnsnames.ora文件列表命令。但是有几个选项可以放置 tnsnames.ora 文件。只能使用查找命令
oracle客户端搜索tnsnames.ora个文件的优先级
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 ~]#
假设你有这样一个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'
[oracle@mydb12c~ ] . .bash_profile
lstns : tnsnames.ora listing
[oracle@mydb12c~ ] lstns
DB01
DB02
有什么简单的方法可以通过命令行列出我系统中所有可用的 tnsname 吗?
每当我需要查找 tnsname 时,我只需使用 tnsping 命令搜索 tnsnames.ora 文件,然后在文本编辑器中打开它进行扫描。然后随后 运行 tnsping [tnsname] 检查连接健康状况。我在想是否有像 tnslist 或 tns -l 这样的简单命令来列出所有的 tnsname,但我找不到这样的命令。
没有tnsnames.ora文件列表命令。但是有几个选项可以放置 tnsnames.ora 文件。只能使用查找命令 oracle客户端搜索tnsnames.ora个文件的优先级
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 ~]#
假设你有这样一个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'
[oracle@mydb12c~ ] . .bash_profile
lstns : tnsnames.ora listing
[oracle@mydb12c~ ] lstns
DB01
DB02