检查监听器状态:
C:\>lsnrctlstatus
LSNRCTL for 32-bit Windows:
Version 9.2.0.1.0 - Production on 30-6月 -2009 21:08:04
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
TNS-12541: TNS:无监听器
TNS-12560: TNS: 协议适配器错误
TNS-00511: 无监听器
32-bit Windows Error: 2: No such file or directory
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-7f628f1510d)(PORT=1521)
))
TNS-12541: TNS:无监听器
TNS-12560: TNS: 协议适配器错误
TNS-00511: 无监听器
32-bit Windows Error: 61: Unknown error
尝试登陆本地数据库:
C:\>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期二 6月 30 21:10:24 2009
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn scott/tiger@oradb
ERROR:
ORA-12541: TNS: 没有监听器
SQL> exit;
--如果没有启动ORACLE服务的话,将出现下面的错误而不是上面: ERROR: ORA-12560:
TNS: 协议适配器错误
C:\>sqlplus "/as sysdba"
SQL*Plus: Release 9.2.0.1.0 - Production on 星期二 6月 30 21:14:17 2009
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
ERROR:
ORA-12560: TNS: 协议适配器错误
启动监听器
C:\>lsnrctlstart
LSNRCTL for 32-bit Windows:
Version 9.2.0.1.0 - Production on 30-6月 -2009 21:17:21
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
启动tnslsnr:请稍候...
TNSLSNR for 32-bit
Windows: Version 9.2.0.1.0 - Production
系统参数文件为F:\oracle9i\network\admin\listener.ora
写入F:\oracle9i\network\log\listener.log的日志信息
监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=www-7f628f1510d)(PORT=1521)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
LISTENER 的
STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for
32-bit Windows: Version 9.2.0.1.0 - Produc
tion
启动日期 30-6月
-2009 21:17:23
正常运行时间 0 天
0 小时 0 分 2
秒
跟踪级别 off
安全性 OFF
SNMP
OFF
监听器参数文件 F:\oracle9i\network\admin\listener.ora
监听器日志文件 F:\oracle9i\network\log\listener.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=www-7f628f1510d)(PORT=1521)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "oradb"
包含 1 个例程。
例程 "oradb",
状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
注:如果启动监听器时报“错误3 找不到可执行文件的路径”。查看[控制面板]=[服务]=OracleOraHome92TNSListener
的属性,发现“可执行文件的路径项”是空的。打开注册表编辑器,搜索监听服务对应的键值,终于在HKEY_LOCAL_MACHINE/SYSTEM
/CurrentControlSet(ControlSet001、 ControlSet002)/Services下找到了OracleOraHome92TNSListener服务。右击它选择“新建字符串值”,取名
ImagePath,并双击它在数值中输入监听程序的路径,此处为"F:/oracle/ora92/bin/TNSLSNR.EXE"。再执行就正常了。
原因:“超级兔子”和“windows优化大师”等系统维护软件会误删除注册表中的该项键值。
监听打开后试图连接到数据库
C:\>sqlplus
/nolog
SQL*Plus: Release
9.2.0.1.0 - Production on 星期二 6月 30
21:23:45 2009
Copyright (c)
1982, 2002, Oracle Corporation. All rights
reserved.
SQL> conn
system/systemshx@oradb
ERROR: ORA-12500:
TNS: 监听程序无法启动专用服务器进程
原因:本地数据库对应的服务没有打开
SQL>
exit