经典问题:ORA-12170:TNS:连接超时!求解决办法。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经典问题:ORA-12170:TNS:连接超时!求解决办法。相关的知识,希望对你有一定的参考价值。
我的环境是win7+oracle11g。 在cmd里能连上,也能查询数据库,但是到PL/SQL上就连不上了,还显示ORA-12170:TNS:连接超时! 求解决办法。
1、查询语句出错会用标记(marker)类型。
2、客户端向服务器请求失败(如不存在的服务ID),服务器会发送拒绝(refuse)类型 。
3、客户机登陆会发送连接类型,而服务器返回一个重定向类型数据。
4、当重定向端口连接完成后客户端重现发送连接类型数据,服务器返回接受类型数据,然后能够正常通讯。
扩展资料:
TNS协议是ORACLE服务端和客户端通讯的协议。TNS协议传输可以使用TCP/IP协议、使用SSL的TCP/IP协议、命名管道和IPC协议传输,其中TCP/IP协议传输是使用明文传送。这里我们只分析基于TCP/IP协议上的TNS数据。
ORACLE网络通讯协议TNS有许多版本,并且大部分向下兼容,我们主要oracle 9.2.0.1.0客户和服务间的传输协议,他的协议版本号为312,其兼容到300。
参考技术A 也可能你的IP地址变化了,要修改一下listener.ora和tnsname.ora文件中的IP地址。 参考技术B tnsnames.ora IP地址修改成你本机现在的IP地址,并重启监听服务,等一会儿-等的时间会比较长估计得要几分钟的样子 参考技术C 关闭windows服务中的windows Firewall 参考技术Dtnsnames.ora IP地址修改成你本机现在的IP地址,并重启监听服务,等一会儿-等的时间会比较长估计得要几分钟的样子。
TNS协议是ORACLE服务端和客户端通讯的协议。TNS协议传输可以使用TCP/IP协议、使用SSL的TCP/IP协议、命名管道和IPC协议传输,其中TCP/IP协议传输是使用明文传送。这里我们只分析基于TCP/IP协议上的TNS数据。
ORACLE网络通讯协议TNS有许多版本,并且大部分向下兼容,我们主要oracle 9.2.0.1.0客户和服务间的传输协议,他的协议版本号为312,其兼容到300。
TNS协议有一个通用的头,通用头包含一个请求数据类型。不同的服务请求和数据传输使用不同的请求数据类型。对于通常意义的查询操作一般使用数据类型,当出现错误或其他情况时可能使用其他类型。在分析过程中发现以下类型数据:
1. 查询语句出错会用标记(marker)类型
2. 客户端向服务器请求失败(如不存在的服务ID),服务器会发送拒绝(refuse)类型
3. 客户机登陆会发送连接类型,而服务器返回一个重定向类型数据
4. 当重定向端口连接完成后客户端重现发送连接类型数据,服务器返回接受类型数据,然后能够正常通讯。
ORA-12154:TNS:无法解析指定的连接标识符
不是第一次遇到这个问题了,反正不是listenter.ora有问题就是tnsname.ora有问题:
先检查tnsname.ora文件,最常见的是因为动了这个文件导致的错误,新添加的tns只要括号不对应或者多了空格等问题就会导致这个错误,特别是数据库名称的地方一定要注意不要有空格,这个错误不容易发现
然后是listenter.ora文件:
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = E:\app\garfield\product\11.2.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:E:\app\garfield\product\11.2.0\dbhome_1\bin\oraclr11.dll") )
#添加如下内容 (SID_DESC= (GLOBAL_DBNAME=ORCL) (ORACLE_HOME=E:\app\garfield\product\11.2.0\dbhome_1) (SID_NAME=ORCL) )
#添加如上内容
)
以上是关于经典问题:ORA-12170:TNS:连接超时!求解决办法。的主要内容,如果未能解决你的问题,请参考以下文章
oracle执行存储过程时报:ORA-12170:TNS:连接超时
基于ORA-12170 TNS pl/sql Developer 连接本地超时解决办法