ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

dmfldr大字段数据装载

2021-07-08 12:59:57  阅读:204  来源: 互联网

标签:大字 testlob 数据文件 装载 dmfldr dm8 backup lob


dmfldr支持对DM数据库的大字段类型数据的载入和导出,支持的大字段数据类型包括TEXT、LONGVARCHAR、IMAGE、LONGVARBINARY、BLOB以及CLOB。
01

大字段数据导出

当dmfldr工作在导出模式(MODE为OUT)时,生成大字段对应的数据文件名由LOB_FILE_NAME指定,若未指定默认为dmfldr.lob,文件存放目录由LOB_DIRECTORY指定,如果未指定则存放于导出数据文件同一目录。
现将T_TESTLOB表数据导出到文
(1)创建测试表和插入数据
创建T_TESTLOB表,字段ID为自增列,插入测试数据,表结构参考如下:

create table t_testlob (
    id      int identity,
    name    varchar(20),
    info1   blob,  
    info2   clob
);
insert into t_testlob (name, info1, info2)
values('张学名', 0xabcdef001, '武汉市东湖高新区未来科技城');
insert into t_testlob (name, info1, info2)
values('陈无良', 0xdfdfd234, '江苏省南京市雨花台区花神大道');
insert into t_testlob (name, info1, info2)
values('马梁', 0xfadaaf123, '上海市浦东新区上海市张江高科技园区');
insert into t_testlob (name, info1, info2)
values('李梅', 0xab121032def, '北京市海淀区中关村南大街');
insert into t_testlob (name, info1, info2)
values('程一航', 0xdadde110, '四川省成都市高新区天顺北街');
commit;

select * from t_testlob;

LINEID     NAME  TYPE$       NULLABLE
---------- ----- ----------- --------
1          ID    INTEGER     N
2          NAME  VARCHAR(20) Y
3          INFO1 BLOB        Y
4          INFO2 TEXT        Y

(2)编写控制文件
编辑控制文件/dm8/backup/dmfldr/testlob.ctrl,数据导出至/dm8/backup/dmfldr/testlob.txt文件中,控制文件内容参考如下:

LOAD DATA
INFILE '*'
INTO TABLE t_testlob
FIELDS '|'
(
ID,
NAME,
INFO1,
INFO2
)

(3)执行导出命令
使用dmfldr命令导出数据,执行命令参考如下(注意用户名区分大小写):

/home/dmdba/dmdbms2/bin/dmfldr userid=SYSDBA/SYSDBA@192.168.17.79:5236 control=\'/dm8/backup/dmfldr/testlob.ctrl\' data=\'/dm8/backup/dmfldr/testlob.txt\' mode=\'out\' lob_directory=\'/dm8/backup/dmfldr\'lob_file_name=\'testlob.lob\'
dmfldr V8
5 rows is load out
Load finish 5 rows, 
time:159.805(ms)

(4)查看导出结果
在/dm8/backup/dmfldr/目录下生成testlob.txt和testlob.lob两个文件,执行目录生成导出日志文件。testlob.lob无法直接打开,testlob.txt内容展示如下。

[dmdba@ora79 ~]$ cat /dm8/backup/dmfldr/testlob.txt
1|estlob.lob:0:5|testlob.lob:5:26
2|estlob.lob:31:4|testlob.lob:35:28
3||testlob.lob:63:5|testlob.lob:68:34
4||testlob.lob:102:6|testlob.lob:108:24
5|estlob.lob:132:4|testlob.lob:136:26

02大字段数据载入

场景一:DIRECT为TRUE

当载入的大字段数据在单独的数据文件中存放时(比如上述导出的大字段数据文件),需指定DIRECT=TRUE方式导入。

非数据库服务器上导入时,指定CLIENT_LOB为TRUE,LOB_DIRECTORY指定为大字段数据文件所在的客户端本地目录;数据库服务器上导入时,则指定CLIENT_LOB为FALSE,LOB_DIRECTORY指定为大字段数据文件所在服务器目录(需先把大字段文件传送到DM服务器)。

大字段数据文件在数据文件中指定,以“文件名:起始偏移:长度”的形式记录在数据文件中。

使用如下命令将上述导出的数据文件testlob.txt和testlob.lob导入到服务器192.168.88.102的T_TESTLOB表中(T_TESTLOB表提前创建):

dmfldr userid=SYSDBA/dameng123@192.168.88.102:5236 
control=\'/dm8/backup/dmfldr/testlob.ctrl\' 
data=\'/dm8/backup/dmfldr/testlob.txt\' mode=\'in\' 
lob_file_name=\'testlob.lob\' client_lob=true 
lob_directory=\'/dm8/backup/dmfldr\' direct=true set_identity=false

场景二:DIRECT为FALSE
当大字段列数据保存在数据文件中时,需指定DIRECT=FALSE方式导入。BLOB_TYPE参数指定BLOB列内容类型(包含HEX_CHAR和HEX,默认为HEX_CHAR十六进制)。

编辑数据文件testlobdata.txt,内容参考如下:


dmfldr userid=SYSDBA/dameng123@192.168.88.102:5236 
control='d:/test/testlob.ctrl' 
data='d:/test/testlobdata.txt' mode='in' 
direct=false blob_type='hex'

标签:大字,testlob,数据文件,装载,dmfldr,dm8,backup,lob
来源: https://blog.csdn.net/yangeoooo/article/details/118569430

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有