温馨提示×

linux informix怎么迁移数据

小樊
42
2026-09-29 04:34:29
栏目: 智能运维

在 Linux 上迁移 IBM Informix 数据,常见做法有几种,取决于源和目标环境是否同版本、是否同平台、是否可停机。下面按最常用 → 进阶给你系统说明。


一、最常用:使用 dbexport / dbimport(推荐)

适合:整库迁移、版本相近、可短暂停机

1. 源库导出

dbexport dbname -o /backup/inf_exp

生成:

  • /backup/inf_exp/dbname.exp
  • dbname.sql

2. 拷贝到目标机

scp -r /backup/inf_exp user@target:/data/inf_exp

3. 目标库导入

dbimport dbname -i /data/inf_exp

✅ 优点:简单、稳定
❌ 缺点:不支持增量


二、表级迁移:unload / load

适合:部分表、跨版本、跨字符集

源库

UNLOAD TO '/tmp/t1.unl'
SELECT * FROM t1;

目标库

LOAD FROM '/tmp/t1.unl'
INSERT INTO t1;

或命令行:

dbaccess dbname - <<EOF
LOAD FROM '/tmp/t1.unl' INSERT INTO t1;
EOF

⚠ 注意:

  • 字段分隔符
  • 日期格式
  • 字符集

三、同版本整机迁移(最省事)

适合:整机迁移、版本完全一致

步骤

  1. 停源库
onmode -ky
  1. 拷贝:
  • $INFORMIXDIR
  • onconfig
  • sqlhosts
  • 数据空间文件
  1. 目标机启动
oninit -v

✅ 最快
❌ 版本必须一致


四、使用 ontape 备份恢复

适合:灾备、跨机恢复

源库

ontape -s -L 0

目标库

ontape -r

需要:

  • 相同 INFORMIXSERVER
  • 相同空间结构

五、高级:Enterprise Replication / CDC

适合:不停机、实时同步

  • ER(企业复制)
  • Informix CDC
  • 第三方工具(DataStage / Kettle)

六、迁移前必查清单 ✅

onstat -d     # 空间
onstat -c     # 配置
locale        # 字符集
dbaccess - -  # 版本

七、常见问题

Q1:版本不同能导吗?

✅ 用 dbexport/dbimport 或 unload/load

Q2:大表怎么快?

  • 关闭索引
  • 分批 unload
  • 使用裸设备拷贝

Q3:字符集乱码?

导出时指定:

DB_LOCALE=zh_CN.utf8
CLIENT_LOCALE=zh_CN.utf8

八、我可以继续帮你

你可以告诉我:

  1. Informix 版本(如 11.50 / 12.10 / 14.10)
  2. 是否同版本
  3. 数据量大小
  4. 是否可停机

我可以直接给你可执行迁移方案 + 命令脚本。

0 踩