informix数据库导入和导出

     所谓中间库,就是说把从各个业务系统卸载下来的数据(通常是文本),装载到这个中间库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 <database> [-X] [-c] [-q] [-d] [-ss]
 [{ -o <dir> | -t <tapedev> -b <blksz> -s <tapesz>[-f <sql-command-file>] }]
 NOTE: arguments to dbexport are order independent.

参数详解:
  -X  
如果某个字符串字段中包含二进制数据,加上该参数后,dbexport将重新组织这些数据。
  -c  
除非很严重的错误dbexport才中断,这些错误如下:
         
不能打开你指定的磁带设备;
 
不能写磁带设备或文件;
 
不正确的命令行参数;
 
不能打开数据库或没有连接数据库的权限;
  -q  
不用将导出过程输出到屏幕上
  -d  
dbexport只导出BLOB字段的描述符,而不导出BLOB数据
  -ss
能够生成更详细的信息,比如:
         
初始和附加extent的尺寸;
 
表的分片信息;
 
对表的锁的模式(行锁或页锁);
 
表所在的dbspaceBLOB数据所在的space
  -o <dir>  
     
可以将数据库导入到你指定的目录下
  -t <tapedev> -b <blksz> -s <tapesz>
     
将数据导入到磁带
  -f <sql-command-file>
      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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值