温馨提示×

如何迁移Ubuntu的Informix

小樊
35
2026-08-28 03:52:12
栏目: 智能运维

迁移 Ubuntu 上的 IBM Informix 通常包括 安装迁移、数据迁移、配置迁移 三个层面。下面按照最常见、最稳妥的方式给你一个完整流程。


一、迁移前的准备

1️⃣ 确认当前环境

onstat -V
uname -a

记录:

  • Informix 版本
  • 实例名
  • 数据库名
  • 字符集
  • 存储路径

2️⃣ 备份(非常重要)

onmode -ky
ontape -s -L 0

onbar -b -L 0

强烈建议同时做文件系统级备份

tar czvf informix_backup.tar.gz /opt/informix

二、迁移方式选择

场景 推荐方式
同版本、同平台 Informix 原生迁移(最稳)
跨版本 dbexport / dbimport
数据库较小 dbexport
大数据量 ontape / onbar
仅迁移部分数据 unload / load

三、方式一:同版本迁移(推荐)

✅ 适用于:Ubuntu → Ubuntu,Informix 版本一致

1️⃣ 在新服务器安装相同版本 Informix

tar -xvf informix.tar
./installserver

设置环境变量:

export INFORMIXDIR=/opt/informix
export INFORMIXSERVER=ol_informix
export PATH=$INFORMIXDIR/bin:$PATH
export ONCONFIG=onconfig.ol_informix

2️⃣ 拷贝关键目录

从旧服务器拷贝:

/opt/informix
/etc/informix

⚠ 注意:

  • 不要覆盖新系统的 etc/hostsservices
  • 只拷贝 Informix 目录

3️⃣ 恢复数据

使用 ontape

ontape -r

或使用 onbar

onbar -r

4️⃣ 启动实例

oninit -v
onstat -

四、方式二:dbexport / dbimport(跨版本常用)

1️⃣ 导出数据库

dbexport dbname -c

生成:

dbname.exp/
dbname.sql

2️⃣ 拷贝到新服务器

scp -r dbname.exp user@new:/data/

3️⃣ 导入数据库

dbimport dbname -i /data

✅ 适合:

  • 跨小版本
  • 字符集调整
  • 表结构迁移

五、方式三:unload / load(精细控制)

导出

unload to table.unl select * from table;

导入

load from table.unl insert into table;

适合:

  • 只迁移部分表
  • 数据清洗

六、配置迁移检查清单

✅ 必须检查的内容:

项目 文件
实例配置 $INFORMIXDIR/etc/onconfig.*
端口 /etc/services
主机名 /etc/hosts
环境变量 .bashrc / .profile
权限 chown -R informix:informix

七、Ubuntu 特有注意事项

1️⃣ 依赖库

sudo apt install libaio1 libstdc++6

2️⃣ systemd(可选)

为新系统创建服务:

[Unit]
Description=Informix

[Service]
User=informix
ExecStart=/opt/informix/bin/oninit
ExecStop=/opt/informix/bin/onmode -ky

[Install]
WantedBy=multi-user.target

八、迁移后验证

onstat -
onstat -d
onstat -g sql

测试连接:

dbaccess dbname -

九、常见问题

❌ 实例无法启动

  • 检查 INFORMIXSERVER 是否一致
  • 检查 onconfig 中的路径

❌ 字符集错误

export DB_LOCALE=en_US.8859-1
export CLIENT_LOCALE=en_US.8859-1

十、我可以继续帮你

你可以直接告诉我:

  1. Informix 版本
  2. 是否跨版本
  3. 数据量大小
  4. 是否使用 ontape / onbar

我可以给你 精确到命令级别 的迁移方案。

0