温馨提示×

Linux Informix怎么迁移

小樊
41
2026-07-05 16:01:59
栏目: 智能运维

下面给你一个Linux 环境下 Informix 数据库迁移的完整思路与常见做法,适用于同版本 / 跨版本 / 跨服务器迁移。你可以按场景选择。


一、迁移前准备(非常重要)

1. 确认环境信息

# Informix 版本
onstat -V

# 操作系统
uname -a

# 实例名
echo $INFORMIXSERVER

# 数据库列表
onstat -d

2. 规划迁移方式

常见迁移方式:

场景 推荐方式
同版本、同平台 ontape / onbar 备份恢复
跨小版本 dbexport / dbimport
跨平台(Linux → Linux) dbexport / dbimport
只迁移部分表 unload / load
大数据量、停机时间短 外部表 / ESQL/ETL

二、最常用方案(推荐)

✅ 方案一:dbexport / dbimport(最通用)

1️⃣ 源库导出

# 设置环境变量
export INFORMIXSERVER=old_server
export INFORMIXDIR=/opt/informix
export PATH=$INFORMIXDIR/bin:$PATH

# 导出数据库
dbexport dbname -o /backup/exp

生成内容:

  • dbname.exp/ 目录
  • schema 文件
  • unload 数据文件

优点

  • 不依赖存储结构
  • 跨版本兼容性好

2️⃣ 传输到目标服务器

scp -r /backup/exp dbname.exp target:/data/

3️⃣ 目标库导入

export INFORMIXSERVER=new_server
dbimport dbname -i /data

⚠️ 注意:

  • 目标实例必须已存在
  • dbspace 名称可不同(会自动映射)

三、同版本整机迁移(停机迁移)

✅ 方案二:ontape 备份恢复(适合整实例)

1️⃣ 源库备份

ontape -s -L 0

2️⃣ 拷贝 ONCONFIG、chunk 文件、备份文件

cp $INFORMIXDIR/etc/onconfig.* /backup/

3️⃣ 目标机恢复

ontape -r

✅ 适合:

  • 整机迁移
  • 同 Informix 版本
  • 磁盘结构一致

四、只迁移部分表

✅ 方案三:unload / load

导出

unload to table.unl select * from table;

导入

load from table.unl insert into table;

⚠️ 注意:

  • 表结构需提前建好
  • 大表性能一般

五、迁移后检查清单 ✅

# 实例状态
onstat -

# 数据库
onstat -d

# 表数据
select count(*) from table;

# 用户权限
\duselect * from sysusers;

六、常见坑点

问题 说明
dbimport 失败 dbspace 不存在
字符集问题 查看 DB_LOCALE
权限丢失 需重新授权
版本不兼容 高版本 → 低版本不支持

七、我可以帮你进一步细化

你可以直接告诉我:

  1. ✅ Informix 版本(如 11.50 / 12.10)
  2. ✅ 是否跨服务器
  3. ✅ 是否同版本
  4. ✅ 停机时间是否允许
  5. ✅ 数据量大小

我可以给你一步一步可执行的迁移命令清单

0