在 Debian 上,lsnrctl 是 Oracle Database Listener(通常来自 Oracle Instant Client 或完整 Oracle 数据库安装)的命令行工具,而不是 Debian 自带软件。它的配置主要来自 listener.ora 文件。
下面给你几种备份 Debian 上 lsnrctl 配置的常用方法。
通常位于 Oracle 的 network/admin 目录,例如:
$ORACLE_HOME/network/admin/listener.ora
如果未设置环境变量,可以查找:
find / -name listener.ora 2>/dev/null
常见路径:
/u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora/opt/oracle/product/.../network/admin/listener.oracp $ORACLE_HOME/network/admin/listener.ora \
$ORACLE_HOME/network/admin/listener.ora.bak
或带日期:
cp listener.ora listener.ora.$(date +%F)
tar czvf listener_backup_$(date +%F).tar.gz \
$ORACLE_HOME/network/admin
恢复时:
tar xzvf listener_backup_2026-01-15.tar.gz -C /
虽然 lsnrctl 不能“导出文件”,但可以查看当前运行配置:
lsnrctl status
lsnrctl show
你也可以把输出保存:
lsnrctl status > lsnrctl_status.txt
⚠️ 这只是运行信息,不是配置文件备份。
crontab -e
添加:
0 2 * * * cp $ORACLE_HOME/network/admin/listener.ora \
$ORACLE_HOME/network/admin/listener.ora.$(date +\%F)
停止 listener:
lsnrctl stop
恢复文件:
cp listener.ora.bak listener.ora
启动:
lsnrctl start
✅ 推荐做法
listener.oratnsnames.ora、sqlnet.ora 一起备份network/admin 目录如果你愿意,可以告诉我:
$ORACLE_HOME 路径我可以给你一套更精确的备份脚本。