温馨提示×

Ubuntu下Informix怎么迁移

小樊
36
2026-08-17 02:35:08
栏目: 智能运维

在 Ubuntu 下迁移 IBM Informix 数据库,常见场景有几种,不同场景做法不一样。下面给你一个通用、实战型迁移指南,覆盖最常见的 同版本 / 跨版本 / 跨服务器迁移


一、迁移前准备

1️⃣ 确认环境

# Informix 版本
onstat -V

# 操作系统
lsb_release -a

2️⃣ 确认关键参数

项目 说明
INFORMIXDIR Informix 安装目录
INFORMIXSERVER 实例名
ONCONFIG 配置文件
数据库空间 rootdbs / datadbs
字符集 DB_LOCALE / CLIENT_LOCALE

强烈建议:源库和目标库字符集一致


二、迁移方式选择(重点)

✅ 方式一:dbexport / dbimport(最常用 ✅)

适合:

  • 整机迁移
  • 数据库结构 + 数据一起迁移
  • 同版本或向下兼容版本

✅ 方式一详解(推荐)

1️⃣ 在源服务器执行导出

# 切换到 informix 用户
su - informix

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

导出后目录结构:

/backup/ifx_export/
├── dbname.sql
├── dbname.unl

2️⃣ 拷贝到目标服务器

scp -r /backup/ifx_export user@target:/data/ifx_import

3️⃣ 在目标服务器执行导入

dbimport dbname \
  -i /data/ifx_import \
  -d datadbs \
  -l buffered

参数说明:

  • -d:指定数据空间
  • -l buffered:使用 buffered logging(生产推荐)

优点

  • 简单
  • 可跨服务器
  • 自动建库

缺点

  • 不支持裸设备
  • 大数据量较慢

三、方式二:ontape 备份恢复(物理迁移)

适合:

  • 整机实例迁移
  • 同版本 Informix
  • 停机迁移

1️⃣ 源库执行备份

ontape -s -L 0

备份路径由 TAPEDEV 决定。


2️⃣ 拷贝备份文件到目标服务器

scp $INFORMIXDIR/backups/tape0 target:/ifx/backup

3️⃣ 目标服务器恢复

ontape -r

⚠️ 要求:

  • Informix 版本一致
  • onconfig 配置尽量一致

四、方式三:onunload / onload(表级)

适合:

  • 单表迁移
  • 跨实例
# 导出
onunload -t /tmp/tab.unl dbname:tabname

# 导入
onload -t /tmp/tab.unl dbname

⚠️ 不推荐用于整库迁移


五、Ubuntu 特有注意事项 ⚠️

1️⃣ Informix 官方不支持 Ubuntu

✅ 但可用 RHEL/CentOS 兼容方式运行

建议:

sudo apt install libaio1 libncurses5

2️⃣ 内核参数

# 示例
echo "kernel.shmmax = 1073741824" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

3️⃣ 用户一致

groupadd informix
useradd -g informix informix

六、迁移后检查

onstat -
onstat -d
onstat -u

验证数据:

SELECT COUNT(*) FROM tabname;

七、迁移方案推荐总结

场景 推荐方式
数据库迁移 ✅ dbexport/dbimport
整机实例迁移 ✅ ontake
单表迁移 onunload/onload
跨版本 dbexport(最安全)

八、我可以继续帮你

你可以直接告诉我:

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

我可以给你 一步一步的命令级迁移方案

0