然后SERVICE_NAME也没问题
这些都没问题说明客户端是没有问题的
然后客户端tnsping
用这个命令ping一下服务器的ip看看连没连通
我们在客户端去ping一下
[oracle@redhat4 admin]$ tnsping jiagunlun_ora
TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 04-JAN-2018 07:48:07
Used parameter files:
TNS-03505: Failed to resolve name
还是报错误
再看是不是jiagunlun_ora大小写的问题
我们设置的小写,但是在tnsnames.ora这里面成大写了
我们把tnsnames.ora里面的大小写改一下
把JIAGULUN_ORA改成jiagulun_ora
正常命令中使用时是小写
再去试一下,再去ping一下
tnsping jiagunlun_ora
结果仍连不上
再次检查文件的内容
[oracle@redhat4 admin]$ cat tnsnames.ora
没有问题
直接把tnsnames.ora中的名字复制到命令中执行
[oracle@redhat4 ~]$ tnsping jiagulun_ora
TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 04-JAN-2018 07:58:00
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.47)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = jiagulun)))OK (0 msec)
命令成功
是刚才执行命令时输入错了字符
当前这个执行tnsping是没问题的
是可以解析的OK (0 msec)
刚才那个没注意为什么ping不行
是不是输入错了
检查结果:是输入错了
错误的输入是:tnsping jiagunlun_ora
错误jiagunlun_ora中比正确的jiagulun_ora多了一个字符n
说明在tnsnames.ora中的大小写也没问题
我们再改回用大写JIAGULUN_ORA
tnsping JIAGULUN_ORA
和
tnsping jiagulun_ora
都没问题
其实大小写不区分
记住tnsping如果能ping通的话只说明一个问题
只说明tnsnames.ora里面
ip、端口号配置是没问题的
但是service_names对不对这里还测不出来
虽然在tnsping的返回结果中把整个网络服务名的定义返回了
但服务名SERVICE_NAME是tnsping不能验证的对象
sqlplus连接时SERVICE_NAME却是必须要验证的
tnsping是oracle软件提供的一个程序
tnsping在通讯时使用TCP协议
它能解析名称并核实相应主机的端口是否打开
用来检测oracle端口的状态
并不会核实网络服务名定义中的SERVICE_NAME在状态中是否存在
所以记住tnsping能ping通不一定oracle能连上去
使用正确的字符串连一下
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-71958-11.html
有几条命
当初在西湖边忽悠外国老人
地沟油都不致癌