如何通过lsnrctl轻松备份CentOS监听配置,以防万一配置丢失?

更新于
2026-09-29 18:18:43
4阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐
话说回来,

为什么备份 Oracle 监听器配置如此关键?

监听器配置丢失

  • 客户端无法连接数据库,业务中断。
  • 排查故障耗时耗力,影响运维效率。
  • 若未及时备份。恢复只能依赖记忆或重新手动配置,风险极高。不过,

定期备份监听器配置文件是防止“万一”情况下快速恢复的必备手段。

如何通过lsnrctl轻松备份CentOS监听配置,以防万一配置丢失?

至于第一步先。确定 Oracle Home 目录

只有知道 Oracle 的安装方法,才能找到监听器配置文件。

$ echo $ORACLE_HOME
# 若未设置,可通过以下方式查找:
$ ps -ef | grep pmon # 查看进程获取实例名
$ cat /etc/oratab # 查看 SID 对应的 ORACLE_HOME

接下来的观点是。定位监听器配置文件

Oracle 监听器的主要配置文件默认位于 $ORACLE_HOME/network/admin/ 目录下:

  • listener.ora —— 监听器端口、协议、服务名等。
  • tnsnames.ora —— 本地命名解析,有时也需备份。

:备份监听器配置

A) 使用 lsnrctl 导出当前状态

  1. 切换到 Oracle 使用者**:
    $ sudo su - oracle
    
  2. /运行 lsnrctl status 并将输出重定向到备份文件**:
    $ lsnrctl status> /backup/listener_status_$.txt
    # 上述命令会把当前监听器状态、已注册服务及端口信息写入文件。# 若只想保存特定监听器。
    可加名称:
    $ lnrltl status LISTENER> /backup/listener_STATUS_$.txt
    
  3. 使用 save 命令直接生成 listener.ora 副本**:
    $ lsnrctl save LISTENER /backup/listener_backup_$.ora
    # 生成的文件内容与 listener.ora 基本一致,便于直接替换。怎么说呢,
  1. /切换到 Oracle 使用者**:同上。
  2. /进入 admin 目录**:
    $ cd $ORACLE_HOME/network/admin
    
  3. /使用 cp 把 listener.ora复制到安全位置**:
    $ cp listener.ora /backup/listener_$.ora
    $ cp tnsnames.ora /backup/tnsnames_$.ota # 若存在该文件
    # 建议加上日期或时间戳,便于版本管理。# 若需压缩保存:
    $ tar -czvf /backup/listener_cfg_$.tar.gz listener.ora tnsnames.ota
    

至于第四步,验证备份文件是否完整可用

- 检查文件大小是否非零。- 用 cat,。或 ,对比原始内容。- 若采用压缩包,先解压再比对。示例命令的观点是,

$ ls -l /backup/*listener*
$ diff $ORACLE_HOME/network/admin/listener.oa /backup/listener_$.oa
# 若无输出则表示完全一致。$ tar -tzf /backup/listener_cfg_$.tar.gz # 查看包内文件
$ tar -xzvf /backup/listener_cfg_$.tar.gz -C /tmp/restore/
$ diff $ORACLE_HOME/network/admin/listener.oar /tmp/restore/listener.oar
# 同上检查一致性。

$ tar -xzvf /backup/listenercfg$.tar.gz -C $ORACLEHOME/network/admin/

  • 检查权限与所有者
    $ chown oracle:oinstall $ORACLE
  • HOME/network/admin/.oar $ chmod 640 $ORACLE_HOME/network/admin/.oar
  • 启动监听器并验证状态
    
    $ lnlsnrctl start
    $ lnlsnrctl status # 应看到服务已注册、端口正常 listening.
    

  • 提示一下:养成每周或每月自动化备份的习惯,并在非业务高峰期执行;这样即使真的出现“万一”情况,也能在几分钟内把数据库服务恢复正常避免长时间的业务中断和额外的故障排查成本。不过,预防胜于治疗别等到连不上数据库才后悔没提前备份!**

    标签:CentOS
    话说回来,

    为什么备份 Oracle 监听器配置如此关键?

    监听器配置丢失

    • 客户端无法连接数据库,业务中断。
    • 排查故障耗时耗力,影响运维效率。
    • 若未及时备份。恢复只能依赖记忆或重新手动配置,风险极高。不过,

    定期备份监听器配置文件是防止“万一”情况下快速恢复的必备手段。

    如何通过lsnrctl轻松备份CentOS监听配置,以防万一配置丢失?

    至于第一步先。确定 Oracle Home 目录

    只有知道 Oracle 的安装方法,才能找到监听器配置文件。

    $ echo $ORACLE_HOME
    # 若未设置,可通过以下方式查找:
    $ ps -ef | grep pmon # 查看进程获取实例名
    $ cat /etc/oratab # 查看 SID 对应的 ORACLE_HOME
    

    接下来的观点是。定位监听器配置文件

    Oracle 监听器的主要配置文件默认位于 $ORACLE_HOME/network/admin/ 目录下:

    • listener.ora —— 监听器端口、协议、服务名等。
    • tnsnames.ora —— 本地命名解析,有时也需备份。

    :备份监听器配置

    A) 使用 lsnrctl 导出当前状态

    1. 切换到 Oracle 使用者**:
      $ sudo su - oracle
      
    2. /运行 lsnrctl status 并将输出重定向到备份文件**:
      $ lsnrctl status> /backup/listener_status_$.txt
      # 上述命令会把当前监听器状态、已注册服务及端口信息写入文件。# 若只想保存特定监听器。
      可加名称:
      $ lnrltl status LISTENER> /backup/listener_STATUS_$.txt
      
    3. 使用 save 命令直接生成 listener.ora 副本**:
      $ lsnrctl save LISTENER /backup/listener_backup_$.ora
      # 生成的文件内容与 listener.ora 基本一致,便于直接替换。怎么说呢,
    1. /切换到 Oracle 使用者**:同上。
    2. /进入 admin 目录**:
      $ cd $ORACLE_HOME/network/admin
      
    3. /使用 cp 把 listener.ora复制到安全位置**:
      $ cp listener.ora /backup/listener_$.ora
      $ cp tnsnames.ora /backup/tnsnames_$.ota # 若存在该文件
      # 建议加上日期或时间戳,便于版本管理。# 若需压缩保存:
      $ tar -czvf /backup/listener_cfg_$.tar.gz listener.ora tnsnames.ota
      

    至于第四步,验证备份文件是否完整可用

    - 检查文件大小是否非零。- 用 cat,。或 ,对比原始内容。- 若采用压缩包,先解压再比对。示例命令的观点是,

    $ ls -l /backup/*listener*
    $ diff $ORACLE_HOME/network/admin/listener.oa /backup/listener_$.oa
    # 若无输出则表示完全一致。$ tar -tzf /backup/listener_cfg_$.tar.gz # 查看包内文件
    $ tar -xzvf /backup/listener_cfg_$.tar.gz -C /tmp/restore/
    $ diff $ORACLE_HOME/network/admin/listener.oar /tmp/restore/listener.oar
    # 同上检查一致性。

    $ tar -xzvf /backup/listenercfg$.tar.gz -C $ORACLEHOME/network/admin/

  • 检查权限与所有者
    $ chown oracle:oinstall $ORACLE
  • HOME/network/admin/.oar $ chmod 640 $ORACLE_HOME/network/admin/.oar
  • 启动监听器并验证状态
    
    $ lnlsnrctl start
    $ lnlsnrctl status # 应看到服务已注册、端口正常 listening.
    

  • 提示一下:养成每周或每月自动化备份的习惯,并在非业务高峰期执行;这样即使真的出现“万一”情况,也能在几分钟内把数据库服务恢复正常避免长时间的业务中断和额外的故障排查成本。不过,预防胜于治疗别等到连不上数据库才后悔没提前备份!**

    标签:CentOS