温馨提示×

怎样迁移linux informix数据

小樊
44
2026-09-08 01:29:16
栏目: 智能运维

迁移 Linux 上的 Informix 数据通常有三种常见场景:

  • 同版本 Informix 之间迁移(最常用)
  • 跨版本迁移
  • 迁移到其他数据库(如 Oracle / MySQL)

下面按最常见、最稳妥的 Informix → Informix 迁移来讲,并补充其他方案。


一、迁移前准备

1. 确认环境信息

在源和目标机器上执行:

onstat -V
onstat -

确认:

  • Informix 版本
  • 实例名(INFORMIXSERVER)
  • 数据库名
  • 操作系统(建议相同)

2. 停止或限制写操作

onmode -ky

或至少限制业务写入。


二、方式一:使用 dbexport / dbimport(推荐)

✅ 适用场景

  • 同版本或接近版本
  • 整库迁移
  • Linux → Linux

1. 源库导出

dbexport dbname -o /informix/export

生成:

  • /informix/export/dbname.exp

2. 拷贝到目标机器

scp -r /informix/export/dbname.exp user@target:/informix/export/

3. 目标库导入

dbimport dbname -i /informix/export

✅ 优点:简单、稳定
❌ 缺点:速度较慢


三、方式二:使用 ontape(物理+逻辑备份)

✅ 适用场景

  • 整机迁移
  • 版本一致
  • 应急恢复

1. 源库备份

ontape -s -L 0

2. 拷贝备份文件

$INFORMIXDIR/etc/onconfig
$INFORMIXDIR/tmp

3. 目标库恢复

ontape -r

✅ 优点:恢复快
❌ 缺点:配置复杂


四、方式三:使用 unload / load(表级)

1. 导出表

unload to '/tmp/t1.unl'
select * from t1;

2. 导入表

load from '/tmp/t1.unl'
insert into t1;

✅ 适合:

  • 单表迁移
  • 数据清洗

五、迁移到其他数据库(如 MySQL / Oracle)

常用方案:

  • Informix ODBC + ETL 工具
  • Kettle(PDI)
  • 自行写程序(Java / Python)

六、迁移后检查

oncheck -cI dbname
onstat -d

并核对:

  • 表数量
  • 行数
  • 索引

七、我可以继续帮你

你可以告诉我:

  1. Informix 版本(如 11.50 / 12.10)
  2. 是否同版本
  3. 数据量大小
  4. 是否跨机房 / 跨OS

我可以给你精确命令级方案

0