注册
DMFLDR工具使用整理
专栏/培训园地/ 文章详情 /

DMFLDR工具使用整理

Harlin 2025/04/24 65 0 0
摘要

一、dmfldr结构
dmfldr(DM Fast Loader)包含 dmfldr 客户端和 dmfldr 模块两部分。dmfldr 客户端实现初始化快速装载环境、读取数据、打包数据和发送数据功能。dmfldr 功能模块嵌入在数据库服务器中,实现装载功能。两者相互协作,共同完成 dmfldr 的各项功能。
示意图如下:

当进行数据载入时,dmfldr 客户端接收用户提交的命令与参数,分析控制文件与数据文件,将数据打包发送给服务器端的 dmfldr 模块,由 dmfldr 模块完成数据的真正装载工作。并分析服务器返回的消息,必要时根据用户参数指定生成日志文件与错误数据文件。
当进行数据载出时,dmfldr 客户端接收用户提交的命令与参数,分析控制文件,将用户要求转换成相应消息发送给服务器端的 dmfldr 模块。dmfldr 模块解析并打包需要导出的数据,发送给 dmfldr 客户端,客户端将数据写入指定的数据文件,必要时根据用户参数指定生成日志文件。
1、dmfldr命令整理
1.1、使用 USERID 和 CONTROL参数
./dmfldr USERID=SYSDBA/SYSDBA MODE='IN' CONTROL='/opt/data/test.ctl'
1.2、使用USERID 和 CONTROL参数
./dmfldr USERID=SYSDBA/SYSDBA MODE='OUT' CONTROL='/opt/data/test.ctl'
1.3、使用 USERID、OUT、TABLE 和 DATA 参数
将 test1表中数据载出到 test1.txt文件中。
[dmdba@dmdb bin]$ dmfldr USERID=jhl/Dameng123 MODE='OUT' TABLE=test1 DATA='/dm/test1.txt'
dmfldr V8
1000 rows is load out
export success.
1000 行数据已导出
用时:66.843(ms)
1.4、使用 USERID、IN、TABLE 和 DATA 参数
将 test1.txt 文件中数据载入到 test1表中。
[dmdba@dmdb bin]$ dmfldr USERID=jhl/Dameng123 MODE='IN' TABLE=test1 DATA='/dm/test1.txt'
dmfldr V8
控制文件:
加载行数:全部
每次提交服务器行数:50000
跳过行数:0
允许错误数:100
是否直接加载:Yes
是否插入自增列:No
数据是否已按照聚集索引排序:No
字符集:UTF-8
数据文件共1个:
/dm/test1.txt
错误文件:fldr.bad
目标表:TEST1
列名 包装数据类型 终止
A CHARACTER |
B CHARACTER |

行缓冲区数量: 2
任务线程数量: 1
1000行记录已提交
目标表:TEST1
load success.
1000 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。
跳过的逻辑记录总数:0
读取的逻辑记录总数:1000
拒绝的逻辑记录总数:0
6.504(ms)已使用

1.5、多个文件导入
[dmdba@dmdb bin]$ dmfldr USERID=jhl/Dameng123 MODE='IN' TABLE=test1 DATA='/dm/test.txt','/dm/test1.txt' log='/dm/test.log'
dmfldr V8
控制文件:
加载行数:全部
每次提交服务器行数:50000
跳过行数:0
允许错误数:100
是否直接加载:Yes
是否插入自增列:No
数据是否已按照聚集索引排序:No
字符集:UTF-8

数据文件共2个:
/dm/test.txt
/dm/test1.txt
错误文件:fldr.bad
目标表:TEST1
列名 包装数据类型 终止
A CHARACTER |
B CHARACTER |
行缓冲区数量: 2
任务线程数量: 1
1000行记录已提交
2000行记录已提交
目标表:TEST1
load success.
2000 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。

跳过的逻辑记录总数:0
读取的逻辑记录总数:2000
拒绝的逻辑记录总数:0

39.463(ms)已使用

1.7、导出带有大对象表
[dmdba@dmdb ~]$ dmfldr USERID=jhl/Dameng123 MODE='OUT' TABLE=qa_rectify_slave DATA='/dm/qa.txt' log='/dm/qa.log'
dmfldr V8
1000 rows is load out
export success.
1000 行数据已导出
用时:198.964(ms)

[dmdba@dmdb ~]$ cd /dm
[dmdba@dmdb dm]$ ls
archive dmdbms dmfldr.lob qa.log qa.txt soft

指定目录和文件名导出:
[dmdba@dmdb dm]$ dmfldr USERID=jhl/Dameng123 MODE='OUT' TABLE=qa_rectify_slave DATA='/dm/qanew.txt' LOB_DIRECTORY='/dm' LOB_FILE_NAME='qabiglob.lob' log='/dm/qanew.log'
dmfldr V8
1000 rows is load out
export success.
1000 行数据已导出
用时:137.659(ms)
1.7、导入带有大对象表
[dmdba@dmdb ~]$ dmfldr USERID=jhl/Dameng123 MODE='IN' TABLE=qa_rectify_slave DATA='/dm/qa.txt' LOB_DIRECTORY='/dm' log='/dm/qa.log'
dmfldr V8
控制文件:
加载行数:全部
每次提交服务器行数:50000
跳过行数:0
允许错误数:100
是否直接加载:Yes
是否插入自增列:No
数据是否已按照聚集索引排序:No
字符集:UTF-8
数据文件共1个:
/dm/qa.txt
错误文件:fldr.bad
目标表:QA_RECTIFY_SLAVE
列名 包装数据类型 终止
RECTIFYS_ID CHARACTER |
RECTIFYM_ID CHARACTER |
SHEET_ID CHARACTER |
SHEET_NUM CHARACTER |
SHEET_RECTIFY_NUM CHARACTER |
IMAGE_BLOB CHARACTER |
ITEM_FLAG CHARACTER |
ERR_FLAG CHARACTER |
HEAD CHARACTER |
SHEET_TIME CHARACTER |

行缓冲区数量: 2
任务线程数量: 1
1000行记录已提交
目标表:QA_RECTIFY_SLAVE
load success.
1000 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。
跳过的逻辑记录总数:0
读取的逻辑记录总数:1000
拒绝的逻辑记录总数:0
255.772(ms)已使用

1.8、SQL语句方式导出
[dmdba@dmdb ~]$ dmfldr USERID=jhl/Dameng123 MODE='OUT' TABLE=qa_rectify_slave DATA='/dm/qanew.txt' SQL="SELECT * FROM QA_RECTIFY_SLAVE WHERE RECTIFYM_ID>20000;" LOB_DIRECTORY='/dm' LOB_FILE_NAME='qabiglob.lob' log='/dm/qanew.log'
dmfldr V8
844 rows is load out
export success.
844 行数据已导出
用时:210.523(ms)

1.9、SQLFILE方式导出
[dmdba@dmdb dm]$ ls
archive dmdbms dmfldr.lob fldr.bad jhl1.txt jhl.log jhl.txt qabiglob.lob qa.log qanew.log qanew.txt qa.txt soft sqltext.txt

[dmdba@dmdb dm]$ cat sqltext.txt
select * From qa_rectify_slave where rectifym_id>40000;

[dmdba@dmdb dm]$ dmfldr USERID=jhl/Dameng123 MODE='OUT' TABLE=qa_rectify_slave DATA='/dm/qanew.txt' SQLFILE='/dm/sqltext.txt' LOB_DIRECTORY='/dm' LOB_FILE_NAME='qabiglob.lob' log='/dm/qanew.log'
dmfldr V8
644 rows is load out
export success.
644 行数据已导出
用时:117.311(ms)

1.10、dmfldr.ini方式导出
[dmdba@dmdb dm]$ cat dmfldr.ini
OPTIONS(
MODE='OUT'
LOG='options.log'
DATA='/dm/qa1.txt'
)

[dmdba@dmdb dm]$ dmfldr USERID=jhl/Dameng123 TABLE=qa_rectify_slave
dmfldr V8
1000 rows is load out
export success.
1000 行数据已导出
用时:81.423(ms)

1.11、修改列分隔符
[dmdba@dmdb dm]$ dmfldr USERID=jhl/Dameng123 TABLE=qa_rectify_slave FIELD_SEPERATOR='@'
dmfldr V8
1000 rows is load out
export success.
1000 行数据已导出
用时:109.629(ms)

1.12、控制文件方式导出

除了在启动命令行中直接指定 dmfldr 参数值外,用户还可以通过 CONTROL 参数设置控制文件中的 OPTIONS 选项来指定 dmfldr 参数值,也可以在 dmfldr.ini 配置文件中指定dmfldr 参数值。
dmfldr参数值的优先选择顺序为:优先为命令行参数,其次为控制文件中指定的参数值,最后为dmfldr.ini配置文件中指定的参数值有以下特殊情况:
使用控制文件时,装载表和数据文件优先使用控制文件中的值;
不使用控制文件时,装载表和数据文件优先使用命令行中的值

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服