ORA-12154_TNS⽆法解析指定的连接标识符
ORA-12154: TNS: ⽆法解析指定的连接标识符(原创)
sql连接不上服务器
相信作为ORACLE数据库的开发⼈员没有少碰到“ORA-12154: TNS: ⽆法解析指定的连接标识符”,今天我也⼜碰到了类似的情况,将我的解决⽅法进⾏⼩结,希望能对碰到同样问题的友⼈们提供帮助。
问题场景描述:
服务器端版本:oracle 10.2.0.10
客户端版本:oracle 10.2.0.10
客户端开发⼯具:PL/SQL Developer
通过客户端来连接服务器,其主要⽂件就是通过客户端的a来配置,在原⽂件的基础上增加:
SID别名 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = SERVER_IP)(PORT = 1521))
)
(CONNECT_DATA =
(SID = SID_NAME)
)
)
例:
dev_db =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.168.10.5)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ora10)
)
)
通过PL/SQL Developer连接dev_db时,报“ORA-12154: TNS: ⽆法解析指定的连接标识符”。(这个问题以前也碰到过,但解决⽅法不太⼀样,因具体的问题不太⼀样。)
我将⾃⼰知道的⼀些解决⽅法说⼀下:
1.先检查服务器端的监听服务是否打开,如果没有打开请启动其监听
 客户端:tnsping <tns_name>
服务器Linux下:
     #>lsnrctl status 查看监听状态
     #>lsnrctl start 启动监听
2.通过Sql Plus连接⼀下试试,如果Sql Plus连接能成功,那就说明你的a内容有错误
我的问题就在别名dev_db前⾯有⼀个空格,这个可以通过⽂本编辑器(Edit Plus,UE等)来查看是否有空格,只要有空格那就肯定是不⾏的,⽽且如果那段内容是出现在⽂件的中间的话,将导致该⽂件⾥所有相应的连接别名都不成功,如果是在最后⾯就只有其⾃⾝连接别名不能成功,其他连接别名还是能连接成功。(注:我的a配置了多个数据库实例的连接,所有才有多个连接别名。)
如:
空格dev_db =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.168.10.5)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ora10)
)
)
3.如果确保你的a内容没有错误,那请将%ORACLE_HOME%\product\10.2.0\db_1\NETWORK\ADMIN⽬录下的所有⽂件删了,然后重新连接,⼀般就能解决了。
说明⼀下:那个⽬录⾥的⽂件是在你建⽴连接的时候动态⽣成的,不要怕删了会有问题
4.进⼊PLSQL Developer的主界⾯,在登录界⾯选择取消即不登录进⼊主界⾯,然后选择菜单Tools(⼯具)-Preferences(⾸选项),在设置窗⼝中,选择Oracle-Connection(连接),对应设置窗⼝中,到Oracle Home(Oracle主⽬录),选择你本地所安装客户端的版本,保存设置,然后重新启动PLSQL Developer,这时就可以正常登录了。
如果您还碰有ORA-12154:错误代码的其他原因和有其他的解决⽅法,请跟贴评论我会加以完善这篇⽂章的!谢谢!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。