Ubuntu lsnrctl备份与恢复策略
导读:Ubuntu 上 Oracle 监听器 lsnrctl 的备份与恢复策略 一 核心原则与范围 lsnrctl 是 Oracle Net 的监听器控制工具,备份与恢复的重点是监听器的网络配置文件与运行状态信息,而非工具本身。 关键备份对象:...
Ubuntu 上 Oracle 监听器 lsnrctl 的备份与恢复策略
一 核心原则与范围
- lsnrctl 是 Oracle Net 的监听器控制工具,备份与恢复的重点是监听器的网络配置文件与运行状态信息,而非工具本身。
- 关键备份对象:
- 配置文件:$ORACLE_HOME/network/admin/listener.ora、$ORACRA_HOME/network/admin/tnsnames.ora(建议连同整个 network/admin 目录一起备份)。
- 运行状态快照:lsnrctl status 的输出(便于审计与快速比对)。
- 日志与诊断:监听器日志(如 $ORACLE_HOME/diag/tnslsnr//listener/alert/log.xml 或同级目录下的文本日志),用于故障定位与回滚验证。
- 操作前确认 ORACLE_HOME 已正确设置,并以 oracle 用户执行相关命令。
二 备份策略与实施步骤
- 准备与定位
- 切换到 oracle 用户:
sudo su - oracle - 确认 ORACLE_HOME:
echo $ORACLE_HOME - 标准配置路径通常为:$ORACLE_HOME/network/admin
- 切换到 oracle 用户:
- 配置文件备份
- 单文件备份:
cp $ORACLE_HOME/network/admin/listener.ora /path/to/backup/listener.ora_$(date +%F_%H-%M-%S)cp $ORACLE_HOME/network/admin/tnsnames.ora /path/to/backup/tnsnames.ora_$(date +%F_%H-%M-%S)
- 目录级备份(推荐):
rsync -a --delete $ORACLE_HOME/network/admin/ /path/to/backup/network_admin_$(date +%F_%H-%M-%S)/
- 单文件备份:
- 运行状态快照
lsnrctl status > /path/to/backup/listener_status_$(date +%F_%H-%M-%S).txt
- 日志归档(可选)
tar czf /path/to/backup/listener_logs_$(date +%F_%H-%M-%S).tgz $ORACLE_HOME/diag/tnslsnr/$(hostname)/listener/
- 自动化与保留
- 建议以 cron 定时执行备份脚本,并保留近 7–30 天 的历史副本(按变更频率与合规要求调整)。
三 恢复策略与实施步骤
- 快速恢复(有可用备份)
- 先备份当前配置:
cp $ORACLE_HOME/network/admin/listener.ora $ORACLE_HOME/network/admin/listener.ora.bak_$(date +%F_%H-%M-%S) - 恢复文件或目录:
- 文件级:
cp /path/to/backup/listener.ora $ORACLE_HOME/network/admin/ - 目录级:
rsync -a /path/to/backup/network_admin_YYYY-MM-DD_HH-MM-SS/ $ORACLE_HOME/network/admin/
- 文件级:
- 使配置生效(二选一):
- 重启监听器:
lsnrctl stop→lsnrctl start - 热加载:
lsnrctl reload
- 重启监听器:
- 验证:
lsnrctl status,并抽查关键服务是否已注册与监听端口可达。
- 先备份当前配置:
- 无备份或配置损坏的兜底
- 删除或重命名损坏配置,让监听器在下次启动时重建默认配置:
mv $ORACLE_HOME/network/admin/listener.ora $ORACLE_HOME/network/admin/listener.ora.oldlsnrctl start
- 使用最小可用模板重建 listener.ora(示例):
- 编辑
$ORACLE_HOME/network/admin/listener.ora,填入:LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1) (PROGRAM = extproc) ) ) - 启动并验证:
lsnrctl start→lsnrctl status
- 编辑
- 若需从其他同版本环境迁移,可拷贝其 listener.ora/tnsnames.ora 到本机并按实际 HOST/PORT/ORACLE_HOME/SID 调整。
- 删除或重命名损坏配置,让监听器在下次启动时重建默认配置:
四 变更管理与验证清单
- 变更窗口与回滚预案
- 选择业务低峰时段;先备份当前配置与状态;准备回滚命令(如
cp listener.ora.bak listener.ora+lsnrctl reload/restart)。
- 选择业务低峰时段;先备份当前配置与状态;准备回滚命令(如
- 配置与连通性验证
- 配置语法与注册状态:
lsnrctl status(检查监听端口、服务/SID 注册情况) - 网络连通性:
telnet < host> 1521或nc -vz < host> 1521 - 客户端解析:
tnsping < tns_alias>(依赖 tnsnames.ora 正确)
- 配置语法与注册状态:
- 日志与告警
- 异常时优先查看:$ORACLE_HOME/diag/tnslsnr//listener/alert/log.xml 或同级文本日志,结合告警时间点与变更记录定位问题。
五 自动化脚本示例
- 备份脚本 backup_listener.sh(以 oracle 用户执行)
#!/usr/bin/env bash set -Eeuo pipefail : "${ ORACLE_HOME:?请先设置 ORACLE_HOME 环境变量} " BACKUP_BASE="/opt/backup/oracle_listener" TS=$(date +%F_%H-%M-%S) ADMIN_DIR="$ORACLE_HOME/network/admin" mkdir -p "$BACKUP_BASE" # 1) 配置文件与目录 cp -a "$ADMIN_DIR/listener.ora" "$BACKUP_BASE/listener.ora_$TS" cp -a "$ADMIN_DIR/tnsnames.ora" "$BACKUP_BASE/tnsnames.ora_$TS" rsync -a --delete "$ADMIN_DIR/" "$BACKUP_BASE/network_admin_$TS/" # 2) 运行状态快照 lsnrctl status > "$BACKUP_BASE/listener_status_$TS.txt" # 3) 日志归档(可选) find "$ORACLE_HOME/diag/tnslsnr" -type f -name "*.log" -o -name "*.xml" | \ xargs tar czf "$BACKUP_BASE/listener_logs_$TS.tgz" -C "$ORACLE_HOME/diag/tnslsnr" --transform 's,^tnslsnr/,,' echo "备份完成 -> $BACKUP_BASE (时间戳: $TS)" - 定时任务(每天 02:00 保留最近 14 天)
0 2 * * * /opt/scripts/backup_listener.sh find /opt/backup/oracle_listener -type f -mtime +14 -delete - 恢复示例
# 1) 回滚 listener.ora cp /opt/backup/oracle_listener/listener.ora_YYYY-MM-DD_HH-MM-SS $ORACLE_HOME/network/admin/listener.ora lsnrctl reload # 2) 或整目录回滚 rsync -a --delete /opt/backup/oracle_listener/network_admin_YYYY-MM-DD_HH-MM-SS/ $ORACLE_HOME/network/admin/ lsnrctl restart
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu lsnrctl备份与恢复策略
本文地址: https://pptw.com/jishu/753782.html
