下面给你一个Linux 环境下 Informix 数据库迁移的完整思路与常见做法,适用于同版本 / 跨版本 / 跨服务器迁移。你可以按场景选择。
# Informix 版本
onstat -V
# 操作系统
uname -a
# 实例名
echo $INFORMIXSERVER
# 数据库列表
onstat -d
常见迁移方式:
| 场景 | 推荐方式 |
|---|---|
| 同版本、同平台 | ontape / onbar 备份恢复 |
| 跨小版本 | dbexport / dbimport |
| 跨平台(Linux → Linux) | dbexport / dbimport |
| 只迁移部分表 | unload / load |
| 大数据量、停机时间短 | 外部表 / ESQL/ETL |
# 设置环境变量
export INFORMIXSERVER=old_server
export INFORMIXDIR=/opt/informix
export PATH=$INFORMIXDIR/bin:$PATH
# 导出数据库
dbexport dbname -o /backup/exp
生成内容:
dbname.exp/ 目录✅ 优点:
scp -r /backup/exp dbname.exp target:/data/
export INFORMIXSERVER=new_server
dbimport dbname -i /data
⚠️ 注意:
ontape -s -L 0
cp $INFORMIXDIR/etc/onconfig.* /backup/
ontape -r
✅ 适合:
unload to table.unl select * from table;
load from table.unl insert into table;
⚠️ 注意:
# 实例状态
onstat -
# 数据库
onstat -d
# 表数据
select count(*) from table;
# 用户权限
\du 或 select * from sysusers;
| 问题 | 说明 |
|---|---|
| dbimport 失败 | dbspace 不存在 |
| 字符集问题 | 查看 DB_LOCALE |
| 权限丢失 | 需重新授权 |
| 版本不兼容 | 高版本 → 低版本不支持 |
你可以直接告诉我:
我可以给你一步一步可执行的迁移命令清单。