在 Debian 中,lsnrctl 是 Oracle Database(通常随 Oracle 客户端/服务端安装) 里的命令,用来管理 Listener(监听器)。
它本身不是一个需要“备份”的程序,你需要备份的是 监听器配置和状态信息。
下面按常见场景说明。
监听器的主要配置文件是:
$ORACLE_HOME/network/admin/listener.ora
$ORACLE_HOME/network/admin/tnsnames.ora # 如果有
$ORACLE_HOME/network/admin/sqlnet.ora # 如果有
cp $ORACLE_HOME/network/admin/listener.ora \
$ORACLE_HOME/network/admin/listener.ora.bak
或整体备份:
tar czf listener_backup.tar.gz $ORACLE_HOME/network/admin
✅ 这是最推荐、最完整的备份方式
lsnrctl status > listener_status.txt
lsnrctl services > listener_services.txt
这些文件可用于对比恢复后的状态,但不能代替配置文件。
如果监听器设置了密码(旧版本 Oracle):
cat $ORACLE_HOME/network/admin/listener.ora | grep PASSWORDS
⚠️ 密码是加密的,只能连文件一起备份
如果是生产环境,建议:
# 定时任务
crontab -e
例如每天备份:
0 2 * * * cp $ORACLE_HOME/network/admin/listener.ora /backup/listener.ora.$(date +%F)
恢复时只需:
cp listener.ora.bak listener.ora
lsnrctl reload
或:
lsnrctl stop
lsnrctl start
✅ 真正需要备份的是:
listener.oratnsnames.orasqlnet.ora❌ 不需要备份 lsnrctl 命令本身
如果你愿意,可以告诉我:
我可以给你更精确的备份方案。