Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1032046
  • 博文数量: 159
  • 博客积分: 3063
  • 博客等级: 中校
  • 技术积分: 2703
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-01 01:51
文章分类

全部博文(159)

文章存档

2013年(48)

2012年(111)

分类: Oracle

2012-04-19 00:50:59

登录ORCALE时错误提示:ORA-12541: TNS:no listener不能正常连接到数据库
错误原因是:清理注册表信息或修改配置数据库机器名称造成。

一、连接主机字符串,报告没有监听器
C:\Documents and Settings\Administrator> 
sqlplus username/password;
ORA-12541: TNS:no listener

二、运行监听器

C:\Documents and Settings\Administrator>lsnrctl

LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 07-7月 -2009 10:08
:08

Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.

欢迎来到LSNRCTL,请键入"help"以获得信息。

三、通过查看监听器状态给出解决办法

情况一,只报告无监听器

LSNRCTL> status
正在连接到 (ADDRESS=(PROTOCOL=tcp)(PORT=1521))

ORA-12541: TNS:无监听器
TNS-12560: TNS: 协议适配器错误
TNS-00511: 无监听器

32-bit Windows Error: 61: Unknown error


LSNRCTL> start
启动tnslsnr:请稍候...

Failed to open service , error 1060.
TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production
写入D:\oracle\ora92\network\log\listener.log的日志信息
监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sha120594n02.clients.apac.cpwr.c
orp)(PORT=1521)))

正在连接到 (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Produc
tion
启动日期                  07-7月 -2009 10:08:49
正常运行时间              0 天 0 小时 0 分 4 秒
跟踪级别                  off
安全性                    OFF
SNMP                      OFF
监听器日志文件          D:\oracle\ora92\network\log\listener.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sha120594n02.clients.apac.cpwr.corp)
(PORT=1521)))
监听器不支持服务
命令执行成功

情况二,除了报告无监听器还报告地址的协议专用组件指定不正确

LSNRCTL> status
连接至(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(PORT=1521)))
TNS-01103: 地址的协议专用组件指定不正确
TNS-12541: TNS:无监听器

TNS-12560: TNS:协议适配器出现错误
TNS-00511: 无监听器
32-bit Windows Error: 61: Unknown error


LSNRCTL> start
启动tnslsnr:请稍候...
Failed to start service, error 3.
TNS-12536: TNS:可能会阻碍*作
TNS-12560: TNS:协议适配器出现错误
TNS-00506: *作可能阻塞
32-bit Windows Error: 997: Unknown error
LSNRCTL>

这种情况的解决方案如下:
1、在控制面板中启动服务,出现以下错误
服务:在本地计算机 无法启动 OracleOraHome92TNSListener服务。
错误3:系统找不到指定的路径
而且OracleOraHome92TNSListener服务的可执行文件的路径是空的。

2、进入注册表中修改ImagePath
在运行处执行REGEDIT进入注册表到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome92TNSListener
发现ImagePath关键值没有了,增加他,选择可扩充字符串值,编辑字符串的数值数据为:D:\oracle\ora92\BIN\TNSLSNR 退出注册表。
3、再次启动监听器
LSNRCTL> start
TNS-01106: 使用名称LISTENER的监听器已经启动

四、这时查看监听器的状态,监听器已经恢复正常
LSNRCTL> status
正在连接到 (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Produc
tion
启动日期                  07-7月 -2009 10:08:49
正常运行时间              0 天 0 小时 2 分 18 秒
跟踪级别                  off
安全性                    OFF
SNMP                      OFF
监听器日志文件          D:\oracle\ora92\network\log\listener.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sha120594n02.clients.apac.cpwr.corp)
(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sha120594n02.clients.apac.cpwr.corp)
(PORT=8080))(Presentation=HTTP)(Session=RAW))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sha120594n02.clients.apac.cpwr.corp)
(PORT=2100))(Presentation=FTP)(Session=RAW))
服务摘要..
服务 "Covisint" 包含 1 个例程。
例程 "Covisint", 状态 READY, 包含此服务的 1 个处理程序...
服务 "CovisintXDB" 包含 1 个例程。
例程 "Covisint", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功
五、再去连接,成功
C:\Documents and Settings\Administrator> sqlplus username/password;
连接成功。

C:\Documents and Settings\Administrator>

阅读(1861) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~