dmfldr 快速装载工具是对DM数据库中表数据的快速载入和导出。注意:只针对表数据,一般表中数据量比较大会用快速装载。
一、创建测试表,插入测试数据
create table test1(id int,name varchar);
insert into test1 values(1,'test1');
commit;
create table test2(id int,name varchar,type int);
insert into test2 values(1,'test2',1);
commit;
二、创建控制文件dmfldr1.ctl和dmfldr2.ctl
dmfldr1.ctl文件内容如下:
LOAD DATA
INFILE '/dm8/DAMENG /data/test1.txt' STR X '0A'
BADFILE '/dm8/DAMENG /data/test1.bad'
INTO TABLE test1
dmfldr2.ctl文件内容如下:
LOAD DATA
INFILE '/dm8/DAMENG/data/test2.txt' STR X '0A'
BADFILE '/dm8/DAMENG /data/test2.bad'
INTO TABLE test2
注意:
1、控制文件需要自己创建并命名,“.ctl”、“ .ctrl”、“ .txt”等文件类型都支持。
2、into table指定导出或导入的表,我本地安装dm8的时候忽略大小写,INTO TABLE 'test1'和INTO TABLE test1效果是一样的,表名称加不加引号都可以正常导入导出,不确定这中间是否有关联关系。
3、一个LOAD DATA对应一张表,多张表的话可以配置多个控制文件,然后写个脚本执行。
4、数据导出到test1.txt,不删除该文件,再次导出,数据不会被清空,而是在原有数据的基础上append,向表中导入也是一样,表中的数据append。
比如,一开始表test1中有一条数据,导出到test1.txt文件后,test1.txt文件中有一条数据。这个时候用test1.txt向test表中导入数据,test1表中就有两条数据了。再次导出到test1.txt,test1.txt中有3条数据。
5、具体格式可以参考《DM8_dmfldr使用手册.pdf》
三、创建导出执行脚本
./dmfldr userid=SYSDBA/SYSDBA@localhost:5236 control=\'/dm8/DAMENG/dmfldr/dmfldr1.ctl\' mode=\'out\'
./dmfldr userid=SYSDBA/SYSDBA@localhost:5236 control=\'/dm8/DAMENG/dmfldr/dmfldr2.ctl\' mode=\'out\'
四、执行导出脚本
五、导入
可以像导出一样写成脚本执行,也可以直接执行,导出也可以不写脚本。
./dmfldr userid=SYSDBA/SYSDBA@localhost:5236 control=\'/dm8/DAMENG/dmfldr/dmfldr1.ctl\'
./dmfldr userid=SYSDBA/SYSDBA@localhost:5236 control=\'/dm8/DAMENG/dmfldr/dmfldr2.ctl\'