Ubuntu 上 Informix 数据库的恢复方法
一 方法总览与适用场景
- dbexport/dbimport 逻辑导出导入:将数据库以文本/SQL脚本形式导出,适合迁移、跨平台、小中型库或单库级恢复;恢复时重建对象并导入数据。
- ontape 归档级备份恢复:通过 0/1/2 级备份与逻辑日志实现整库/多库恢复,支持恢复到特定时间点(PITR),适合常规生产环境的日常备份与恢复。
- onbar + PSM 企业级备份恢复:与存储管理器(如 FILE/磁带)配合,支持并行备份/恢复与时间点恢复,适合大规模、高并发、对 RTO/RPO 要求更高的场景。
- 文件系统/系统级备份恢复:用 tar/rsync/Timeshift/Duplicity 等做目录/系统级快照,适合配置与数据目录的整体回滚或灾难恢复的底层支撑。
- 误删文件的文件级恢复:在 ext4 等文件系统上,使用 extundelete 等工具尝试文件级找回,适合非数据库引擎层面的误删场景。
二 方法对比一览
| 方法 |
适用场景 |
关键前提 |
恢复粒度 |
是否支持时间点 |
| dbexport/dbimport |
迁移、跨平台、单库恢复 |
导出文件完整、目标库可建 |
库级 |
否 |
| ontape |
常规生产整库/多库 |
0/1/2 级备份与逻辑日志可用 |
库/表空间级 |
是 |
| onbar + PSM |
大规模/并行与PITR |
已配置 PSM/存储目录 |
库/表空间级 |
是 |
| 文件系统/系统级 |
配置/目录整体回滚 |
备份包含 $INFORMIXDIR、chunk 目录 |
目录/实例级 |
间接 |
| extundelete 等 |
误删文件找回 |
尽快操作、未大量写入 |
文件级 |
不适用 |
三 标准恢复步骤要点
- dbexport/dbimport 恢复
- 准备:安装同版本 Informix,创建空库(如需),设置 INFORMIXDIR/INFORMIXSERVER 等环境变量。
- 恢复:执行
dbimport <导出文件或目录>,自动建表并导入数据;大库可分表/分批导入以减少锁与日志压力。
- ontape 恢复
- 准备:以 informix 用户停止实例
onmode -ky;确保 TAPEDEV/LTAPEDEV 指向备份介质或目录;准备好 0 级备份与连续逻辑日志。
- 恢复:执行
ontape -r,按提示加载 0 级备份;如配置了连续日志归档,继续回放日志至目标时间点;完成后 onmode -m 转为在线。
- onbar 恢复
- 准备:在目标机配置 PSM 存储目录(DBSPOOL/LOGPOOL),导入备份目录清单(如
onpsm -C import),放置 ixbar. 索引文件。
- 恢复:执行
onbar -r -t "YYYY-MM-DD HH:MM:SS" 进行时间点恢复;恢复完成后 onmode -m 上线。
- 文件系统/系统级恢复
- 准备:停止数据库,确认备份包含 $INFORMIXDIR、ONCONFIG、chunk 数据目录 等关键路径。
- 恢复:用
tar/rsync 或 Timeshift/Duplicity 将备份还原到原路径;核对权限与属主(通常为 informix:informix),再启动实例。
- 误删文件的文件级恢复
- 准备:立即卸载或只读挂载受影响分区,避免覆盖;确认分区为 ext3/ext4。
- 恢复:使用
extundelete /dev/sdXY --restore-file <路径> 尝试找回;将恢复文件放到临时目录并校验后再拷回原位置。
四 关键注意事项与常见故障处理
- 环境与配置一致性:恢复前后保持 INFORMIXDIR/INFORMIXSERVER/ONCONFIG 一致;跨机恢复时,目标机的 机型、操作系统、Onconfig 与 Dbspace 数量/大小应尽量一致,避免恢复失败。
- 逻辑日志与 PITR:确保有连续的逻辑日志备份;ontape/onbar 恢复时按提示回放日志至目标时间点,避免日志断链导致无法前滚。
- 权限与介质:备份/恢复目录与设备需对 informix 具备读写执行权限;ontape 使用目录时需确保目录可写且权限正确。
- chunk 与 I/O 异常:若恢复后 chunk I/O 失败/down,检查磁盘与文件系统健康,必要时用
dd 验证可读,再评估更换磁盘或恢复 chunk。
- 长事务与空间:恢复或回放期间如出现长事务/空间不足,优先清理或扩展逻辑日志,拆分大事务,保障回放完成。
五 快速选择建议
- 需要跨平台/迁移/单库快速恢复:优先用 dbexport/dbimport。
- 日常生产整库/多库且有逻辑日志归档:用 ontape 实现快速恢复与 时间点恢复。
- 大规模/并行/严格 RTO/RPO:选择 onbar + PSM,支持并行与 PITR。
- 系统级灾难或配置回滚:用 tar/rsync/Timeshift/Duplicity 做底层目录/系统快照。
- 误删文件(非引擎层):尽快用 extundelete 尝试文件级恢复。