TNS-12560: TNS:协议适配器出现错误,该怎么办呢?

xiaofenguser 2003-05-17 05:18:58
今天突然Oracle启动用不了了,用SQL/PLUS进出就提示
TNS-12560: TNS:协议适配器错误
这个该怎么办?

改端口到8088,出现这样的:
LSNRCTL> stop
连接至(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=zhongyi)(PORT=8088)))
TNS-12541: TNS:无监听器
TNS-12560: TNS:协议适配器出现错误
TNS-00511: 无监听器
32-bit Windows Error: 61: Unknown error
LSNRCTL> start
启动tnslsnr:请稍候...

Service OracleOraHome81TNSListener already running.
TNS-12536: TNS:可能会阻碍操作
TNS-12560: TNS:协议适配器出现错误
TNS-00506: 操作可能阻塞
32-bit Windows Error: 997: Unknown error
LSNRCTL>

LSNRCTL> stop
连接至(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=zhongyi)(PORT=1521)))
TNS-12547: TNS:丢失连接
TNS-12560: TNS:协议适配器出现错误
TNS-00517: 丢失连接
32-bit Windows Error: 54: Unknown error
LSNRCTL> start
启动tnslsnr:请稍候...

Service OracleOraHome81TNSListener already running.
TNS-12536: TNS:可能会阻碍操作
TNS-12560: TNS:协议适配器出现错误
TNS-00506: 操作可能阻塞
32-bit Windows Error: 997: Unknown error
LSNRCTL>

请帮忙啊,急:(
...全文
9436 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaofenguser 2003-05-18
  • 打赏
  • 举报
回复
w_tsinghua() 谢谢你,结贴,我一气之下已经把ORACLE给重新安装了.
zhuzhuyan 2003-05-17
  • 打赏
  • 举报
回复
同意,将host 换成ip试试..
w_tsinghua 2003-05-17
  • 打赏
  • 举报
回复
把zhongyi改成你的ip地址,试试,如果你要改端口号,你必须先把lsnrctl stop下来,再修改,再启动就没有问题了,
如果出现了你这种情况:
LSNRCTL> stop
连接至(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=zhongyi)(PORT=8088)))
TNS-12541: TNS:无监听器
TNS-12560: TNS:协议适配器出现错误
TNS-00511: 无监听器
32-bit Windows Error: 61: Unknown error


的时候,必须重新启动机器,再启动LSNRCTL就没有问题了,sqlplus 使用的是另外一个配置文件,tnsnames.ora.与这个关系不大
BlueskyWide 2003-05-17
  • 打赏
  • 举报
回复
用net configuration assistant再增加配置一个连接串,
host改为用ip地址,试试。
xiaofenguser 2003-05-17
  • 打赏
  • 举报
回复
ERROR:
ORA-12500: TNS: 监听程序无法启动专用服务器进程

我是在服务器上操作的,先连到别的可以连得上的ORACLE服务器,
再用SQL> conn xiao/xiao@orcl 出现上面的提示
xiaofenguser 2003-05-17
  • 打赏
  • 举报
回复
w_tsinghua() 多谢多谢,请帮我看看,
xiaofenguser 2003-05-17
  • 打赏
  • 举报
回复
有两个listerner.ora
D:\oracle8\ora81\network\ADMIN
# LISTENER.ORA Network Configuration File: d:\oracle8\ora81\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.

LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = zhongyi)(PORT = 1521))
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = d:\oracle8\ora81)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = d:\oracle8\ora81)
(SID_NAME = orcl)
)
(SID_DESC =
(GLOBAL_DBNAME = Oracle8)
(SID_NAME = ORCL)
)
)

D:\oracle8\ora81\hs\admin
# This is a sample listener.ora that contains the NET8 parameters that are
# needed to connect to an ODBC Agent

# LISTENER =
# (ADDRESS_LIST=
# (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
# (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))

# SID_LIST_LISTENER=
# (SID_LIST=
# (SID_DESC=
# (SID_NAME=hsodbc)
# (ORACLE_HOME=/private/app/oracle/product/8.1.6)
# (PROGRAM=hsodbc)
# )
# )

#CONNECT_TIMEOUT_LISTENER = 0
w_tsinghua 2003-05-17
  • 打赏
  • 举报
回复
你可以把你的listener.ora贴出来看看
w_tsinghua 2003-05-17
  • 打赏
  • 举报
回复
Cause: Specified listener address is already being used.
Action: Start your listener with an unused address.
Generally this problem may ocurr for a incorrect setting in the listener.ora. Some causes of this problems may be:
a.- Some defined address in the listeners.ora is been used. Make sure other listeners are not running. Either listener.log and screen output appear the address with problem

Explanation: The listener will try to acquire the address in exclusive mode, if this is been used then the process to get it will fail.

xiaofenguser 2003-05-17
  • 打赏
  • 举报
回复
LSNRCTL> start
启动tnslsnr:请稍候...

TNSLSNR for 32-bit Windows: Version 8.1.7.0.0 - Production
系统参数文件为d:\oracle8\ora81\network\admin\listener.ora
写入d:\oracle8\ora81\network\log\listener.log的日志信息
监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=zhongyi)(PORT=1521)))

连接至(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=zhongyi)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 8.1.7.0.0
tion
启动日期 17-5月 -2003 17:19:13
正常运行时间 0 天 0 小时 0 分 2 秒
跟踪级别 off
安全性 OFF
SNMP OFF
监听器参数文件 d:\oracle8\ora81\network\admin\listener.ora
监听器日志文件 d:\oracle8\ora81\network\log\listener.log
服务摘要..
orcl 具有2个服务处理程序
PLSExtProc 具有1个服务处理程序
orcl 具有2个服务处理程序
命令执行成功

又重新运行了一次,现在出现了上面这样的,
从SQL PLUS还是: TNS-12560: TNS:协议适配器错误
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: ORA-609 : opiodr aborting process unknown ospid (4116_6104) 这时候朋友怀疑是不是监听器配置问题,就把原先的监听器删除重建了下,问题依然。 网上有个解决TNS-12535错误的案例,平台和版本都很类似,如下: 1、在 sqlnet.ora文件中 增加如下行: DIAG_ADR_ENABLED = OFF 2、在listener.ora文件中增加如下行: DIAG_ADR_ENABLED_ = 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\\listener\trace\.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\\listener\trace\.log 3) Issue any lsnrctl command and you will see a new listener.log in its place under: $ORACLE_BASE\diag\tnslsnr\\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 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查看状态 到此问题解决。

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧