TNS-12541: TNS: 无监听程序 TNS-12560: TNS: 协议适配器错误 TNS-00511: 无监听程序
文章转自:http://www.luocs.com/archives/464.html
此文版权归作者 – yaogang所有,转载请注明yaogang©www.luocs.com。
Luocs说:这是我一个朋友的一个监听器问题解决案例,这是昨天发生的事情,我一直跟朋友一起Troubleshooting,折腾了半天最后是BUG所致。再次汗颜,Windows平台惹不起啊!好,那么下面开始分享我朋友的案例!
环境描述:
OS : Windows Server 2008 64Bit (做了HA)
DB : 11.1.0.7.0
排错过程:
前天应用不能访问数据库了 (后台应用能访问数据库),故障发生。
马上登录到服务器里查看监听状态,发现有TNS-12541 ,TNS-12560等错误
Luocs补充:我跟朋友要了错误代码,但他没有保存,就直接贴图。
从计算器的管理 –> 服务选项 –> 检查oracle 监听服务程序,发现该服务已经停止。
手动把监听服务启动,这时候服务状态上显示为已启动,但在CMD窗口执行lsnrctl status的时候依然返回错误信息:
C:\>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-12541: TNS: 无监听程序
TNS-12560: TNS: 协议适配器错误
TNS-00511: 无监听程序
64-bit Windows Error: 61: Unknown error
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
过段时间回显非常慢。
然后我检查了下告警日志,大量的ora错误
Fatal NI connect error 12170. VERSION INFORMATION:
TNS for 64-bit Windows: Version 11.1.0.7.0 - Production
Oracle Bequeath NT Protocol Adapter for 64-bit Windows: Version 11.1.0.7.0 - Production
Windows NT TCP/IP NT Protocol Adapter for 64-bit Windows: Version 11.1.0.7.0 - Production
Time: 12-11月-2012 15:23:33
Tracing not turned on.
Tns error struct:
ns main err code: 12535 TNS-12535: TNS: 操作超时
ns secondary err code: 12560
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
Client address: <unknown> ORA-609 : opiodr aborting process unknown ospid (4116_6104)
这时候朋友怀疑是不是监听器配置问题,就把原先的监听器删除重建了下,问题依然。
网上有个解决TNS-12535错误的案例,平台和版本都很类似,如下:
1、在 sqlnet.ora文件中 增加如下行:
DIAG_ADR_ENABLED = OFF
2、在listener.ora文件中增加如下行:
DIAG_ADR_ENABLED_<listenername> = OFF
如何监听是listener时,则前面的名称为:DIAG_ADR_ENABLED_LISTENER = OFF
3、重新启动windows服务管理中的监听程序.先停止,然后再重新启动.
4、检查结果.发现可以了,返回的值在10毫秒.有时为0毫秒.成功!!
但这并不是问题发生原因,在继续排查过程中偶然发现监听日志大小居然为4G。然后把这现象告诉了Luocs。
过了一会儿,Luocs回应是Oracle一个BUG,BUG号为9879101 : THE CONNECT THROUGH LISTENER WAS SLOW WHEN LISTNER LOG GROWED 4GB。
Luocs还提供了MOS上一篇文章,ID 1319797.1 : WINDOWS: Listener Hangs & Lsnrctl Commands Are Slow or Hang,里面给出了解决方法:
You can solve this problem by deleting the large listener in $ORACLE_BASE\diag\tnslsnr\<hostname>\listener\trace\<listener_name>.log
1) Stop the listener process using the command line or Control Panel Service. 2) Delete the log file(s) that are at or approaching the 4G size limit at this location:
$ORACLE_BASE\diag\tnslsnr\<hostname>\listener\trace\<listener_name>.log
3) Issue any lsnrctl command and you will see a new listener.log in its place under:
$ORACLE_BASE\diag\tnslsnr\<hostname>\listener\trace\ Since ADR Diagnostics are enabled for this listener these steps cannot be done dynamically using the lsnrctl utility.
e.g.
LSNRCTL>set log_file mylog
Will yield: TNS-01251: Cannot set trace/log directory under ADR. However, it is possible to disable the flat file listener logging using the following commands: LSNRCTL>set current_listener <listener_name>
LSNRCTL>set log_status OFF
LSNRCTL>save_config
我就按照以上说明如下进行:
1)LSNRCTL进入交互模式
2)执行set current_listener LISTENER
3)set log_status off
4)stop 停止监听器
5)手工删除ADR指定的监听日志路径下的listener.log文件
6)start重启监听器
7)status查看状态
到此问题解决。
虽然最后解决过程仅仅耗费了短短几分钟时间,但整个排错过程却是令人惊讶。在此整理,并与遇到同样问题的朋友分享。
TNS-12541: TNS: 无监听程序 TNS-12560: TNS: 协议适配器错误 TNS-00511: 无监听程序的更多相关文章
- 安装完ODAC,出现ORA-12560:TNS:协议适配器错误 12541 无监听程序的解决
进入系统环境变量设置,查看Path路径,发现D:\oracle\product\11.2.0\client_1等路径放到了oracle11g数据库路径前面,将新加入的路径置后即可解决ORA-12560 ...
- oracle监听程序无法启动(TNS-12560: TNS: 协议适配器错误,TNS-00530: 协议适配器错误)
问题描述1: C:\Users\Administrator>lsnrctl start LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Pr ...
- oracle 12541,12560,00511无监听程序, 协议适配器错误问题分析及解决方案
oracle 12541,12560,00511无监听程序, 协议适配器错误问题分析及解决方案 问题描述: 1. lsnrctl start.stop.非常慢,出现卡顿现象: 2. 执行lsnrc ...
- ORACLE中的Net Configuration Assistant 点击后无反应, sqlplus登录数据库提示Oracle11g ORA-12560: TNS: 协议适配器错误
首先是对于点击无反应问题: 如果是客户端下的Net Configuration Assistant可用,而服务器端的Net Configuration Assistant等工具不可用的原因如下. 环境 ...
- TNS-12560: TNS: 协议适配器错误
TNS-12560: TNS: 协议适配器错误 Microsoft Windows [版本 5.2.3790] (C) 版权所有 1985-2003 Microsoft Corp. C:\Docu ...
- ORA-12560: TNS: 协议适配器错误的解决方法
ORA-12560: TNS: 协议适配器错误的解决方法 造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个: 1.监听服务没有起起来.windows平台个一如下操作:开始---程序 ...
- windows ORA-12560: TNS: 协议适配器错误
1.first it report ORA-12560: TNS: 协议适配器错误 手工设定环境变量如下: set ORACLE_HOME=d:\app\OAadmin\product\11.2.0\ ...
- 排错-windows下 ORA-12560 TNS 协议适配器错误解决方法
排错-windows下_ORA-12560 TNS 协议适配器错误解决方法 by:授客 QQ:1033553122 问题描述: 修改SQL*Plus窗口属性后,重新打开SQL*Plus时出现ORA-1 ...
- Oracle用imp导入dmp 提示遇到 ORACLE 错误 12560 TNS: 协议适配器错误 解决方法
用imp命令导入dmp文件时提示以下错误: IMP-00058: 遇到 ORACLE 错误 12560 : ORA-12560: TNS: 协议适配器错误 : IMP-00000: 未成功终止导入 : ...
随机推荐
- atitit. hb 原生sql跨数据库解决原理 获得hb 数据库类型运行期获得Dialect
atitit. hb 原生sql跨数据库解决原理 获得hb 数据库类型运行期获得Dialect #-----原理 Hibernate 运行期获得Dialect 2010-07-28 12:59 ...
- paip.获取文件名从路径uapi java python php总结...
paip.获取文件名从路径uapi java python php总结... =====uapi basename_noext($fname); =============java 自己写.. St ...
- static/final
- 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
本周作业的主要内容就是采用gcc嵌入汇编的方式调用system call. 系统调用其实就是操作系统提供的服务.我们平时编写的程序,如果仅仅是数值计算,那么所有的过程都是在用户态完成的,但是我们想将变 ...
- HTML5之语义化标签
HTML 5的革新之一:语义化标签一节元素标签. 在HTML 5出来之前,我们用div来表示页面章节,但是这些div都没有实际意义.(即使我们用css样式的id和class形容这块内容的意义).这些标 ...
- GO語言基礎教程:數據類型,變量,常量
GO類似PHP,每行的結尾要加分號來結束,不同點在於GO對此並不強制,這一點又像javascript,另外GO的語句塊是用一對大括號來包裹的,但是go要求左大括號必須要在語句的結尾處,不能在行首出現左 ...
- GO語言基礎教程:Hello world!
首先簡單地說一下GO語言的環境安裝,從 http://golang.org/dl/ 針對自己的操作系統選擇合適的安裝包,然後下載安裝即可,下載的時候注意別選錯了的操作系統,例如go1.3.1.darw ...
- GitHub前50名的Objective-C动画相关库
GitHub的Objective-C的动画UI库其实是最多的一部分,GitHub有相当一部分的动画大牛,如Jonathan George,Nick Lockwood,Kevin,Roman Efimo ...
- Express ejs 3.* layout.ejs
新版本改成了 <%- include file.ejs %> 具体使用方法如下:1. views文件夹 下新建header.ejs,插入代码 <html><head> ...
- find the peak value
A peak element is an element that is greater than its neighbors. Given an input array where num[i] ≠ ...