首页主机资讯centos lsnrctl常见问题

centos lsnrctl常见问题

时间2025-12-12 00:03:04发布访客分类主机资讯浏览668
导读:CentOS 上 lsnrctl 常见问题与排查 一 高频症状与快速处置 命令未找到或权限不足 现象:bash 提示 command not found 或 permission denied。 处置:确认 Oracle 已安装;用 w...

CentOS 上 lsnrctl 常见问题与排查

一 高频症状与快速处置

  • 命令未找到或权限不足
    • 现象:bash 提示 command not foundpermission denied
    • 处置:确认 Oracle 已安装;用 which lsnrctl 定位;切换到 oracle 用户或使用 sudo;检查可执行权限 ls -l $(which lsnrctl);确保环境变量正确:export ORACLE_HOME=/u01/app/oracle/product/…export PATH=$ORACLE_HOME/bin:$PATHexport ORACLE_SID=your_sidsource ~/.bashrc。必要时用绝对路径执行。
  • 监听未启动或端口不通
    • 现象:客户端报 ORA-12541: TNS: 无监听程序lsnrctl status 看不到监听。
    • 处置:lsnrctl start;若端口被占用,改用未占用端口或释放占用进程;检查监听日志与告警日志(见第四部分)。
  • 启动即退出或命令无反应
    • 现象: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 stoplsnrctl startlsnrctl reload 使配置生效。
  • 主机名解析规范:/etc/hosts 建议仅将 127.0.0.1 指向 localhost,业务 IP 对应主机名/FQDN,避免监听自连失败与连接重置。
  • 动态注册与静态注册:数据库实例启动后会向监听动态注册服务;如需手工静态注册,可在 listener.oraSID_LIST_LISTENER 中补充 SID_DESC。修改后使用 reload 避免中断现有连接。

三 网络与防火墙检查

  • 本机连通性:在服务器上 telnet 127.0.0.1 1521nc -zv 127.0.0.1 1521 验证监听端口是否监听;远程客户端用 tnsping your_servicetelnet server_ip 1521 测试连通性。
  • 防火墙放行:在 firewalld 放行 1521/TCP(示例)
    sudo firewall-cmd --permanent --add-port=1521/tcp
    sudo firewall-cmd --reload
    
    如使用 iptables 或云安全组,同样需放行对应端口。
  • 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 reloadlsnrctl save_config
    • 跟踪与诊断:lsnrctl trace supportlsnrctl set log_level 16lsnrctl logfile 修改 listener.ora 后优先用 reload 使配置生效,减少业务中断。

五 RAC 与特殊场景提示

  • Oracle RAC 环境中,监听通常由 Grid Infrastructure 管理,建议使用 srvctl/crsctl 启停监听,避免直接使用 lsnrctl 导致端点信息不一致或管理范围受限。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos lsnrctl常见问题
本文地址: https://pptw.com/jishu/769960.html
centos lsnrctl更新升级 centos lsnrctl如何监控

游客 回复需填写必要信息