informix数据库导入导出

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

所谓中间库,就是说把从各个业务系统卸载下来的数据(通常是文本),装载到这个中间库Informix中,然后再然过ETL过程操作,最后装载到数据仓库中。

之所以要采用一个中间库,主要是为了使数据容易维护,因为从各业务系统卸载下来的数据(通常是文本),文本文件是比较难于维护的。还有解决一些乱码问题,Informix这里可以把乱码的数据去除掉。最后一个就是解决文本文件取定长数据的问题,很容易出错,不过这个具体我还是不是很明白。

其实也可以直接使用文本文件,就是说不经过这个中间库,然后需要解决上面说的三个问题。

Informix数据导出,也叫做卸数:unload to fileName.txt select * from tableName

语法比较简单,unload to 后面接导出的文本文件名称,select后面接你所要导出的数据的条件。

Informix数据导入,也叫做装数:load fileName.txt insert into tableName

load后面接需要导入的文本文件名称,后面insert into后面接数据表名。

备份数据库结构

dbschema -d database > database.sql

-d表示导出整个数据库的表结构,

备份表结构

dbschema -t tablename >tablename.sql

dbschema –d database –t tablename > tablename.txt

-t表示导出某一个数据表的表结构。

informix数据库表的导入和导出

使用dbaccess工具,选择相应数据库,然后执行SQL语句

导出:

unload to table1.txt select * from table1;

命令含义为:将table1表格中的数据导入到table1.txt中,此处文件名可以带路径,否则就会被导出到当前目录。

导入:

load from table1.txt insert into table1;

命令含义:

将当前目录下的table1.txt中的内容插入到表格table1中。

对于使用unload导出的文件,可以通过编写命令文件的方式,批量的插入到数据库中。例如导出三个文件table1.txt,table2.txt,table3.txt

可以编写下面的命令文件,不妨命名为load.txt

内容如下

FILE table1.txt DELIMITER '|' 3;(此处的数字为表各中对应的字段数目)

INSERT INTO table1;

FILE table2.txt DELIMITER '|' 3;(此处的数字为表各中对应的字段数目)

INSERT INTO table2;

FILE table3.txt DELIMITER '|' 3;(此处的数字为表各中对应的字段数目)

INSERT INTO table3;

生成好了这个命令文件,则可以通过输入如下的dbload命令批量的导入三个表格数据:

首先进入到导入文件所在的目录,例如c:\bak

dbload -d test(数据库名字) -c c:\bak\load.txt -l aaa(随便输入的日志名字) 即可以将三个文件对应的数据导入到指定的表格中

Informix-dbexport用法

Usage:

dbexport [-X] [-c] [-q] [-d] [-ss]

[{ -o

| -t -b -s [-f ] }] NOTE: arguments to dbexport are order independent.

参数详解:

-X 如果某个字符串字段中包含二进制数据,加上该参数后,dbexport将重新组织这些数据。-c 除非很严重的错误dbexport才中断,这些错误如下:

不能打开你指定的磁带设备;

不能写磁带设备或文件;

不正确的命令行参数;

不能打开数据库或没有连接数据库的权限;

-q 不用将导出过程输出到屏幕上

-d 让dbexport只导出BLOB字段的描述符,而不导出BLOB数据

-ss 能够生成更详细的信息,比如:

初始和附加extent的尺寸;

表的分片信息;

对表的锁的模式(行锁或页锁);

表所在的dbspace或BLOB数据所在的space;

-o

可以将数据库导入到你指定的目录下

-t -b -s

将数据导入到磁带

-f

dbexport在导出数据的同时会产生一个DDL的文件,你可以指定一个绝对路径的文件

例:

1) 将数据库stores导出到当前目录下

$>dbexport stores

2) 将数据库stores导出到当前目录下,不将过程输出到屏幕,并且忽略小错$>dbexport stores -q -c

3) 将数据库stores导出到指定目录下

$>dbexport stores -q -c -o /tmp

4)将数据库stores导出到磁带上

$>dbexport stores -t /dev/tape -b 2048 -s 2000000 -f /tmp

5)将数据库stores导出前目录下,并且加上额外的信息

$>dbexport stores -ss

相关文档
最新文档