今天windows 2003上的Oracle 10g数据库的listener(监听器)无法连接,诊断过程如下:
C:Documents and SettingsAdministrator>lsnrctl reload
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 19-9月 -2011 18:0
4:50
Copyright (c) 1991, 2005, Oracle.All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=svctag-852423x)(PORT=1521))
)
TNS-12545: 因目标主机或对象不存在, 连接失败
TNS-12560: TNS: 协议适配器错误
TNS-00515: 因目标主机或对象不存在, 连接失败
32-bit Windows Error: 1004: Unknown error
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
TNS-12541: TNS: 无监听程序
TNS-12560: TNS: 协议适配器错误
TNS-00511: 无监听程序
32-bit Windows Error: 2: No such file or directory[@more@]
监听器日志文件(listener.log)的部分内容如下:
以 pid=4076 开始
监听该对象时出错: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=svctag-852423x)(PORT=1521)))
TNS-12545: 因目标主机或对象不存在, 连接失败
TNS-12560: TNS: 协议适配器错误
TNS-00515: 因目标主机或对象不存在, 连接失败
32-bit Windows Error: 1004: Unknown error
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production on 19-9月 -2011 17:45:23
Copyright (c) 1991, 2005, Oracle.All rights reserved.
系统参数文件为e:oracleproduct10.2.0databasenetworkadminlistener.ora
写入e:oracleproduct10.2.0databasenetworkloglistener.log的日志信息
写入e:oracleproduct10.2.0databasenetworktracelistener.trc的跟踪信息
跟踪级别当前为0
以 pid=2072 开始
监听该对象时出错: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=svctag-852423x)(PORT=1521)))
TNS-12545: 因目标主机或对象不存在, 连接失败
TNS-12560: TNS: 协议适配器错误
TNS-00515: 因目标主机或对象不存在, 连接失败
查看windows服务目录里的listener服务(OracleOracle10gTNSListener)未启动,启动后还是还是无法连接。
查看Net Manager(网络管理器)配置时发现,主机名称(即:HOST=svctag-852423x)和当前的主机名称不一致。将Net Manager的主机名改完并重新配置Listener后可以正常连接了。如下所示:
C:Documents and SettingsAdministrator>lsnrctl status
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 19-9月 -2011 18:1
0:17
Copyright (c) 1991, 2005, Oracle.All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XJNT-IDP)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名LISTENER
版本TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
启动日期19-9月 -2011 18:08:42
正常运行时间0 天 0 小时 1 分 35 秒
跟踪级别off
安全性ON: Local OS Authentication
SNMPOFF
监听程序参数文件e:oracleproduct10.2.0databasenetworkadminlisten
er.ora
监听程序日志文件e:oracleproduct10.2.0databasenetworkloglistener
.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=XJNT-IDP)(PORT=1521)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "xjidp" 包含 1 个例程。
例程 "idp", 状态 READY, 包含此服务的 1 个处理程序...
服务 "idpXDB" 包含 1 个例程。
例程 "xjidp", 状态 READY, 包含此服务的 1 个处理程序...
服务 "idp_XPT" 包含 1 个例程。
例程 "idp", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功
C:Documents and SettingsAdministrator>
原来系统管理员今天早上修改过计算名称(主机名),但是Listener配置文件里的Hostname为vctag-852423x,导致TNS-12545: 因目标主机或对象不存在, 连接失败的错误。