WINDOWS平台报错TNS-12535: TNS: 操作超时 TNS-12560: TNS: 协议适配器错误 TNS-00511: 操作超时
作者:
Marvinn
昨天,接到客户说修补永恒之蓝补丁,数据库重启,监听就报错,业务无法连接,具体排查过程如下:
环境描述:
windows server 2008 r2
oracle 10g
报错如下
lsnrctl status
LSNRCTL for 64-bit Windows: Version 11.1.0.7.0 - Production on 12-11月-2012 18:1
8:32
Copyright (c) 1991, 2008, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.10.203.218)(PORT=1521)))
TNS-12535: TNS: 操作超时
TNS-12560: TNS: 协议适配器错误
TNS-00505: 操作超时
TNS-00530: 协议适配器错误
64-bit Windows Error: 61: Unknown error
前期处理过程
1、重新配置了监听文件不管是IP还是主机、重启报错依旧
2、删除监听文件,通过net manager配置不管是IP还是主机,重启报错依旧
3、步骤如下
3.1 进入注册表:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/OracleOraDb11g_home1TNSListener
查看imagepath中的值是否和OracleOraDb11g_home1TNSListener 服务的“E:/oracle/product/10.2.0/db_1/BIN/TNSLSNR.exe” 一致,如不一致,修改为一致即可
3.2 开始-管理工具-服务-OracleOraDb10_home1TNSListener-属性-查看可执行文件路径是否跟注册表一致以及状态是否启动
3.3 重启OracleOraDb10_home1TNSListener或者lsnrctl start报错依旧
4、重启机器大法,可报错还是依旧
上面四种方法都没能解决….
网上看到一篇文章,看着及其相似,以下是文章连接
https://www.cnblogs.com/david-zhang-index/p/4916770.html
但是按照这个文章走,并没有解决我得问题,但是数据库静态注册成功了,动态注册并没有,业务用的动态这样肯定不行的.
关于这篇文章的bug问题,当前数据并没有发现类似问题,可忽略,只执行了如下几个步骤:
主要是这几步骤,关闭了ADR特性
1、在 sqlnet.ora文件中 增加如下行:
DIAGADR_ENABLED = OFF
2、在listener.ora文件中增加如下行:
DIAG_ADR_ENABLED<listenername> = OFF
如何监听是listener时,则前面的名称为:DIAG_ADR_ENABLED_LISTENER = OFF
3、重启监听,报错如下
静态监听只报告了一个服务,而且这个服务是讲台监听的服务,动态监听TCP根本没起来,不过能起静态也算是个开端吧
接着,尝试修改监听文件中的动态监听配置,不管改为主机名还是IP,报错依然没有改变…
然后,我看了下10g监听sample中样例监听lisener.ora文件,按照其中文件配置如下:
如果主机名不行的话,也可修改为主机IP尝试下(C:/windows/System32/driver/etc/hosts内确保有主机IP)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = wcm65)
(ORACLE_HOME = E:/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = wcm65)
(ORACLE_HOME = E:/oracle/product/10.2.0/db_1)
(SID_NAME = wcm65)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = database)(PORT = 1521))
)
)
重启监听,监听正常,业务正常连接、问题解决
版权声明:本文为博主原创文章,未经博主允许不得转载。



