上一篇                     
               
			  Linux如何查看Oracle监听状态
- Linux
- 2025-05-29
- 2229
 在Linux系统中,可通过
 
 
lsnrctl status命令查看Oracle监听状态,若未运行,使用
 lsnrctl start启动,也可通过
 ps -ef | grep tnslsnr确认监听进程,或
 netstat -tulnp | grep 1521检查端口是否正常监听。
如何检查Linux系统中的Oracle监听状态?
在Oracle数据库管理中,监听器(Listener)是连接客户端与数据库的核心组件,若监听未正常运行,可能导致数据库无法对外提供服务,以下是在Linux系统中检查Oracle监听状态的详细方法,适用于运维人员或数据库管理员。
前置条件
- 操作系统权限
 需具备Linux系统的oracle用户权限或root用户权限(部分操作需要)。
- Oracle环境已安装
 确保Oracle数据库软件或客户端工具已正确安装。
- 监听器已配置
 Oracle监听器配置文件(listener.ora)需正确配置,通常位于$ORACLE_HOME/network/admin目录。
检查监听状态的步骤
使用lsnrctl命令查看状态
 
lsnrctl是Oracle提供的监听器控制工具,通过以下命令检查监听状态: 
lsnrctl status
操作说明:

- 切换到oracle用户:su - oracle 
- 执行命令: lsnrctl status 
输出示例:
LSNRCTL for Linux: Version 19.0.0.0.0 - Production Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=your_host)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production Start Date 01-JAN-2025 10:00:00 Uptime 10 days 2 hr. 30 min Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/your_host/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=your_host)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Services Summary... Service "orcl" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... The command completed successfully
关键信息解读:
- 监听状态:STATUS显示监听是否正在运行(通常为READY)。
- 监听端口:PORT=1521为默认端口,需确认与实际配置一致。
- 服务注册:Services Summary中应包含目标数据库实例的注册信息。
查看监听日志
若监听未启动或存在异常,可通过日志文件进一步排查:

tail -f $ORACLE_HOME/diag/tnslsnr/your_host/listener/trace/listener.log
替换your_host为实际主机名。
其他常用命令
| 命令 | 说明 | 
|---|---|
| lsnrctl start | 启动监听器 | 
| lsnrctl stop | 停止监听器 | 
| lsnrctl reload | 重新加载配置文件(无需重启监听) | 
| lsnrctl services | 查看监听器当前管理的服务详情 | 
常见问题及解决方法
-  监听未启动 - 现象:执行lsnrctl status提示TNS-12541: TNS:no listener。
- 解决:启动监听器: lsnrctl start 
 
- 现象:执行
-  端口被占用  - 现象:监听启动失败,提示端口冲突。
- 解决:检查端口占用情况: netstat -tuln | grep 1521 # 或使用ss命令 ss -lnt | grep 1521 
 
-  配置错误 - 现象:监听日志提示TNS-12542: Address already in use。
- 解决:检查listener.ora中的IP和端口配置,避免重复绑定。
 
- 现象:监听日志提示
注意事项
- 权限问题:操作lsnrctl需使用oracle用户,避免权限不足导致失败。
- 日志定期清理:监听日志可能占用大量磁盘空间,建议配置日志轮转。
- 生产环境谨慎操作:重启监听可能导致短暂服务中断,建议在维护窗口操作。
引用说明
- Oracle官方文档:Oracle Net Services Reference
- Linux命令参考手册:man netstat,man ss
 
  
			 
			