温馨提示×

Ubuntu Informix如何进行数据备份与容灾

小樊
44
2025-12-26 21:26:23
栏目: 智能运维

Ubuntu 上 Informix 的备份与容灾实践指南

一 备份方法总览与选择建议

  • 原生分级备份:使用 ontape 执行 0级(全量)/1级(增量)/2级(差异) 备份,适合生产环境的常规物理/逻辑备份与快速恢复。
  • 逻辑导出:使用 dbexport/dbimport 导出为 ASCII 模式与数据文件,便于迁移、跨平台与人工编辑对象定义。
  • 表级高效卸数:使用 onunload/onload 以页为单位二进制卸出/装载,适合大表快速备份与恢复。
  • 企业级并行备份:使用 onbar(需存储代理/介质管理),支持并行备份与恢复,适合大规模与高并发场景。
  • 物理打包:对 $INFORMIXDIR(含数据、配置)做 tar 归档,用于整机快照、迁移或冷备份。
  • 建议:日常以 ontape 0级为主,按变更频率叠加 1/2级;关键库配合 dbexport 做可编辑/迁移副本;超大表优先 onunload;具备企业存储时考虑 onbar

二 常用备份命令示例

  • ontape 分级备份(需切换到 informix 用户)
    • 0级全量:
      sudo -u informix ontape -s -L 0 -d your_db -o /backup/informix/your_db_$(date +%F).bak
    • 1级增量:
      sudo -u informix ontape -s -L 1 -d your_db -o /backup/informix/your_db_inc_$(date +%F).bak
    • 2级差异:
      sudo -u informix ontape -s -L 2 -d your_db -o /backup/informix/your_db_diff_$(date +%F).bak
  • dbexport/dbimport(逻辑导出/导入)
    • 导出:
      sudo -u informix dbexport your_db -ss -c “your_password” -f /backup/informix/your_db_export.dmp
    • 导入(目标库不可存在同名库):
      sudo -u informix dbimport your_db -i /backup/informix/your_db_export.dmp -c “your_password”
  • onunload/onload(表级高效卸数/装载)
    • 卸出:
      sudo -u informix onunload -l -b -s your_db:your_table -o /backup/informix/your_table.unl
    • 装载:
      sudo -u informix onload -d your_db -i /backup/informix/your_table.unl
  • 物理打包(tar)
    • 备份:
      sudo tar -czvf /backup/informix/full_$(date +%F).tar.gz $INFORMIXDIR
    • 恢复:
      sudo tar -xzvf /backup/informix/full_$(date +%F).tar.gz -C /
      以上命令需确保 informix 用户对备份目录具备写权限,且磁盘空间充足。

三 恢复流程要点

  • ontape 恢复
    • 全库恢复:
      sudo -u informix ontape -r
    • 指定备份文件恢复:
      sudo -u informix ontape -r -i /backup/informix/your_db_2025-12-26.bak
    • 多级别恢复顺序:先 0级,再按时间顺序恢复 1级/2级,随后持续应用逻辑日志直至追平或达到目标时间点。
  • dbexport/dbimport 恢复
    • 先确保目标库不存在同名库,再执行导入;导入会重建对象与数据,适合迁移与结构微调。
  • onunload/onload 恢复
    • 使用与卸出时一致的参数,按表级文件逐一装载,适合大表快速回灌。
  • 物理归档恢复
    • 建议停机后解压覆盖至 $INFORMIXDIR,确保 onconfigsqlhosts 与权限一致,再启动实例进行日志回放。
  • 关键注意
    • 使用 ontape 跨服务器恢复时,要求两端 机型、操作系统、onconfig 配置非临时 Dbspace 的数量与大小 尽量一致,否则可能无法正常恢复。
    • 恢复前停止写入,避免覆盖丢失数据;恢复后及时校验数据一致性与对象完整性。

四 容灾方案与高可用

  • 高可用集群技术
    • HDR(High-Availability Data Replication):基于事务日志的主备切换,备机可读,主机故障自动接管。
    • ER(Enterprise Replication):表级复制,支持主从、汇总、双向等模式,灵活选择同步对象与方向。
    • RSS(Remote Standalone Secondary):支持多台远程备机,增强容灾与读扩展。
    • SDS(Shared Disk Secondary):共享磁盘的备机形态,故障切换快、节省存储。
    • CLR(Continuous Log Restore):通过持续回放逻辑日志在远程灾备端追平主库,适合网络不稳定或物理隔离场景。
    • Connection Manager(CM):提供基于 SLA 的连接路由、负载均衡与故障转移,对应用透明。
  • 备份到异地与演练
    • ontape/dbexport 等备份定期复制到 异地/云端,并定期执行 恢复演练 验证 RPO/RTO 指标。
  • 虚拟化与存储层容灾
    • VMware/KVM 等虚拟化平台利用快照/复制能力,或采用 存储双写/镜像 实现数据级双活/准实时同步。
  • 监控与校验
    • 使用 onstat、onmode 等内置工具配合 Nagios/Zabbix 监控实例健康,定期校验备份完整性与可恢复性。

五 自动化与运维规范

  • 定时备份脚本示例(每日 0级 + 保留 30 天)
    • 脚本:/opt/informix/scripts/auto_backup.sh
      #!/bin/bash
      BACKUP_DIR="/backup/informix"
      DATE=$(date +%F)
      LOG="$BACKUP_DIR/backup_$DATE.log"
      
      echo "[$(date)] Start 0-level backup" >> "$LOG"
      sudo -u informix ontape -s -L 0 -d your_db -o "$BACKUP_DIR/your_db_$DATE.bak" >> "$LOG" 2>&1
      if [ $? -eq 0 ]; then
        echo "[$(date)] 0-level backup OK" >> "$LOG"
      else
        echo "[$(date)] 0-level backup FAILED" >> "$LOG"
      fi
      
      # 清理 30 天前备份
      find "$BACKUP_DIR" -name "your_db_*.bak" -type f -mtime +30 -delete >> "$LOG" 2>&1
      
    • 定时任务:
      0 2 * * * /opt/informix/scripts/auto_backup.sh
  • 关键配置与检查
    • onconfig 中正确设置 TAPEDEV、TAPEBLK、TAPESIZE 等磁带/管道参数;确保 逻辑日志 充足并定期备份/归档。
    • 备份完成后检查 online.log 与脚本日志,定期做 恢复演练备份完整性校验,确保真实可用。

0