温馨提示×

linux informix怎样迁移

小樊
35
2026-09-23 07:36:21
栏目: 智能运维

在 Linux 环境下迁移 IBM Informix 数据库,常见场景有:

  • 同版本 / 跨版本迁移
  • 同平台 / 跨平台(Linux → Linux 或 Linux → 其他 UNIX)
  • 整机迁移 / 单库迁移

下面按最常用、最稳妥的方式给你讲清楚。


一、迁移前准备

1. 确认环境信息

onstat -V        # Informix 版本
onstat -        # 实例状态
onmode -        # 运行模式

记录:

  • Informix 版本
  • 实例名(INFORMIXSERVER)
  • 数据库名
  • 字符集(DB_LOCALE / CLIENT_LOCALE)

2. 停机或只读

  • 生产环境建议 停业务
  • 至少进入 ** quiescent 模式**
onmode -u        # 立即停库(慎用)
# 或
onmode -s        # 进入 quiescent

二、最常用的迁移方式(推荐)

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

适合:

  • 单库迁移
  • 跨服务器
  • 版本基本一致

1. 导出数据库

dbexport dbname -o /backup_dir

生成:

  • /backup_dir/dbname.exp
  • 包含 schema + 数据

2. 拷贝到目标机器

scp -r /backup_dir/dbname.exp user@newhost:/data/

3. 目标机导入

dbimport dbname -i /data -d datadbs

✅ 优点:简单、稳定
❌ 缺点:速度慢(大库不适用)


✅ 方式二:ontape(整实例备份恢复)

适合:

  • 整实例迁移
  • 同版本 Informix

1. 源端做零级备份

ontape -s -L 0

2. 拷贝备份文件和配置文件

$INFORMIXDIR/etc/onconfig
$INFORMIXDIR/etc/sqlhosts

3. 目标端恢复

ontape -r

✅ 优点:完整、快
❌ 缺点:版本必须一致


✅ 方式三:onbar(企业级)

适合:

  • 大库
  • 有 TSM / 第三方存储
onbar -b -L 0
onbar -r

需要配置:

  • onbar 参数
  • 存储管理器

三、异构 / 大版本迁移

方案 A:外部表(External Table)

CREATE EXTERNAL TABLE ext_tab
LIKE real_tab
USING (DATAFILES("disk:/tmp/data.unl"));

适合:

  • 表级迁移
  • 可控、并行

方案 B:unload / load

UNLOAD TO '/tmp/tab.unl'
SELECT * FROM tab;

LOAD FROM '/tmp/tab.unl'
INSERT INTO tab;

四、迁移后检查

onstat -
oncheck -cI dbname

检查:

  • 表数量
  • 行数
  • 索引
  • 字符集一致性

五、常见坑

问题 说明
字符集不一致 必出错
版本不一致 ontape 不可用
dbs 空间不足 dbimport 失败
root dbspace 权限 Informix 用户必须拥有

六、你适合哪种?

如果你愿意,可以告诉我:

  1. Informix 版本
  2. 数据量
  3. 是否同版本
  4. 是否整实例

我可以直接给你一步一步可执行命令。

0 踩