You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible 2.9.25环境下RHEL7.9中Oracle oraInventory目录备份方案求助

Ansible实现oraInventory目录备份(适配2.9.25版本)

由于community.general.archive模块在Ansible 2.9.25中存在兼容性问题,直接使用command模块模拟手动备份流程即可,以下是完整Playbook代码:

---
- name: 备份Oracle oraInventory目录
  hosts: linux_oracle_servers
  vars:
    sid_name: "ORCL"  # 替换为实际数据库SID,或从主机变量/Inventory中读取
  tasks:
    - name: 确保/dbbackup目录存在
      file:
        path: /dbbackup
        state: directory
        mode: '0755'
      become: yes

    - name: 执行oraInventory备份命令
      command: tar -pczvf /dbbackup/Backup_OraInv_{{ sid_name }}.tar oraInventory | gzip > /dbbackup/Backup_OraInv_{{ sid_name }}.tar.gz
      args:
        chdir: /u01/app
      become: yes
      when: ansible_system == "Linux"

关键说明

  • chdir: /u01/app参数替代手动cd操作,确保tar命令在指定目录下执行
  • 提前创建/dbbackup目录,避免因目标目录不存在导致备份失败
  • sid_name变量可根据实际场景调整:比如在Inventory中给每个主机设置sid变量,然后用{{ sid }}调用
  • become: yes需根据实际权限配置:如果Oracle用户拥有/u01/app和/dbbackup的读写权限,可改为become_user: oracle

命令优化提示

原手动命令存在重复压缩问题:tar -pczvf中的z参数已经启用gzip压缩,再通过管道传递给gzip属于冗余操作,建议修正为以下两种方式之一:

  1. 用tar直接生成压缩包
tar -pczvf /dbbackup/Backup_OraInv_{{ sid_name }}.tar.gz oraInventory
  1. 用tar打包后再压缩(无z参数)
tar -pcvf - oraInventory | gzip > /dbbackup/Backup_OraInv_{{ sid_name }}.tar.gz

内容的提问来源于stack exchange,提问作者Learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 04:01:00