“TNS-03505:无法解析名称”问题解决一例
1. 问题情况 一位开发人员,在windows环境上新增ORACLE客户端,配置好tnsnames.ora后,准备连接Linux环境的ORACLE数据库,用tnsping测试报TNS-03505:无法解析名称 错误,请求解决。 2. tnsnames.ora文件配置内容 # TNSNAMES.ORA Network Configuration File
1. 问题情况
一位开发人员,在windows环境上新增ORACLE客户端,配置好“tnsnames.ora”后,准备连接Linux环境的ORACLE数据库,用tnsping测试报TNS-03505:无法解析名称 错误,请求解决。
2. “tnsnames.ora”文件配置内容
# TNSNAMES.ORA Network Configuration File: $ORACLE_HOME\NETWORK\ADMIN\tnsnames.ora # Generated by Oracle configuration tools.
SINGLE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.150)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = single) ) ) |
检查上述配置内容,连接串配置是没有问题的。
3. 分析问题
(1) 首先ping 192.168.1.150,是通的
(2) 然后telnet 192.168.1.150 1521,也是通的
(3) 在服务器本机(192.168.1.150)上tnsping single,也是通的
(4) 这时怀疑“tnsnames.ora”文件是不是有问题,下面是文件图标
发现sqlnet.ora文件和“tnsnames.ora”文件图标竟然有差异,估计是不因为该文件是手动创建的,因为OS上没有显示文件扩展名,实际上名称是一个tnsnames.ora.txt的记事本文件
(5) 确认文件是不是一个tnsnames.ora.txt文件
在windows上显示文件的扩展名称,果然如此,截图如上:
4. 解决处理
在显示文件扩展名称的方式下,去除tnsnames.ora.txt文件的.txt后缀,再次在客户机上tnsping single,成功。