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,成功。