ubuntu lsnrctl使用案例分享
导读:Ubuntu 下 lsnrctl 使用案例精选 一 环境准备与常用命令 以 oracle 用户操作,先加载环境变量(示例路径以实际安装为准): 示例:export ORACLE_HOME=/u01/app/oracle/product/...
Ubuntu 下 lsnrctl 使用案例精选
一 环境准备与常用命令
- 以 oracle 用户操作,先加载环境变量(示例路径以实际安装为准):
- 示例:
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 - 示例:
export PATH=$PATH:$ORACLE_HOME/bin
- 示例:
- 常用命令一览:
- 启动/停止/重启:
lsnrctl start|stop|restart [listener_name] - 查看状态:
lsnrctl status [listener_name] - 热加载配置:
lsnrctl reload [listener_name] - 服务与连接:
lsnrctl services [service_name]、lsnrctl connections - 日志与诊断:
lsnrctl logfile [listener_name]、tail -f $ORACLE_HOME/network/log/listener.log - 动态调参:
lsnrctl setloglevel listener_name debug、lsnrctl setenv variable value - 进程与内部信息:
lsnrctl processes、lsnrctl env。
- 启动/停止/重启:
二 案例一 启动与验证监听器
- 步骤
- 打开终端并切换用户:
sudo su - oracle - 加载环境变量:
source ~/.bash_profile(或相应 profile) - 启动监听器:
lsnrctl start(如命名监听器:lsnrctl start LISTENER) - 验证状态:
lsnrctl status,确认监听地址、端口与服务映射 - 查看日志定位问题:
tail -f $ORACLE_HOME/network/log/listener.log
- 打开终端并切换用户:
- 要点
- 若提示找不到命令,多为 ORACLE_HOME/bin 未加入 PATH
- 启动失败优先检查 listener.ora 配置与端口占用。
三 案例二 多监听器管理与热更新
- 场景:同时存在 LISTENER1(业务)、LISTENER2(维护/迁移)
- 操作
- 启动指定监听器:
lsnrctl start LISTENER1、lsnrctl start LISTENER2 - 分别查看状态:
lsnrctl status LISTENER1、lsnrctl status LISTENER2 - 平滑应用配置变更:编辑 $ORACLE_HOME/network/admin/listener.ora 后执行
lsnrctl reload LISTENER1(不中断现有连接) - 停用某监听器:
lsnrctl stop LISTENER2,如需彻底移除,先停止,再删除 listener.ora 中对应条目,最后lsnrctl start使变更生效
- 启动指定监听器:
- 要点
- 多监听器时务必在命令中明确 listener_name
- 变更端口/协议等结构性配置,必要时使用 stop/start 替代 reload。
四 案例三 连接诊断与日志排错
- 快速连通性验证
- 查看监听端口与服务注册:
lsnrctl status(关注监听地址与端口,如 1521) - 列出服务与句柄:
lsnrctl services(确认数据库服务是否已注册) - 实时跟踪日志:
tail -f $ORACLE_HOME/network/log/listener.log - 动态提升日志级别:
lsnrctl setloglevel LISTENER debug(排障后建议恢复)
- 查看监听端口与服务注册:
- 客户端连通性
- 使用 sqlplus 测试:
sqlplus sys/password@//host:1521/service as sysdba - 若监听正常但连不通,核对 listener.ora 与 tnsnames.ora 的 HOST/PORT/SERVICE 一致性及防火墙策略
- 使用 sqlplus 测试:
- 要点
- 监听正常但服务未注册,多为数据库实例未注册或 local_listener 参数不当
- 日志路径常见为 $ORACLE_HOME/network/log/listener.log,XML 告警日志在 $ORACLE_HOME/diag/tnslsnr//listener/alert/log.xml。
五 案例四 生产变更与回滚演练
- 目标:变更 LISTENER 端口由 1521 到 1522 并安全回滚
- 演练步骤
- 基线记录
lsnrctl status > status_before.txtlsnrctl services > services_before.txt
- 配置变更
- 编辑 $ORACLE_HOME/network/admin/listener.ora,将端口改为 1522
- 滚动切换
lsnrctl stop LISTENERlsnrctl start LISTENERlsnrctl status与lsnrctl services校验
- 客户端验证
sqlplus sys/password@//host:1522/service as sysdba
- 回滚预案
- 若异常,立即恢复 listener.ora 为 1521 并
lsnrctl restart LISTENER
- 若异常,立即恢复 listener.ora 为 1521 并
- 基线记录
- 要点
- 变更窗口内避免同时修改多台主机监听器
- 保留回滚路径与变更记录,变更后持续观察日志 1–2 小时。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu lsnrctl使用案例分享
本文地址: https://pptw.com/jishu/758309.html
