CentOS 上 Informix 备份恢复最佳实践
一 备份策略与工具选择
- 工具选型与定位
- 使用 ontape 做实例级/数据空间级物理备份,支持 0/1/2 级 分级备份,可联机或静止执行,适合日常与灾备主方案。
- 使用 dbexport/dbimport 做逻辑导出/导入,适合迁移、跨版本/跨平台、结构调整;导出期间对库加排他锁,业务需短暂停写。
- 使用 onunload/onload 做表级/库级二进制卸载/装载,性能优于 dbexport,但要求两端页大小一致,且仅能在 Informix 管理的数据库/表间使用。
- 备份级别与频率
- 以 0级全备 为主,按 RPO/RTO 设定 1级/2级 增量频率;关键业务建议 每日 0级,并结合持续归档逻辑日志以实现时间点恢复(PITR)。
- 存储与保留
- 备份介质优先使用独立磁盘或网络存储;目录需对 informix 用户具备 RWX 权限;按策略保留多份与多代副本,定期异地/离线存放。
- 自动化与验证
- 通过 cron 编排备份;每次备份后进行 文件存在性、大小、校验 验证,并定期做 真实恢复演练 验证可用性与时长。
二 标准备份操作步骤
- ontape 全备/增备(实例级)
- 配置归档设备(示例为目录设备)
- 编辑 $ONCONFIG:设置 TAPEDEV、TAPEBLK、TAPESIZE(数据归档),以及 LTAPEDEV、LTAPEBLK、LTAPESIZE(逻辑日志归档)。
- 创建目录并赋权:
mkdir -p /backup/informix && chown informix:informix /backup/informix && chmod 770 /backup/informix
- 执行备份
- 全备:
ontape -s -L 0
- 一级/二级:
ontape -s -L 1 或 ontape -s -L 2
- 逻辑日志备份(建议连续归档):
ontape -l
- 关键检查
- 保证 逻辑日志空间 充足;若剩余空间小于单个日志的 50%,备份会被拒绝,需先备份并释放日志。
- 备份过程中避免切换数据库运行方式;不建议用
& 后台方式执行交互式备份。
- dbexport 逻辑导出(库/表级)
- 导出:
dbexport -c -ss -o /backup/informix/mydb_export mydb
- 导入:
dbimport -c mydb -i /backup/informix/mydb_export
- 注意:导出为 独占模式;导入时需选择日志方式(如 ANSI/buffered/nobuffered)。
- onunload 二进制卸载(表/库级)
- 卸载:
onunload -t /backup/informix/mytbl.unl mydb:mytbl
- 装载:
onload -d mydb -i /backup/informix/mytbl.unl
- 注意:两端 磁盘页大小 需一致;不保留原始权限/同义词等对象属性。
三 标准恢复操作步骤
- ontape 恢复(实例级/数据空间级)
- 准备
- 干净停机:
onmode -ky
- 校验备份文件与目录权限;必要时将 LTAPEDEV 指向已归档的逻辑日志目录。
- 全量恢复
- 全实例:
ontape -r
- 指定数据空间:
ontape -r -D <dbspace>
- 增量与日志回放
- 按 0→1→2 顺序恢复增量;随后按提示插入/应用 逻辑日志 直至达到目标时间点或无日志可回放。
- dbexport/dbimport 恢复(库/表级)
- 先以目标日志方式创建空库(或使用现有库),再
dbimport 导入;适合迁移、结构调整与对象重建。
- onunload/onload 恢复(表/库级)
- 目标库存在且页大小一致,使用
onload 将 .unl 数据装载回库/表;适合大表快速恢复或迁移。
四 关键注意事项与常见错误
- 配置与一致性
- 恢复目标机的 磁盘路径、chunk 大小、共享内存参数 等应与最后一次 0级备份 时相同或更大;目录容量不小于归档时大小。
- 修改 $ONCONFIG 后应立刻做一次 0级备份,确保配置与备份一致;恢复时优先使用当时配置或备份随附的配置副本。
- 权限与介质
- 归档目录必须对 informix 具备 RWX;目录设备需预先创建并赋权,避免因权限不足导致 “open archive tape failed”。
- 逻辑日志与空间
- 备份前确保 逻辑日志 充足;若剩余空间低于单个日志的 50%,需先归档/备份日志再执行数据备份。
- 运行方式
- 备份期间避免改变数据库运行方式;不要以
& 后台方式执行交互式备份,防止中断或挂起。
- 跨机恢复
- 使用 ontape 将实例级备份恢复到另一台服务器时,要求 机型/OS、onconfig、非临时 dbspace 数量与大小 基本一致,否则可能无法恢复。
五 自动化与演练建议
- 自动化
- 验证与演练
- 定期做 恢复演练:随机抽取一次 0级+增量+日志,恢复到隔离环境,校验 表数量、数据量、关键业务查询 与 时间点一致性。
- 对 dbexport 与 onunload 备份,分别做导入/装载验证,确保结构与数据一致。