温馨提示×

ubuntu informix怎么恢复表

小樊
35
2026-09-14 10:58:21
栏目: 智能运维

在 Ubuntu + IBM Informix 环境下恢复表,常见有几种方式,取决于你有哪些备份和数据情况。下面按最常见场景给你讲清楚。


一、先确认几个前提

执行前请确认:

  • Informix 版本(如 12.10 / 14.10)
  • 用的是 onbar 还是 ontape
  • 是否有:
    • 全库备份
    • 逻辑日志(logical log)
    • 表的导出文件(unload / dbexport)

二、从备份恢复整库(最常用)

如果你的表是在某次备份之后才丢的,可以:

1. 使用 ontape 恢复

ontape -r

按提示:

  • 先恢复 Level 0
  • 再恢复 Level 1 / 2(如果有)
  • 最后恢复逻辑日志(可选)

⚠️ 会恢复整个实例,不只是单表


三、只恢复“某一张表”(推荐方式)

方式 1:从 dbexport / unload 文件恢复(最安全)

如果你之前导出了表:

dbimport dbname -d dbspacename

或

dbaccess dbname - <<EOF
load from '/path/table.unl'
insert into table_name;
EOF

方式 2:从其他实例恢复表结构 + 数据

在源库:

dbschema -d dbname -t table_name table.sql
unload to table.unl select * from table_name;

在目标库:

dbaccess dbname - <<EOF
create table table_name (...);  -- 来自 table.sql
EOF

load from 'table.unl' insert into table_name;

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

如果用了 onbar + 存储管理器:

onbar -r -w          # 整库
onbar -r -t table    # 某些版本支持表级(需配置)

五、误删表但还有逻辑日志(高级)

如果:

  • 表被 drop
  • 逻辑日志还在

可尝试:

ontape -l           # 恢复逻辑日志

或

  • 使用 onlog 分析日志
  • 用第三方工具(如 Informix Recovery Tool)

⚠️ 操作复杂,建议 IBM 支持介入


六、Ubuntu 特有注意点

  • Informix 一般用 informix 用户运行
su - informix
  • 确保:
echo $INFORMIXDIR
echo $ONCONFIG
onstat -

七、我可以帮你更具体

你可以告诉我:

  1. Informix 版本
  2. 用的备份方式(ontape / onbar)
  3. 是 drop / truncate / 误更新?
  4. 有没有备份或 unload 文件?

我可以直接给你可执行的命令步骤。

0 踩