温馨提示×

Informix怎么迁移到Linux

小樊
46
2026-07-17 00:06:52
栏目: 智能运维

Informix 迁移到 Linux 通常分为 “同平台迁移(版本升级/系统迁移)”“跨平台迁移(从其他系统迁移到 Linux)” 两大类。下面按最常见、最稳妥的方式给你讲清楚,并附上实战步骤和注意事项


一、迁移前先明确几个关键点

在动手前,先确认:

  1. Informix 当前版本
    • 11.50 / 11.70 / 12.10 / 14.10?
  2. 当前操作系统
    • AIX / HP-UX / Windows / 旧 Linux?
  3. 目标 Linux 版本
    • RHEL / CentOS / SUSE / Rocky / Ubuntu?
  4. 是否跨字节序
    • AIX(Power) → x86 Linux ✅ 需要数据迁移
    • x86 Linux → x86 Linux ✅ 可直接迁移
  5. 数据库规模
    • 小(GB 级):简单
    • 大(TB 级):需规划停机时间

二、最常用迁移方案(强烈推荐)

✅ 方案一:使用 onunload / onload(同版本)

适合:

  • 同 Informix 版本
  • 数据量中等
  • 跨平台(不同字节序)

步骤概览

1️⃣ 源端导出数据

onunload -l /backup/dbexport dbname

生成:

  • dbname.unl
  • 表结构脚本

2️⃣ 在 Linux 上安装 Informix

  • 版本尽量一致
  • 字符集一致(如 en_US.8859-1UTF8

3️⃣ 创建空库

oninit -iv

4️⃣ 导入数据

onload -l /backup/dbexport -d dbname

✅ 优点:

  • 官方支持
  • 跨平台安全

❌ 缺点:

  • 不支持大对象(BLOB/CLOB)复杂场景

三、最灵活方案(生产环境常用)

✅ 方案二:dbexport / dbimport(推荐生产环境)

特点

  • 跨平台
  • 可调整表空间
  • 可修改字符集
  • 最常用

1️⃣ 源端导出

dbexport dbname -o /backup/exp

生成:

/backup/exp/dbname/
 ├── dbname.sql
 ├── tab1.unl
 ├── tab2.unl

2️⃣ 拷贝到 Linux

scp -r /backup/exp user@linux:/backup/

3️⃣ Linux 上导入

dbimport dbname -i /backup/exp

✅ 可加参数:

dbimport dbname -i /backup/exp \
  -d datadbs1 \
  -l buffered

✅ 优点:

  • 最稳妥
  • 可调整存储结构
  • 官方推荐

四、大库 / 高可用迁移方案

✅ 方案三:使用 ontape / onbar(物理迁移)

⚠️ 仅限同平台、同字节序

适合:

  • Linux → Linux
  • 同版本 Informix

1️⃣ 源端备份

ontape -s -L 0

2️⃣ 拷贝备份文件

$INFORMIXDIR/backups

3️⃣ 目标端恢复

ontape -r

五、跨版本迁移(常见)

推荐路径

旧版本 Informix
   ↓
同平台升级
   ↓
dbexport
   ↓
Linux 新版本

⚠️ 不建议直接跨大版本物理恢复


六、迁移 Linux 的特别注意事项

1️⃣ 操作系统参数

kernel.shmmax
kernel.shmall
ulimit -n

2️⃣ Informix 用户

groupadd informix
useradd -g informix informix

3️⃣ 环境变量

INFORMIXDIR
INFORMIXSERVER
ONCONFIG
PATH

4️⃣ 字符集一致性

SELECT * FROM sysmaster:sysdbslocale;

七、迁移后必须检查项 ✅

SELECT COUNT(*) FROM table;
SELECT FIRST 10 * FROM table;

检查:

  • 表数量
  • 索引
  • 触发器
  • 序列
  • stored procedure

八、典型迁移时间参考

数据量 导出 传输 导入
50GB 30min 10min 1h
500GB 3h 1h 6h+

九、你可以直接告诉我

我可以直接给你定制化迁移方案,只需要回答:

  1. Informix 版本
  2. 当前系统
  3. 目标 Linux 版本
  4. 数据量
  5. 允许停机时间

我可以给你: ✅ 详细命令脚本
参数配置示例
风险点与回滚方案

0