温馨提示×

ubuntu怎么恢复informix库

小樊
42
2026-09-08 08:14:23
栏目: 智能运维

在 Ubuntu 上“恢复 Informix 数据库”通常取决于你使用的是哪种恢复方式:

  • 从 ontape / onbar 备份恢复
  • 从 dbexport / dbimport 恢复
  • 从 **SQL 文本(unload / dbaccess)**恢复
  • 从 数据文件 / bare disk 恢复

下面按常见场景给你一个实操指南。


一、恢复前的准备(必须)

1. 确认 Informix 已安装且运行

onstat -

正常应显示:

Informix Dynamic Server Version ...
On-Line

如果没启动:

oninit -v

2. 切换到 informix 用户

su - informix

3. 检查环境变量

echo $INFORMIXDIR
echo $INFORMIXSERVER
echo $ONCONFIG

常见:

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

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

场景:整库恢复(同机或新机)

1. 进入维护模式

onmode -ky
ontape -r

2. 按提示操作

  • 插入 Level 0 备份
  • 再恢复 Level 1 / Level 2(如果有)
  • 最后选择 physical + logical restore

完成后:

oninit -v

⚠️ 如果是不同主机,需保证:

  • INFORMIXSERVER 一致
  • chunk 路径一致(或用 ontape -p + 修改配置)

三、从 dbexport / dbimport 恢复

1. 解压 dbexport 出来的目录

dbimport dbname -i /backup/path

示例:

dbimport testdb -i /opt/backup/testdb.exp

常用参数:

dbimport testdb \
  -i /backup \
  -d datadbs \
  -l buffered

四、从 SQL 文件恢复(unload / dbaccess)

1. 创建数据库

dbaccess - -
CREATE DATABASE testdb WITH LOG;

2. 执行 SQL

dbaccess testdb schema.sql
dbaccess testdb data.sql

或:

dbaccess testdb < all.sql

五、只恢复某个表

1. 使用 unload / load

LOAD FROM '/backup/table.unl'
INSERT INTO mytable;

或:

dbload -d testdb -c load.ctl

六、常见错误与处理

1. chunk 不存在

Cannot open chunk /informix/dbs/datadbs

解决:

  • 创建文件
touch /informix/dbs/datadbs
chown informix:informix /informix/dbs/datadbs
chmod 660 /informix/dbs/datadbs

2. 日志不一致

ontape -l

或:

onmode -sy

3. 恢复到新 Ubuntu 机器

必须保证:

  • Informix 版本一致
  • 页大小一致
  • chunk 路径一致(或用软链接)

七、建议你补充的信息(我可以更精确)

你可以告诉我:

  1. 用的 Informix 版本(如 12.10 / 14.10)
  2. 恢复方式(ontape / dbimport / SQL)
  3. 是同机恢复还是换服务器
  4. 报错信息(如果有)

我可以直接给你一步一步命令级恢复方案。

0 踩