温馨提示×

Informix在Linux上的数据恢复技巧

小樊
43
2025-12-18 21:48:34
栏目: 智能运维

Linux 上 Informix 数据恢复技巧

一 恢复工具与适用场景

  • ontape:内置工具,支持 0级/1级/2级 备份与恢复,可同时处理 逻辑日志 与日志状态切换,适合中小规模与快速恢复场景。
  • onbar:企业级并行备份恢复,支持 时间点恢复(PITR),适合大规模与高并发环境。
  • dbexport/dbimport:以 ASCII 导出/导入数据库对象与数据,便于迁移与单库/单表级恢复。
  • onunload/onload:以 二进制页 方式卸出/装入,效率高,但必须与 onunload 配对使用。
  • 关键差异:ontape/onbar 面向实例/数据空间级恢复;dbexport/dbimport 面向数据库级对象恢复;onunload/onload 面向表级二进制恢复。

二 标准恢复流程

  • 全实例/数据空间级恢复(ontape)
    1. 准备:确保 INFORMIXDIR、INFORMIXSERVER 等环境变量正确,实例处于离线(如执行 onmode -ky)。
    2. 恢复:执行 ontape -r 进入交互式恢复;如仅恢复指定数据空间,使用 ontape -r -D
    3. 逻辑日志:按提示插入包含最近备份点的 已满逻辑日志备份,并持续回放 连续逻辑日志,直至提示完成。
  • 全实例/数据空间级恢复(onbar)
    1. 准备:配置 BAR_BSALIB、存储管理器,实例离线。
    2. 恢复:执行 onbar -r;如需时间点恢复,使用 onbar -r -L <时间点>
  • 数据库/表级恢复(dbexport/dbimport)
    1. 导出:用 dbexport 在源库导出为文本(含 DDL 与数据)。
    2. 导入:在目标库用 dbimport 重建对象并加载数据。
  • 表级恢复(onunload/onload)
    1. 卸出:源库用 onunload 生成二进制卸载文件。
    2. 装入:目标库用 onload 将文件装入指定表空间。
  • 提示:恢复顺序通常为“0级 → 1/2级 → 逻辑日志回放”;若采用 PITR,在恢复命令中指定目标时间点。

三 常见故障场景与应对

  • 逻辑日志满导致实例挂起或归档失败
    1. 快速处置:先插入最近一次 已满逻辑日志备份,再持续回放 连续逻辑日志 以释放空间。
    2. 根因治理:配置 逻辑日志连续备份,并合理增加 逻辑日志文件数量/大小,避免长事务。
  • 长事务阻塞回放或归档
    将大事务拆分为更小事务提交,或在恢复前评估并缩短事务窗口。
  • 恢复后唯一性冲突(如错误 268
    检查目标库中是否已存在相同主键/唯一键值的数据,必要时清理或调整后再导入。
  • 表/页级损坏或误删
    若有 onunload 二进制卸载文件,优先用 onload 精确恢复该表;否则考虑文件系统级工具(如 extundelete)尝试恢复被误删的 dbspace 数据文件,但成功率依赖文件系统与删除时机,务必在只读挂载或停机条件下操作,且优先使用备份恢复。

四 备份策略与恢复演练要点

  • 备份级别与频率:至少执行 0级全备;关键业务建议 每日0级,并按需补充 1/2级 增量;启用 逻辑日志连续备份 保障 PITR
  • 工具选择:ontape 简单易用;onbar 适合大规模与并行;dbexport/dbimport 适合迁移与对象级恢复;onunload/onload 适合高效表级恢复。
  • 自动化与验证:用 cron 定时执行备份,定期做 恢复演练备份完整性校验,确保 RTO/RPO 达标。
  • 配置与容量:在 onconfig 中正确设置 TAPEDEV、TAPEBLK、TAPESIZE 等磁带/通道参数;为 逻辑日志归档目录 预留充足空间。

五 常用命令速查