首页主机资讯Ubuntu lsnrctl最佳实践案例

Ubuntu lsnrctl最佳实践案例

时间2025-11-21 22:29:03发布访客分类主机资讯浏览547
导读:Ubuntu 上 lsnrctl 最佳实践案例 一 环境准备与最小可用配置 以 oracle 用户操作,确保环境变量正确:设置 ORACLE_HOME、ORACLE_SID,必要时执行 source ~/.bashrc 使配置生效。 编辑...

Ubuntu 上 lsnrctl 最佳实践案例

一 环境准备与最小可用配置

  • oracle 用户操作,确保环境变量正确:设置 ORACLE_HOME、ORACLE_SID,必要时执行 source ~/.bashrc 使配置生效。
  • 编辑监听配置 $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 = your_sid)
          (ORACLE_HOME = your_oracle_home)
        )
      )
    
  • 启动与验证:
    • 启动:lsnrctl start
    • 状态:lsnrctl status(应看到监听在 1521/TCP 且服务已注册)
  • 客户端连通性测试:
    • sqlplus / as sysdba 登录后执行 SELECT instance_name FROM v$instance;
    • 远程可用 tnsping your_servicesqlplus user/pass@host:1521/service 验证
      以上步骤覆盖 Ubuntu 下 lsnrctl 的启动、状态检查与基础连通性验证,适合作为标准化部署的起点。

二 系统服务化与开机自启

  • 创建 systemd 服务单元文件 /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
    ExecReload=$ORACLE_HOME/bin/lsnrctl reload
    User=oracle
    Group=oinstall
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    
  • 启用与验证:
    • sudo systemctl daemon-reload
    • sudo systemctl start oracle-listener
    • sudo systemctl enable oracle-listener
    • sudo systemctl status oracle-listener
      将监听器纳入 systemd 管理,可确保 开机自启、统一日志、可靠重启,便于纳入生产运维体系。

三 备份与恢复

  • 配置与状态双备份:
    • 配置文件备份:cp $ORACLE_HOME/network/admin/listener.ora /home/oracle/listener.ora.bak_$(date +%F)
    • 运行状态备份:lsnrctl status > listener_status_$(date +%F).txt
  • 恢复流程:
    • 停止监听:lsnrctl stop
    • 还原配置:cp /home/oracle/listener.ora.bak_YYYY-MM-DD $ORACLE_HOME/network/admin/listener.ora
    • 启动监听:lsnrctl start
    • 校验结果:lsnrctl status
  • 建议将备份纳入 定期任务(如每日) 并做 异地/离线 留存,确保回滚能力。
    上述方法同时覆盖“配置文件级”和“运行时状态级”的备份,恢复路径清晰、可验证。

四 防火墙与安全加固

  • 放行监听端口:
    • UFW:sudo ufw allow 1521/tcp;检查:sudo ufw status
    • firewalld:sudo firewall-cmd --add-port=1521/tcp --permanent & & sudo firewall-cmd --reload
  • 访问控制:
    • listener.ora 中使用明确的 HOST(避免仅用通配或易变主机名),必要时限制来源网段。
    • 结合网络 ACL/安全组仅放通应用所在 网段/IP
  • 运行期核查:
    • lsnrctl status 确认监听地址与端口;
    • netstat -tulnp | grep 1521ss -lntp | grep 1521 校验端口监听;
    • lsof -i :1521 定位占用进程,避免端口冲突。
      通过“最小暴露面 + 可验证”的策略,兼顾 可用性安全性

五 常见问题快速排查清单

  • 命令找不到或权限不足:
    • which lsnrctl 确认路径,加入 PATH;必要时以 oracle 用户或 sudo 执行。
  • 环境变量未生效:
    • 检查 ORACLE_HOME、ORACLE_SID,执行 source ~/.bashrc 或相应 profile。
  • 端口冲突:
    • netstat -tulnp | grep 1521lsof -i :1521 查找占用进程并处置,或调整 listener.ora 端口后重启监听。
  • 监听未注册服务:
    • lsnrctl status 检查服务映射;必要时 lsnrctl reload 或确认数据库实例已启动并注册到监听。
  • 客户端连不通:
    • 复核 防火墙网络路由,并用 tnsping/sqlplus 分段验证。
      以上为 Ubuntu 下高频问题的定位路径,覆盖 路径、权限、环境、端口、注册、连通性 六大维度,便于快速恢复。

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


若转载请注明出处: Ubuntu lsnrctl最佳实践案例
本文地址: https://pptw.com/jishu/753779.html
Linux中copendir的跨平台性 如何用copirdir进行目录比较

游客 回复需填写必要信息