ORA-12154: TNS: 无法解析指定的连接标识符(分步排查法)

将Oracle数据库迁移到ubuntu后,配置tnsnames.ora的连接串进行连接测试,plsql登录时提示“ORA-12154: TNS: 无法解析指定的连接标识符”,比较tnsnames.ora中的host和sid,没有发现输入错误,而其他的数据库连接串却可以登录,服务器的数据库监听也是正常启动, 最后阅读该博文,才发现犯了一个低级错误,tnsnames.ora中该连接串的别名前面有一个空格 转载地址:http://it4j.iteye.com/blog/2015757


问题描述:ORA-12154: TNS: 无法解析指定的连接标识符
问题场景: 服务器端版本:oracle 10.2.0.10 客户端版本:oracle 10.2.0.10 客户端开发工具:PL/SQL Developer
通过客户端来连接服务器,其主要文件就是通过客户端的tnsnames.ora来配置,在原文件的基础上增加: SID别名 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = SERVER_IP)(PORT = 1521))
)
(CONNECT_DATA =
(SID = SID_NAME)
) )

1.检查监听服务是否正常

先检查服务器端的监听服务是否打开,如果没有打开请启动其监听
客户端:tnsping
服务器Linux下:
   #>lsnrctl status 查看监听状态
   #>lsnrctl start 启动监听

2.tnsnames.ora内容有错误

通过Sql Plus连接一下试试,如果Sql Plus连接能成功,那就可能是你的tnsnames.ora内容有错误,比如别名前有空格,只要有空格那就肯定是不行的,而且如果那段内容是出现在文件的中间的话,将导致该文件里所有相应的连接别名都不成功,如果是在最后面就只有其自身连接别名不能成功,其他连接别名还是能连接成功。
如:
空格dev_db =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.168.10.5)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ora10)
)
)

3.PLSQL Developer设置客户端的版本

进入PLSQL Developer的主界面,在登录界面选择取消即不登录进入主界面,然后选择菜单Tools(工具)-Preferences(首选项),在设置窗口中,选择Oracle-Connection(连接),对应设置窗口中,找到Oracle Home(Oracle主目录),选择你本地所安装客户端的版本,保存设置,然后重新启动PLSQL Developer,这时就可以正常登录了。(我的就是这种原因,主要是因为本地安装oracle后,PLSQL Developer默认使用本地服务端,而不是使用客户端连接远程oracle了,重新选择客户端解决了问题)。

4.重置初始化tnsnames.ora文件

如果确保你的tnsnames.ora内容没有错误,那请将%ORACLE_HOME%\product\10.2.0\db_1\NETWORK\ADMIN目录下的所有文件删了,重新配置连接,然后重新连接,一般就能解决了。
说明一下:那个目录里的文件是在你建立连接的时候动态生成的,不要怕删了会有问题(如果连接比较多建议先备份一下),删过后重新配置客户端Net Manager即可。

4.Win7中Plsql安装路径包含特殊字符

Win7系统中,即使什么都正常安装配置,如果你的PL/SQL Developer安装在才c:\Program Files (x86)类似带有特殊字符或者中文字符的目录下,依然会出现ORA-12154错误。只有把PL/SQL Developer安装在一般目录下,才能正常连接Oracle

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值