温馨提示×

Linux Informix如何恢复

小樊
40
2026-07-31 13:30:55
栏目: 智能运维

在 Linux 上恢复 IBM Informix(IDS)数据库,常见场景包括:

  • 实例级恢复(Instance Recovery)
  • 数据库级恢复(Database Recovery)
  • 表级恢复(Table Recovery)
  • 时间点恢复(Point-in-Time Recovery)

下面按 最常见、最实用的恢复方式 给你一个完整说明。


一、恢复前必须确认的事项 ✅

  1. Informix 是否已安装并正常运行

    onstat -
    

    正常应显示:

    IBM Informix Dynamic Server Version ...
    On-Line
    
  2. 确认备份方式

    • ontape
    • onbar
    • 第三方工具(如 NetBackup、TSM)
  3. 确认关键目录

    INFORMIXDIR=/opt/informix
    INFORMIXSERVER=ol_informix
    ONCONFIG=onconfig.ol_informix
    

二、使用 ontape 恢复(最常见)

1️⃣ 恢复整个实例(全库恢复)

适用场景

  • 系统崩溃
  • 磁盘损坏
  • 误删实例

步骤:

  1. 关闭数据库

    onmode -ky
    
  2. 执行恢复

    ontape -r
    
  3. 按提示操作

    • 选择备份级别(0 → 1 → 2)
    • 插入备份介质(或指定路径)
    • 自动恢复逻辑日志
  4. 恢复完成后

    onmode -m
    

2️⃣ 恢复单个数据库(dbexport/import)

如果 只恢复某个数据库

方法一:使用 dbimport(推荐)

dbimport dbname -d dbspace_name

前提:

  • 有该数据库的 dbexport 备份

3️⃣ 恢复单个表

方法一:unload / load

unload to table.unl select * from table;
load from table.unl insert into table;

方法二:外部表

CREATE EXTERNAL TABLE ext_table
LIKE table
USING (
  DATAFILES ("DISK:/backup/table.unl")
);

三、使用 onbar 恢复(企业级)

支持并行、增量、时间点恢复

1️⃣ 恢复整个实例

onbar -r

2️⃣ 恢复指定数据库

onbar -r dbname

3️⃣ 时间点恢复(PITR)

onbar -r -t "2025-01-01 12:00:00"

⚠️ 前提:

  • 开启逻辑日志
  • 逻辑日志未丢失

四、物理文件级恢复(应急)

⚠️ 不推荐,风险高

  1. 关闭 Informix
  2. 从备份恢复:
    cp -rp /backup/informix/chunks/* /informix/chunks/
    
  3. 启动
    oninit -v
    

五、逻辑日志恢复(非常重要)

如果数据库异常关闭:

oninit -v

Informix 会自动:

  • 前滚逻辑日志
  • 回滚未提交事务

六、常见错误与解决

❌ 1. 找不到备份

No backup found

✅ 检查:

ll $INFORMIXDIR/backups

❌ 2. 逻辑日志损坏

onparams -a -d logdbs -s 10000

❌ 3. 恢复后无法启动

oninit -iv

⚠️ 会清空实例(慎用)


七、恢复检查清单 ✅

  • [ ] 备份文件完整
  • [ ] 磁盘空间足够
  • [ ] 使用相同 Informix 版本
  • [ ] 检查 onconfig 配置
  • [ ] 逻辑日志未丢失

八、我可以继续帮你

如果你愿意,可以告诉我:

  1. Informix 版本
    onstat -V
    
  2. 备份方式(ontape/onbar)
  3. 恢复目标
    • 整个实例?
    • 某个数据库?
    • 某张表?
  4. 报错信息(如果有)

我可以给你 一步一步精确命令

0