oracle 监听无法启动的原因

2024-12-17 13:42:08
推荐回答(4个)
回答1:

很可能是你在安装完Oracle数据库后更改了计算机名,而且你安装的数据库版本应该是10G以下的,可以找到你的安装目录(现在已10g为例):
..\product\10.2.0\db_1\network\admin
里边有两个文件需要修改:
listener.ora和tnsnames.ora
把里边的原来的计算机名修改成你最新的计算机名;
以下是listener.ora的原文:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = zrh)(PORT = 1521)) --此处修改host=新的计算机名
)
)

以下是tnsnames.ora的原文:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = zrh)(PORT = 1521)) --此处修改
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

回答2:

lsnrctl进入后输stat查看监听状态,会提示不能启动的问题所在,然后尝试解决。

如果以前好的,突然不行,可能是你电脑名称或ip改了造成;如果新手在安装时发现不行,可能是安装时忽略了些错误、或安装了多个监听。

一般可以查log确定方向。

回答3:

oracle
监听器无法启动的问题
一、连接主机字符串,说没有监听器
SVRMGR>
connect
internal/oracle@orcl;
ORA-12541:
TNS:no
listener
SVRMGR>
二、运行监听器,说地址的协议专用组件指定不正确
C:\>lsnrctl
LSNRCTL
for
32-bit
Windows:
Version
8.1.6.0.0
-
Production
on
14-3月
-2003
14:17
:51
(c)
Copyright
1998,
1999,
Oracle
Corporation.
All
rights
reserved.
欢迎来到LSNRCTL,请键入"help"以获得信息。
LSNRCTL>
status
连接至(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=robust)(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>
三、在控制面板中启动服务,出现以下错误
服务:在本地计算机
无法启动
OracleOraHome81TNSListener
服务。
错误3:系统找不到指定的路径
而且OracleOraHome81TNSListener服务的可执行文件的路径是空的。
四、进入注册表中修改ImagePath
在运行处执行REGEDIT进入注册表到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome81TNSListener
发现ImagePath关键值没有了,增加他,选择可扩充字符串值,编辑字符串的数值数据为:f:\Oracle\Ora81\BIN\TNSLSNR
退出注册表。
五、再去启动服务,服务启动正常
六、启动监听器
C:\>lsnrctl
LSNRCTL
for
32-bit
Windows:
Version
8.1.6.0.0
-
Production
on
14-3月
-2003
14:42
:10
(c)
Copyright
1998,
1999,
Oracle
Corporation.
All
rights
reserved.
欢迎来到LSNRCTL,请键入"help"以获得信息。
LSNRCTL>
start
TNS-01106:
使用名称LISTENER的监听器已经启动
LSNRCTL>
status
连接至(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=robust)(PORT=1521)))
LISTENER

STATUS
------------------------
别名
LISTENER
版本
TNSLSNR
for
32-bit
Windows:
Version
8.1.6.0.0
-
Produc
tion
启动日期
14-3月
-2003
14:40:15
正常运行时间
0

0
小时
2

6

跟踪级别
off
安全性
OFF
SNMP
OFF
监听器参数文件
f:\Oracle\Ora81\network\admin\listener.ora
监听器日志文件
f:\Oracle\Ora81\network\log\listener.log
服务摘要..
PLSExtProc
具有1个服务处理程序
orc2
具有1个服务处理程序
orcl
具有1个服务处理程序
orcl
具有2个服务处理程序
命令执行成功
LSNRCTL>
七、再去连接,成功
SVRMGR>
connect
internal/sys@orcl;
连接成功。
SVRMGR>

回答4:

用(运行) dbnet 删除掉原来的lisner 重建一般都能解决