centos lsnrctl常见问题
导读:CentOS 上 lsnrctl 常见问题与排查 一 高频症状与快速处置 命令未找到或权限不足 现象:bash 提示 command not found 或 permission denied。 处置:确认 Oracle 已安装;用 w...
CentOS 上 lsnrctl 常见问题与排查
一 高频症状与快速处置
- 命令未找到或权限不足
- 现象:bash 提示 command not found 或 permission denied。
- 处置:确认 Oracle 已安装;用
which lsnrctl定位;切换到 oracle 用户或使用sudo;检查可执行权限ls -l $(which lsnrctl);确保环境变量正确:export ORACLE_HOME=/u01/app/oracle/product/…、export PATH=$ORACLE_HOME/bin:$PATH、export ORACLE_SID=your_sid并source ~/.bashrc。必要时用绝对路径执行。
- 监听未启动或端口不通
- 现象:客户端报 ORA-12541: TNS: 无监听程序;
lsnrctl status看不到监听。 - 处置:
lsnrctl start;若端口被占用,改用未占用端口或释放占用进程;检查监听日志与告警日志(见第四部分)。
- 现象:客户端报 ORA-12541: TNS: 无监听程序;
- 启动即退出或命令无反应
- 现象:
lsnrctl start瞬间返回,监听未起来。 - 处置:检查
$ORACLE_HOME/bin下关键工具是否为 0 字节(如 lsnrctl/tnsping/expdp/impdp),若是,多为安装异常,需查看安装详细日志并修复后重装。
- 现象:
- 启动报错 TNS-12547/TNS-12560/TNS-00517
- 现象:启动日志出现 TNS-12547/TNS-12560/TNS-00517,并伴随 Linux Error: 104: Connection reset by peer。
- 处置:优先检查 /etc/hosts 主机名解析,避免将主机名同时绑定到 127.0.0.1 与业务 IP,保持 FQDN 与主机名一致,再重启监听。
二 配置与主机名解析要点
- 正确设置监听地址:在 $ORACLE_HOME/network/admin/listener.ora 中使用主机名或业务 IP,避免使用易冲突的 localhost/127.0.0.1;示例:
修改后执行LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1521)) ) )lsnrctl stop→lsnrctl start或lsnrctl reload使配置生效。 - 主机名解析规范:/etc/hosts 建议仅将 127.0.0.1 指向 localhost,业务 IP 对应主机名/FQDN,避免监听自连失败与连接重置。
- 动态注册与静态注册:数据库实例启动后会向监听动态注册服务;如需手工静态注册,可在 listener.ora 的 SID_LIST_LISTENER 中补充 SID_DESC。修改后使用
reload避免中断现有连接。
三 网络与防火墙检查
- 本机连通性:在服务器上
telnet 127.0.0.1 1521或nc -zv 127.0.0.1 1521验证监听端口是否监听;远程客户端用tnsping your_service或telnet server_ip 1521测试连通性。 - 防火墙放行:在 firewalld 放行 1521/TCP(示例)
如使用 iptables 或云安全组,同样需放行对应端口。sudo firewall-cmd --permanent --add-port=1521/tcp sudo firewall-cmd --reload - SELinux:如启用 SELinux,临时设为 permissive 验证是否影响监听启动/连接,必要时调整策略或保持 permissive 直至问题解决。
四 日志定位与常用命令
- 关键日志路径
- 告警日志:$ORACLE_HOME/diag/tnslsnr//listener/alert/log.xml
- 监听日志:$ORACLE_HOME/diag/tnslsnr//listener/trace/listener.log 出现启动失败、连接异常时,优先查看以上日志中的最新错误与堆栈信息。
- 常用 lsnrctl 命令
- 启动/停止/重启:
lsnrctl start|stop|restart - 状态与服务:
lsnrctl status [LISTENER_NAME]、lsnrctl services [LISTENER_NAME] - 热加载与保存:
lsnrctl reload、lsnrctl save_config - 跟踪与诊断:
lsnrctl trace support、lsnrctl set log_level 16、lsnrctl logfile修改 listener.ora 后优先用reload使配置生效,减少业务中断。
- 启动/停止/重启:
五 RAC 与特殊场景提示
- 在 Oracle RAC 环境中,监听通常由 Grid Infrastructure 管理,建议使用 srvctl/crsctl 启停监听,避免直接使用
lsnrctl导致端点信息不一致或管理范围受限。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos lsnrctl常见问题
本文地址: https://pptw.com/jishu/769960.html
