首页主机资讯Debian lsnrctl的使用案例分析

Debian lsnrctl的使用案例分析

时间2025-11-14 16:31:03发布访客分类主机资讯浏览267
导读:Debian 上 lsnrctl 使用案例与排错要点 一 环境准备与常用命令 以 oracle 用户操作,确保环境变量正确:设置 ORACLE_HOME、PATH,并确认 $ORACLE_HOME/network/admin 下有配置文件...

Debian 上 lsnrctl 使用案例与排错要点

一 环境准备与常用命令

  • oracle 用户操作,确保环境变量正确:设置 ORACLE_HOMEPATH,并确认 $ORACLE_HOME/network/admin 下有配置文件。
  • 常用命令一览:
    • 启动/停止/重启:lsnrctl start|stop|reload
    • 查看状态:lsnrctl status [LISTENER_NAME]
    • 在线查看服务:lsnrctl services [SERVICE]
    • 动态设置参数:lsnrctl set (如日志级别)
    • 查看日志文件位置:lsnrctl logfile [LISTENER_NAME]
    • 进入交互模式:lsnrctl,退出:exit
  • 建议变更前备份配置,变更后用 reload 或重启使配置生效。

二 案例一 新建监听器并注册 SID 服务

  • 目标:在 Debian 上新建名为 LISTENER 的监听器,监听 TCP/1521,并静态注册 ORCL 实例。
  • 步骤:
    1. 编辑配置文件
      • 文件路径:$ORACLE_HOME/network/admin/listener.ora
      • 示例内容:
        LISTENER =
          (DESCRIPTION_LIST =
            (DESCRIPTION =
              (ADDRESS = (PROTOCOL = TCP)(HOST = your_host_name)(PORT = 1521))
            )
          )
        SID_LIST_LISTENER =
          (SID_LIST =
            (SID_DESC =
              (SID_NAME = ORCL)
              (ORACLE_HOME = /opt/oracle/product/19c/dbhome_1)
            )
          )
        
    2. 启动并验证
      • 启动:lsnrctl start
      • 状态:lsnrctl status(应看到监听地址与端口)
      • 服务:lsnrctl services(应看到 ORCL 的注册信息)
    3. 连通性验证
      • 本机端口:ss -lntp | grep 1521netstat -an | grep 1521
      • 远程测试:tnsping ORCLsqlplus sys/oracle@ORCL as sysdba
  • 说明:静态注册适用于实例未自动注册或需要显式声明的场景。

三 案例二 在线调整日志级别并验证

  • 目标:不重启监听器,将日志级别提升到 16(更详细),并确认日志输出。
  • 步骤:
    1. 动态设置
      • 查看当前级别:lsnrctl get log_level
      • 设置级别:lsnrctl set log_level 16
    2. 定位与查看日志
      • 获取日志文件路径:lsnrctl logfile LISTENER
      • 实时查看:tail -f /opt/oracle/diag/tnslsnr/$(hostname)/listener/alert/listener.log
  • 说明:动态参数修改对运行中监听器立即生效,适合临时排障;长期建议写入配置文件并持久化。

四 案例三 将监听器纳入 systemd 开机自启

  • 目标:创建 systemd 服务,使 LISTENER 随系统启动自动运行,并支持标准的启停管理。
  • 步骤:
    1. 创建服务文件
      • 文件路径:/etc/systemd/system/oracle-listener.service
      • 示例内容:
        [Unit]
        Description=Oracle Listener Service
        After=network.target
        
        [Service]
        Type=forking
        ExecStart=$ORACLE_HOME/bin/lsnrctl start
        ExecStop=$ORACLE_HOME/bin/lsnrctl stop
        User=oracle
        Group=oinstall
        Restart=on-failure
        
        [Install]
        WantedBy=multi-user.target
        
    2. 启用与验证
      • 重载并启用:systemctl daemon-reload & & systemctl enable --now oracle-listener
      • 查看状态:systemctl status oracle-listener
      • 联动验证:lsnrctl status
  • 说明:使用 Type=forkingExecStart/ExecStop 可正确托管 lsnrctl 的启动/停止流程。

五 常见问题与排错清单

  • 端口未监听
    • 检查监听:lsnrctl status;本机端口:ss -lntp | grep 1521
    • 若未监听,重启监听器:lsnrctl stop & & lsnrctl start
  • 客户端无法解析服务
    • 在客户端配置 tnsnames.ora,或使用 EZCONNECTsqlplus user/pass@//host:1521/service
  • 配置变更未生效
    • 优先使用:lsnrctl reload
    • 必要时重启:lsnrctl stop & & lsnrctl start
  • 权限与运行身份
    • oracle 用户执行;必要时使用 sudo -u oracle 提权
  • 日志与诊断
    • 动态查看:tail -f $ORACLE_HOME/diag/tnslsnr/$(hostname)/listener/alert/listener.log
    • 获取日志路径:lsnrctl logfile LISTENER
  • 不建议的应急方式
    • 避免直接 kill -9 监听进程,优先使用 lsnrctl stopsystemctl 停止服务。

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


若转载请注明出处: Debian lsnrctl的使用案例分析
本文地址: https://pptw.com/jishu/748152.html
Ubuntu Swapper配置选项 Debian lsnrctl故障排除步骤

游客 回复需填写必要信息