温馨提示×

linux informix怎样恢复数据

小樊
44
2026-10-02 01:12:37
栏目: 智能运维

在 Linux 环境下使用 IBM Informix 恢复数据,通常取决于你之前采用的备份方式。下面按常见场景系统说明。


一、常见备份与恢复方式

Informix 主要有以下几种备份手段:

  1. ontape(最常用)
  2. onbar(配合存储管理软件,如 TSM)
  3. dbimport / dbexport
  4. 外部表 / unload-load
  5. 逻辑日志恢复(时间点恢复)

二、使用 ontape 恢复(最典型)

1️⃣ 恢复整个数据库空间(冷恢复)

适用于:系统崩溃、数据丢失、需要完全恢复

步骤:

# 1. 关闭数据库
onmode -ky

# 2. 进入恢复模式
ontape -r

按提示:

  • 插入/选择 Level 0 备份
  • 再恢复 Level 1 / Level 2(如有)
  • 恢复 逻辑日志

完成后:

onmode -m   # 进入多用户模式

2️⃣ 恢复到某个时间点(PITR)

ontape -r -t <time>

示例:

ontape -r -t "2026-01-21 14:30:00"

要求:

  • 有完整物理备份
  • 逻辑日志完好

三、使用 onbar 恢复

适用于企业级备份(TSM / NetBackup)

# 恢复整个实例
onbar -r

# 恢复某个 dbspace
onbar -r <dbspace_name>

# 时间点恢复
onbar -r -t "2026-01-21 14:00:00"

需要配置 $INFORMIXDIR/etc/onbar.cfg


四、使用 dbimport 恢复(逻辑备份)

1️⃣ 前提

之前使用过:

dbexport dbname

2️⃣ 恢复

dbimport dbname -d <dbspace>

适用于:

  • 跨平台迁移
  • 单库恢复
  • 表结构+数据恢复

五、单表数据恢复(无全备)

方法 1:unload / load

UNLOAD TO '/tmp/tab.unl'
SELECT * FROM tabname;

恢复:

LOAD FROM '/tmp/tab.unl'
INSERT INTO tabname;

方法 2:外部表

CREATE EXTERNAL TABLE ext_tab
LIKE tabname
USING (DATAFILES('DISK:/tmp/tab.unl'));

六、逻辑日志恢复(重要)

如果数据库是 buffering log / unbuf log / ansi:

  • ontape / onbar 会自动回放逻辑日志
  • 若日志损坏,可能无法完全恢复

查看日志状态:

onstat -l

七、恢复前必做检查 ✅

# 检查实例状态
onstat -

# 检查备份信息
onstat -b

# 检查配置
vi $INFORMIXDIR/etc/$ONCONFIG

重点参数:

  • TAPEDEV
  • LTAPEDEV
  • LOGICAL_LOG

八、典型故障恢复场景

场景 推荐方式
磁盘损坏 ontape/onbar 冷恢复
误删表 时间点恢复
单表错误 dbimport / load
迁移服务器 dbexport / dbimport

九、建议

  • 定期做 Level 0 + 逻辑日志备份
  • 测试恢复流程(非常重要)
  • 保留 onconfig 和 sqlhosts

如果你能提供:

  • Informix 版本
  • 使用的备份方式(ontape / onbar)
  • 是整库还是单表
  • 错误日志

我可以给你精确恢复命令。

0 踩