温馨提示×

linux informix怎么导入数据

小樊
39
2026-09-17 04:49:35
栏目: 智能运维

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


一、使用 dbimport(整库导入,配合 dbexport

适合 整库迁移

1. 前提

已用 dbexport 导出:

dbexport mydb -o /tmp/exportdir

2. 导入

dbimport mydb -i /tmp/exportdir

常用参数:

dbimport mydb -i /tmp/exportdir -d datadbs -l buffered
  • -d:指定数据库空间
  • -l:日志模式

二、使用 load(文本文件导入,最常用)

适合 表级数据导入

1. 准备数据文件(定长或分隔符)

示例(逗号分隔):

1,张三,25
2,李四,30

2. 使用 DB-Access 导入

dbaccess mydb <<EOF
load from "/tmp/data.unl" delimiter ","
insert into user_table;
EOF

或交互式:

dbaccess mydb
load from "/tmp/data.unl" delimiter ","
insert into user_table;

三、使用 dbload(大批量、可控导入)

适合 大数据量、可控制错误数

1. 准备控制文件 load.ctl

FILE /tmp/data.unl DELIMITER ','
INSERT INTO user_table
(
 id,
 name,
 age
);

2. 执行

dbload -d mydb -c load.ctl -l error.log -n 1000
  • -n:每多少条提交一次
  • -l:错误日志

四、使用 onload(裸数据恢复,较少用)

适合 同版本 Informix 备份恢复

onload -d mydb -t /dev/tape

五、使用外部表(External Table,推荐高级用法)

CREATE EXTERNAL TABLE ext_user
LIKE user_table
USING (
 DATAFILES ("DISK:/tmp/data.unl"),
 DELIMITER ','
);

INSERT INTO user_table SELECT * FROM ext_user;

六、常见注意事项

  1. 字符集
    export DB_LOCALE=zh_CN.utf8
    export CLIENT_LOCALE=zh_CN.utf8
    
  2. 权限
    • 用户需有 DBACONNECT + RESOURCE
  3. 表结构必须存在(除 dbimport
  4. 换行符
    • Unix:\n
    • Windows:\r\n

如果你能告诉我:

  • Informix 版本
  • 数据来源(CSV / 其他库 / 备份)
  • 是否整库还是单表

我可以给你 更精确的命令示例

0