在用PL/SQL Developer连接数据库时出现
“ORA-12541:TNS:无监听程序”错误。 1、检查listener.log日志发现下面错误:TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-9月 -2008 10:25:26Copyright (c) 1991, 2005, Oracle. All rights reserved.
系统参数文件为D:/oracle/product/10.2.0/db_1/network/admin/listener.ora
写入D:/oracle/product/10.2.0/db_1/network/log/listener.log的日志信息写入D:/oracle/product/10.2.0/db_1/network/trace/listener.trc的跟踪信息跟踪级别当前为0以 pid=1704 开始
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC1ipc)))监听该对象时出错: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=0.5.0.5)(PORT=1521)))TNS-12545: 因目标主机或对象不存在, 连接失败TNS-12560: TNS: 协议适配器错误TNS-00515: 因目标主机或对象不存在, 连接失败32-bit Windows Error: 49: Unknown error不再监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC1ipc))) 2、查看Oracle的listener是否启动C:/Documents and Settings/mengzhaoliang>lsnrctl statusLSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-9月 -2008 10:5
0:44Copyright (c) 1991, 2005, Oracle. 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=0.5.0.5)(PORT=1521)))TNS-12535: TNS: 操作超时TNS-12560: TNS: 协议适配器错误TNS-00505: 操作超时32-bit Windows Error: 60: Unknown error 原来没有启动listener,用“lsnrctl start”命令也不能启动。C:/Documents and Settings/mengzhaoliang>lsnrctl startLSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-9月 -2008 10:5
2:16Copyright (c) 1991, 2005, Oracle. All rights reserved.
启动tnslsnr: 请稍候...
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
系统参数文件为D:/oracle/product/10.2.0/db_1/network/admin/listener.ora写入D:/oracle/product/10.2.0/db_1/network/log/listener.log的日志信息监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC1ipc)))监听该对象时出错: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=0.5.0.5)(PORT=1521)))TNS-12545: 因目标主机或对象不存在, 连接失败TNS-12560: TNS: 协议适配器错误TNS-00515: 因目标主机或对象不存在, 连接失败32-bit Windows Error: 49: Unknown error监听程序未能启动。请参阅上面的错误消息...
3、查看listener.ora的内容:# listener.ora Network Configuration File: D:/oracle/product/10.2.0/db_1/network/admin/listener.ora# Generated by Oracle configuration tools.SID_LIST_LISTENER =
(SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc)(ORACLE_HOME = D:/oracle/product/10.2.0/db_1)(PROGRAM = extproc)))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))(ADDRESS = (PROTOCOL = TCP)(HOST = 0.5.0.5)(PORT = 1521)))) 原来本机的ip发生改变后,就出现了上述问题,改变数据库的监听ip地址:把(ADDRESS = (PROTOCOL = TCP)(HOST = 0.5.0.5)(PORT = 1521))改成(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))127.0.0.1:也就是目前数据库正在用的ip地址。
4、再次启动oracle的listenerC:/Documents and Settings/mengzhaoliang>lsnrctl startLSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-9月 -2008 10:5
4:40Copyright (c) 1991, 2005, Oracle. All rights reserved.
启动tnslsnr: 请稍候...
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
系统参数文件为D:/oracle/product/10.2.0/db_1/network/admin/listener.ora写入D:/oracle/product/10.2.0/db_1/network/log/listener.log的日志信息监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC1ipc)))监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
LISTENER 的 STATUS------------------------别名 LISTENER版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production启动日期 20-9月 -2008 10:54:41正常运行时间 0 天 0 小时 0 分 1 秒跟踪级别 off安全性 ON: Local OS AuthenticationSNMP OFF监听程序参数文件 D:/oracle/product/10.2.0/db_1/network/admin/listener.ora监听程序日志文件 D:/oracle/product/10.2.0/db_1/network/log/listener.log监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC1ipc)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))服务摘要..服务 "PLSExtProc" 包含 1 个例程。例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...命令执行成功 启动已经成功, 5.再tnsnames.ora上添加上ORCL_127.0.0.1 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))6、再次用PL/SQL Developer再次连接数据库
出现下面错误:TNS-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务再次检查listener.log日志
20-9月 -2008 11:01:54 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)(CID=(PROGRAM=D:/plsql/plsqldev.exe)(HOST=RUIFEI-EF0ADC98)(USER=mengzhaoliang))) * (ADDRESS=
(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1267)) * establish * orcl * 12514
TNS-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务查看listener:
C:/Documents and Settings/mengzhaoliang>lsnrctl servicesLSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-9月 -2008 11:1
1:09Copyright (c) 1991, 2005, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
服务摘要..服务 "PLSExtProc" 包含 1 个例程。例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...处理程序:"DEDICATED" 已建立:0 已被拒绝:0LOCAL SERVER命令执行成功 7、用sqlplus也出现同样错误:C:/Documents and Settings/mengzhaoliang>sqlplusscott/mzl@ORCL_127.0.0.1SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 9月 20 11:15:09 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务8、查看listenser状态:
C:/Documents and Settings/mengzhaoliang>lsnrctl statusLSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-9月 -2008 11:2
6:42Copyright (c) 1991, 2005, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
LISTENER 的 STATUS------------------------别名 LISTENER版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production启动日期 20-9月 -2008 11:24:33正常运行时间 0 天 0 小时 2 分 8 秒跟踪级别 off安全性 ON: Local OS AuthenticationSNMP OFF监听程序参数文件 D:/oracle/product/10.2.0/db_1/network/admin/listener.ora监听程序日志文件 D:/oracle/product/10.2.0/db_1/network/log/listener.log监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC1ipc)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))服务摘要..服务 "PLSExtProc" 包含 1 个例程。例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...命令执行成功C:/Documents and Settings/mengzhaoliang>tnsping orcl
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-9月 -
2008 11:27:43Copyright (c) 1997, 2005, Oracle. All rights reserved.
已使用的参数文件:
D:/oracle/product/10.2.0/db_1/network/admin/sqlnet.oraTNS-03505: 无法解析名称
9、查看sqlnet.ora内容:
# sqlnet.ora Network Configuration File: D:/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora# Generated by Oracle configuration tools.# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native# authentication, they will not be able to connect to the database on NT.SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
10.把listener.ora的内容:# listener.ora Network Configuration File: D:/oracle/product/10.2.0/db_1/network/admin/listener.ora# Generated by Oracle configuration tools.SID_LIST_LISTENER =
(SID_LIST =(SID_DESC = (SID_NAME = PLSExtProc)(ORACLE_HOME = D:/oracle/product/10.2.0/db_1) (PROGRAM = extproc)))LISTENER =
(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))) 改成下面的内容:# listener.ora Network Configuration File: D:/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.SID_LIST_LISTENER =
(SID_LIST =(SID_DESC = (SID_NAME = orcl)(ORACLE_HOME = D:/oracle/product/10.2.0/db_1)# (PROGRAM = extproc)))LISTENER =
(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = orcl))(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))) 11、然后关闭、再启动listener在cmd中执行“lsnrctl stop” 和“lsnrctl stop”命令,再次登陆正常!C:/Documents and Settings/mengzhaoliang>sqlplusSQL*Plus: Release 10.2.0.1.0 - Production on 星期六 9月 20 11:55:47 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL>
再次用PL/SQL Peveloper登陆就没有问题了。