首页主机资讯ubuntu informix如何进行备份恢复

ubuntu informix如何进行备份恢复

时间2025-11-17 20:55:03发布访客分类主机资讯浏览423
导读:Ubuntu 上 Informix 备份与恢复实操指南 一 常用方法与适用场景 ontape:Informix 原生工具,支持 0级(全备)/1级(增量)/2级(差异) 备份,可联机执行,适合中小规模或快速恢复场景。 onbar:企业级并...

Ubuntu 上 Informix 备份与恢复实操指南

一 常用方法与适用场景

  • ontape:Informix 原生工具,支持 0级(全备)/1级(增量)/2级(差异) 备份,可联机执行,适合中小规模或快速恢复场景。
  • onbar:企业级并行备份,支持大规模与更高并发,适合对 RTO/RPO 要求更高的环境。
  • dbexport/dbimport:以 ASCII 导出/导入数据库对象与数据,便于迁移、编辑或跨平台,但为脱机方式。
  • onunload/onload:以页为单位二进制卸出/装入,效率高于 dbexport,适合大表级备份与恢复。
  • 物理打包(tar):对 $INFORMIXDIR(数据、配置等)做文件系统级快照,需停库,适合整机迁移/快速回滚。
  • 逻辑日志管理:配合 ontape 的 -a/-c 实现已用日志备份与连续归档,保障可恢复到故障前的一致性点。

二 备份操作示例

  • 使用 ontape 做分级备份(建议每日/每周策略:每日 1 级,每周 0 级)

    # 0级全备(示例路径,按实际环境调整)
    sudo -u informix ontape -s -L 0 -t STDIO >
         /backup/inf/ontape_L0_$(date +%F).bak
    
    # 1级增量(基于上一次备份后变更的数据)
    sudo -u informix ontape -s -L 1 -t STDIO >
         /backup/inf/ontape_L1_$(date +%F).bak
    
    # 2级差异(基于上一次1级后变更的数据)
    sudo -u informix ontape -s -L 2 -t STDIO >
         /backup/inf/ontape_L2_$(date +%F).bak
    
    # 自动/连续归档已用逻辑日志(避免日志满)
    sudo -u informix ontape -a
    # 或启用连续日志备份守护
    sudo -u informix ontape -c
    

    提示:如使用磁带设备,将 -t STDIO 替换为 -t /dev/st0 等实际设备;确保 TAPEDEV/TAPEBLK/TAPESIZE 等参数正确。

  • 使用 dbexport/dbimport 做可移植备份(脱机)

    # 导出(建议在静默/维护窗口)
    sudo -u informix dbexport -d mydb -ss -c -f /backup/inf/mydb.exp
    
    # 导入(目标库可不存在,会按导出内容重建)
    sudo -u informix dbimport -d mydb -c -f /backup/inf/mydb.exp
    

    说明:导出为可读文本,便于审计与迁移;导入时按对象定义与数据重建数据库。

  • 使用 onunload/onload 做大表高效备份(脱机)

    # 二进制卸出单表
    sudo -u informix onunload -l /backup/inf/mytab.unl mydb:mytab
    
    # 装入恢复
    sudo -u informix onload -d mydb /backup/inf/mytab.unl
    

    说明:适合大表快速备份/恢复,文件为页级二进制,必须与 onload 配对使用。

  • 使用 tar 做物理备份(需停库)

    # 停库
    sudo systemctl stop informix    # 或 onmode -ky
    
    # 打包数据目录与关键配置
    sudo tar -czvf /backup/inf/inf_phys_$(date +%F).tar.gz \
         $INFORMIXDIR/etc $INFORMIXDIR/data /opt/IBM/informix/etc/onconfig.*
    
    # 启动
    sudo systemctl start informix   # 或 oninit
    

    说明:简单快速,适合同版本同路径恢复或整机迁移;跨版本/跨路径需谨慎评估。

三 恢复操作示例

  • 使用 ontape 恢复(按备份级别回放)

    # 1) 零级恢复(基础)
    sudo -u informix ontape -r
    
    # 2) 1级/2级增量回放(按备份顺序)
    sudo -u informix ontape -r
    
    # 3) 恢复到指定时间点(PITR):先恢复到最近0/1/2级,再回放逻辑日志
    sudo -u informix ontape -r
    # 在提示中按已归档逻辑日志继续回放,直至目标时间点
    

    要点:恢复顺序必须为 0级 → 1级/2级 → 逻辑日志;如启用连续日志归档,可回放到故障前最近一致性点。

  • 使用 dbexport/dbimport 恢复(重建数据库)

    # 目标库不存在时直接导入
    sudo -u informix dbimport -d mydb -c -f /backup/inf/mydb.exp
    
    # 若库已存在且需覆盖,先 dropdb 再导入(谨慎操作)
    sudo -u informix dbaccess - -
    >
         drop database mydb;
        
    >
         exit
    sudo -u informix dbimport -d mydb -c -f /backup/inf/mydb.exp
    

    说明:适合迁移、结构变更或跨平台恢复;导入过程会重建对象与数据。

  • 使用 onunload/onload 恢复单表

    sudo -u informix onload -d mydb /backup/inf/mytab.unl
    

    说明:与 onunload 成对使用,恢复效率与一致性较好。

  • 使用 tar 物理恢复(需停库)

    # 停库
    sudo systemctl stop informix
    
    # 解压覆盖(务必先备份当前环境与配置)
    sudo tar -xzvf /backup/inf/inf_phys_2025-09-01.tar.gz -C /
    
    # 启动
    sudo systemctl start informix
    

    说明:适合同版本、同目录结构的快速回滚;跨版本/跨路径可能需调整 onconfig 与路径映射。

四 自动化与运维要点

  • 定时任务示例(每日 0 级 + 每周 1 级,保留 30 天)

    # /opt/informix/scripts/backup.sh
    #!/usr/bin/env bash
    BACKUP_DIR="/backup/inf"
    DATE=$(date +%F)
    LOG="$BACKUP_DIR/backup_$DATE.log"
    
    echo "[$(date)] Start 0-level backup" >
        >
         "$LOG"
    sudo -u informix ontape -s -L 0 -t STDIO >
        >
         "$LOG" 2>
        &
    1 || {
         echo "0-level failed";
         exit 1;
     }
        
    
    # 每周一 1级(示例:周日=0)
    if [ $(date +%u) -eq 1 ];
         then
      echo "[$(date)] Start 1-level backup" >
        >
         "$LOG"
      sudo -u informix ontape -s -L 1 -t STDIO >
        >
         "$LOG" 2>
        &
        1 || echo "1-level failed"
    fi
    
    # 清理30天前备份
    find "$BACKUP_DIR" -name "*.bak" -mtime +30 -delete >
        >
         "$LOG" 2>
        &
        1
    
    # crontab -e
    0 2 * * * /opt/informix/scripts/backup.sh
    

    建议:脚本加可执行权限,日志集中审计;定期校验备份可用性与恢复演练。

  • 关键注意事项

    • 恢复前确保 INFORMIXSERVER/INFORMIXDIR 等环境变量正确,实例处于 offline 状态(物理恢复/导入场景)。
    • 使用 ontape 时,务必配置并验证 逻辑日志归档(如 -a/-c),避免日志满导致实例挂起。
    • 物理恢复(tar)与 onunload/onload 均为脱机方式,需在维护窗口执行;跨版本迁移优先用 dbexport/dbimport
    • 定期做 恢复演练备份完整性校验,并保留多份异地副本(如本地盘 + 远端存储)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu informix如何进行备份恢复
本文地址: https://pptw.com/jishu/749327.html
Linux Kafka的消息顺序性如何保证 ubuntu informix如何进行高可用配置

游客 回复需填写必要信息