Oracle监听启动后又自动停止的问题及解决<转载>

本文解决了一个在Windows 2003 Enterprise Server环境下Oracle 10g监听器无法正常启动的问题。通过修改listener.ora配置文件中的主机名设置,最终实现了监听器的成功启动。
[size=medium][i]转载自新浪博客:[/i][url]http://blog.sina.com.cn/s/blog_4abe7f3a0100pz9x.html[/url]
[b]系统:[/b]windows 2003 Enterprise Server
[b]oracle版本:[/b]oracle 10g
[b]安装目录:[/b]D:\oracle
[b]症状:[/b]启动监听的时候自动停止,Oracle服务正常启动
[b]解决方法:[/b]
[b]1)[/b]Net Configuration Assitant中删除LISTENER,再重新添加。此时服务中找不到OracleOraDb10g_home1TNSListener服务项。
[b]2)[/b]cmd中运行命令[color=darkblue]lsnrctl start[/color]
[color=green]LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 13-10月-2009 14:1
3:28
Copyright (c) 1991, 2005, Oracle. All rights reserved.
启动tnslsnr: 请稍候...
Failed to open service <OracleOraDb10g_home1TNSListener>, error 1060.
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=TCP)(HOST=HFUND.cognos)(PORT=1
521)))
TNS-12542: TNS: 地址已被占用
TNS-12560: TNS: 协议适配器错误
TNS-00512: 地址已在使用
32-bit Windows Error: 48: Unknown error
监听程序未能启动。请参阅上面的错误消息...[/color]
[b]3)[/b]找listener.ora的位置:D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
打开并编辑。文件内容如下:
[color=green]# 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 = TCP)(HOST = hfund.cognos)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)[/color]
将文件中的HOST = hfund.cognos改为HOST = 127.0.0.1或者localhost,然后保存。
4)cmd中运行 lsnrctl start,成功启动。服务中已经出现OracleOraDb10g_home1TNSListener服务项,且为启动状态。[/size]
### Oracle监听启动自动停止的原因及解决方案 Oracle监听启动自动停止问题通常与配置文件、网络设置或服务冲突有关。以下是详细的原因分析和解决方法: #### 1. 配置文件问题 `listener.ora` 文件中的配置错误可能导致监听器无法正常运行。例如,`HOST` 参数可能被设置为无效的主机名或IP地址[^3]。 - **解决方法**:检查 `listener.ora` 文件,确保 `HOST` 参数正确指向本地计算机名称或有效的IP地址。 - 路径示例:`D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora` - 修改内容:将 `HOST=你的计算机名字` 替换为当前计算机的实际名称或IP地址。 ```bash # 示例 listener.ora 配置 LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) ) ) ``` #### 2. 网络连接问题 如果安装Oracle时联网,`listener.ora` 文件中的 `HOST` 参数可能被设置为动态分配的IP地址。当断开网络或IP地址发生变化时,监听器可能无法正常工作。 - **解决方法**:将 `HOST` 参数改为静态IP地址或本地回环地址(如 `127.0.0.1`)。 #### 3. 日志文件过大 `listener.log` 文件过大可能导致监听启动失败或自动停止[^4]。 - **解决方法**:删除或重命名 `listener.log` 文件,然后重新启动监听器。 - 路径示例:`D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\LOG\listener.log` - 操作命令: ```bash # 删除日志文件 del D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\LOG\listener.log # 启动监听器 lsnrctl start ``` #### 4. 多个监听器冲突 如果系统中存在多个监听器实例,可能会导致服务冲突,从而引发监听启动自动停止问题[^4]。 - **解决方法**:关闭其他不必要的监听器实例,仅保留需要的监听器。 - 查看监听器状态: ```bash lsnrctl status ``` - 停止其他监听器: ```bash lsnrctl stop <监听器名称> ``` #### 5. 权限问题 监听器可能因权限不足而无法正常启动。 - **解决方法**:以管理员身份运行命令提示符,并执行监听启动命令。 - 启动监听器: ```bash lsnrctl start ``` #### 6. 服务未正确注册 监听器可能未正确注册到Windows服务列表中。 - **解决方法**:重新注册监听器服务。 - 打开命令提示符(管理员模式),执行以下命令: ```bash oradim -new -sid <your_sid> -startmode manual oradim -edit -sid <your_sid> -startmode auto ``` --- ### 总结 通过检查和修改 `listener.ora` 文件、清理日志文件、解决监听器冲突以及确保正确的服务注册,可以有效解决Oracle监听启动自动停止问题。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值