分类: Oracle
2009-02-10 21:16:37
今天在启动本机的oracle时,提示错误:
"在本地计算机无法启动OracleOraHome92TNSListener服务,错误3,系统找不到指定路径"
在cmd下启动提示:
C:\Documents and Settings\Administrator>lsnrctl start
LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 13-9月 -2007 15:27
:12
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
启动tnslsnr:请稍候...
Failed to start service, error 3.
TNS-12536: TNS: 操作可能阻塞
TNS-12560: TNS: 协议适配器错误
TNS-00506: 操作可能阻塞
32-bit Windows Error: 997: Unknown error
C:\Documents and Settings\Administrator>
系统平台:
os: win2000+sp4
oracle: 9.2
想想自己对电脑做了什么会这样的呢?原来可不是这个样子的,哦,想起了啊,原来我前几天用360整理下电脑,可能
把监听服务弄坏了.
现象:
不能启动监听器,但可以在sql*plus本地登陆;我用pl/sql就不能登陆,提示"ora-12535:TNS:操作超时"
有一个问题出现了,在本地登陆不需要用监听吗?
1. 在本地登陆可以不需要监听器,直接登陆,登陆方式:
单个实例:
sql> conn / as sysdba
多个实例
A. set oracle_sid=orcl (系统默认登陆oracle_sid指定的实例)
B. sql> conn / as sysdba
2.在本地登陆需要监听器的登陆方式:
sql> conn as sysdba //只要用@orcl的样式就需要监听服务
通过上面的分析,大家就明白了,为什么监听器没有起来,但可以本地sql*plus登陆,但用pl/sql不能登陆
提示错误"ora-12535:TNS:操作超时"
经过仔细分析
出错原因:360把注册表里的ImagePath关键字清除,此关键值指出了监听服务的启动命令(TNSLSNR.EXE)位置
修改方法:进入注册表,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome92TNSListener,查看是否存在ImagePa
th关键值,如果没有,新建它.类型是可扩充字符串值,他的值(我机器)为: "D:\oracle\ora92\bin\TNSLSNR.EXE"
退出保存注册表,在启动监听服务
C:\Documents and Settings\Administrator>lsnrctl start
LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 13-9月 -2007 15:29
:27
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
启动tnslsnr:请稍候...
TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production
系统参数文件为D:\oracle\ora92\network\admin\listener.ora
写入D:\oracle\ora92\network\log\listener.log的日志信息
监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))
监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hjh-skate)(PORT=1521)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Produc
tion
启动日期 13-9月 -2007 15:29:27
正常运行时间 0 天 0 小时 0 分 1 秒
跟踪级别 off
安全性 OFF
SNMP OFF
监听器参数文件 D:\oracle\ora92\network\admin\listener.ora
监听器日志文件 D:\oracle\ora92\network\log\listener.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hjh-skate)(PORT=1521)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "orcl" 包含 1 个例程。
例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
C:\Documents and Settings\Administrator>
到现在一切ok了