温馨提示×

linux informix怎么导数据

小樊
42
2026-09-23 07:41:18
栏目: 智能运维

在 Linux 下使用 Informix 导数据,常见有几种方式,按使用频率从高到低说明:


一、使用 dbexport / dbimport(整库或整表导出导入,最常用)

1️⃣ 导出(dbexport)

dbexport dbname -o /opt/ifmx/exp
  • dbname:数据库名
  • -o:输出目录
  • 会生成:
    • dbname.exp/dbname.sql(表结构)
    • dbname.exp/*.unl(数据文件)

2️⃣ 导入(dbimport)

dbimport dbname -i /opt/ifmx/exp

⚠️ 注意:

  • 目标库不能已存在
  • 字符集、空间要匹配

二、使用 unload / load(单表,最灵活)

1️⃣ 导出单表

unload to '/opt/ifmx/t1.unl'
select * from t1;

或在 shell:

echo "unload to '/opt/ifmx/t1.unl' select * from t1;" | dbaccess dbname

2️⃣ 导入单表

load from '/opt/ifmx/t1.unl'
insert into t1;

✅ 适合:

  • 表结构已存在
  • 跨库、跨平台迁移

三、使用 onload / onunload(物理级,不推荐日常用)

onunload -t /dev/st0 dbname
onload -t /dev/st0 dbname
  • 块级备份
  • 必须同版本、同平台
  • 运维级操作

四、使用 isql / dbaccess 导出 SQL

dbaccess dbname - <<EOF
output to /opt/ifmx/t1.sql
select * from t1;
EOF

五、常见注意事项

  1. 字符集
    echo $DB_LOCALE
    echo $CLIENT_LOCALE
    
  2. delimiter
    unload delimiter '|' to '/opt/ifmx/t1.unl'
    select * from t1;
    
  3. 大表
    • 分批 unload
    • 加索引前 load

六、推荐组合

  • ✅ 全库迁移:dbexport + dbimport
  • ✅ 单表迁移:unload + load
  • ❌ 日常不用:onload/onunload

如果你有:

  • Informix 版本
  • 源/目标环境
  • 是否跨平台

我可以给你一份具体命令模板。

0 踩