ORA-12154: TNS:could not resolve the connect identifier specified

一:首先看告警日发现如下报错:
oracle告警日志报错:
TNS-12535: TNS:operation timed out
ns secondary err code: 12560
nt main err code: 505
TNS-00505: Operation timed out
nt secondary err code: 110
nt OS err code: 0
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.112)(PORT=55428))
Tue Dec 12 17:27:39 2017
二:然后尝试在192.168.0.112这台服务器上,安装客户端,之后再配置tnsnames.ora
db44 =
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.147)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.146)(PORT = 1521)) (LOAD_BALANCE = yes) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))
环境变量:
export ORACLE_HOME=/usr/lib/oracle/12.2/client64
export ORACLE_BASE=/usr/lib/oracle/12.2
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
再次尝试远程连接:报错ORA-12154:
[ops@S112 admin]$ sqlplus64 mcrm/dsdfgs@db44
SQL*Plus: Release 12.2.0.1.0 Production on Wed Dec 13 08:58:14 2017
Copyright (c) 1982, 2016, Oracle. All rights reserved.
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
解决:
在环境变量中配置变量名:TNS_ADMIN=tnsnames.ora所在的路径
export TNS_ADMIN=/usr/lib/oracle/12.2/network/admin
问题分析:ORA-12154: TNS:could not resolve the connect identifier specified是找不到tnsname.ora, 默认会到$ORACLE_HOME/network/admin路径下去找tnsname.ora,如果报这个错,肯定是你的tnsname.ora没有在$ORACLE_HOME/network/admin路径下,你需要设置环境变量TNS_ADMIN=(tnsnames.ora所在的路径),来告诉它tnsnames.ora在哪里。
另外:
[ops@S112 admin]$ sqlplus64 mcrm/dsdfgs@db44 报错:
sqlplus64: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
环境变量中变量 LD_LIBRARY_PATH设置的有问题,或者没有设置。
小结:客户端链接oracle有问题的话,如果服务端防火墙为关闭状态,监听状态也正常,网络也能通,基本上那就是客户端的环境变量或者是程序配置的问题了。


请使用浏览器的分享功能分享到微信等