注册
达梦数据库导入工具dmldrp 和 dmldrc
专栏/培训园地/ 文章详情 /

达梦数据库导入工具dmldrp 和 dmldrc

DM_732053 2024/06/26 738 0 0
摘要

达梦数据库导入工具dmldrp 和 dmldrc

dmldrp 和 dmldrc 只支持快速载入功能,不支持快速载出功能。dmldrp 和 dmldrc 需搭配使用才能完成快速装载。具体分为两步:一是先启dmldrp;二是使用 dmldrc 执行导入功能。

1 dmldrp

1.1 启动 dmldrp

安装好 DM 数据库管理系统后,在安装目录“bin”子目录下可找到 dmldrp 执行文件。dmldrp 的使用必须指定必要的参数,否则工具会报错“无效的参数个数”并退出。为dmldrp 指定参数的格式为:

dmldrp keyword=value 例 启动一个端口号为 9898 的 dmldrp。 dmldrp.exe port=9898

1.2 查看 dmldrp 参数

用户可以使用“dmldrp help”查看 dmldrp 版本信息和各参数的简单信息。

[dmdba@test bin]$ dmldrp help dmldrp V8 格式: ./dmldrp KEYWORD=value 例程: ./dmldrp 关键字 说明 --------------------------------------------------------------------- PORT 端口号(可选项, 默认为8336) HELP 打印帮助信息

2 dmldrc

2.1 启动 dmldrc

安装好 DM 数据库管理系统后,在安装目录“bin”子目录下可找到 dmldrc 执行文件。dmldrc 的使用必须指定必要的参数,否则工具会报错“无效的参数个数”并退出。为dmldrc 指定参数的格式为:

dmldrc keyword=value [keyword=value ...] 例 dmldrc 连接一个端口号为 9898 的 dmldrp。 dmldrc userid=SYSDBA/SYSDBA@localhost:5236 localhost:9898 control=\'/opt/data/test.ctl\'

2.2 查看 dmldrc 参数

用户可以使用“dmldrc help”查看 dmldrc 版本信息和各参数的简单信息。

[dmdba@test bin]$ dmldrc help version: 03134284132-20240115-215128-20081 Pack2 格式: ./dmldrc KEYWORD=value 例程: ./dmldrc SYSDBA/SYSDBA 192.168.0.1:8336 USERID 必须是命令行中的第一个参数 SERVER 必须是命令行中的第二个参数 字符串类型参数必须以引号封闭 关键字 说明(默认值) -------------------------------------------------------------------------------- USERID 用户名/口令, 格式:{<username>[/<password>] | /}[@<connect_identifier>][<option>] [<os_auth>] <connect_identifier> : [<svc_name> | host[:port] | <unixsocket_file>] <option> : #{<exetend_option>=<value>[,<extend_option>=<value>]...} --此行外层{}是为了封装参数之用,书写时需要保留 <os_auth> : AS {SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO} SERVER dmldrp的IP地址和端口号。不需要指定参数名,直接指定host[:port] CONTROL 控制文件,字符串类型 LOG 日志文件,字符串类型 (fldr.log) BADFILE 错误数据记录文件,字符串类型 (fldr.bad) SKIP 初始忽略逻辑行数 (0) LOAD 需要装载的行数 (ALL) ROWS 提交频次 (50000), DIRECT为FALSE有效 DIRECT 是否使用快速方式装载 (TRUE) SET_IDENTITY 是否插入自增列 (FALSE) SORTED 数据是否已按照聚集索引排序 (FALSE) INDEX_OPTION 索引选项 (1) 1 不刷新二级索引,数据按照索引先排序,装载完后再 将排序的数据插入索引 2 不刷新二级索引,数据装载完成后重建所有二级索引 3 刷新二级索引, 数据装载的同时将数据插入二级索引 ERRORS 允许的最大数据错误数 (100) CHARACTER_CODE 字符编码,字符串类型 (GBK, UTF-8, SINGLE_BYTE, EUC-KR) MODE 装载方式,字符串类型 IN表示载入,OUT表示载出, OUTORA表示载出ORACLE (IN) CLIENT_LOB 大字段目录是否在本地 (FALSE) LOB_DIRECTORY 大字段数据文件存放目录 LOB_FILE_NAME 大字段数据文件名称,仅导出有效 (dmfldr.lob) BUFFER_NODE_SIZE 读入文件缓冲区的大小 (10),有效值范围1~2048 LOG_SIZE 日志信息缓冲区的大小 (1),有效值范围1~100 READ_ROWS 工作线程一次最大处理的行数 (100000),最大支持2^26-10000 NULL_MODE 载入时NULL字符串是否处理为NULL 载出时空值是否处理为NULL字符串 (FALSE) NULL_STR 载入时视为NULL值处理的字符串 SEND_NODE_NUMBER 运行时发送节点的个数 (20),有效值范围16~65535 TASK_THREAD_NUMBER 处理用户数据的线程数目,默认与处理器核数量相同,有效值范围1~128 BLDR_NUM 服务器BLDR数目 (64),有效值范围1~1024 BDTA_SIZE bdta的大小 (5000),有效值范围100~10000 COMPRESS_FLAG 是否压缩bdta (FALSE) MPP_CLIENT MPP环境,是否本地分发 (TRUE) SINGLE_FILE MPP/DPC环境,是否只生成单个数据文件(FALSE) LAN_MODE MPP/DPC环境,是否以内网模式装载数据(FALSE) UNREP_CHAR_MODE 非法字符处理选项(0),为0时表示跳过该数据行,为1时表示使用(*)替换错误字节 SILENT 是否静默方式装载数据(FALSE) BLOB_TYPE BLOB类型字段数据值的实际类型,字符串类型 (HEX_CHAR) HEX表示值为十六进制,HEX_CHAR表示值为十六进制字符类型 仅在direct=FALSE有效 OCI_DIRECTORY OCI动态库所在的目录 DATA 指定数据文件路径 ENABLE_CLASS_TYPE 允许用户导入CLASS类型数据 (FALSE) FLUSH_FLAG 提交时是否立即刷盘 (FALSE) IGNORE_BATCH_ERRORS 是否忽略错误数据继续导入 (FALSE) SINGLE_HLDR_HP 是否使用单个HLDR装载HUGE水平分区表 (TRUE) EP 指定需要发送数据的站点序号列表,仅向MPP/DPC环境导入数据时有效 PARALLEL 是否开启并行装载(FALSE) SQL 使用自定义查询语句,仅导出模式有效 TABLE 导入/出表 ROW_SEPERATOR 行分隔符 FIELD_SEPERATOR 列分隔符 COMMIT_OPTION 提交选项(0), 0:每发送一批数据后提交, 1:发送完所有数据后提交 APPEND_OPTION 追加选项(0), 0: 追加方式, 1: 替代方式, 2: 插入方式 COLNAME_HEADING 是否在导出文件头中打印列名(FALSE) IGNORE_AIMLESS_DATA 是否忽略无目标数据(FALSE) LOB_AS_VARCHAR 是否将CLOB作为VARCHAR进行导入导出(FALSE) LOB_AS_VARCHAR_SIZE 将CLOB作为VARCHAR进行导入导出时, lob数据最大大小(10)MB LOG_LEVEL 记录错误数据信息级别(3), 0: 不记录 1: 只记录到log文件 2: 只记录到bad文件 3: 记录到log和bad文件 FLDR_INI 配置文件路径,字符串类型 RECONN 自动重连次数(0) RECONN_TIME 自动重连等待时间(5), 单位(s), 有效值范围(1~10000) HELP 打印帮助信息

3 导入测试

使用 dmldrp 和 dmldrc 工具将数据快速装载进test用户的 test 表。

3.1 数据准备

3.1.1 建表 test

[dmdba@test tmp]$ disql test/Dameng123 服务器[LOCALHOST:5236]:处于普通打开状态 登录使用时间 : 3.021(ms) disql V8 SQL> select user(); 行号 USER() ---------- ------ 1 TEST 已用时间: 0.351(毫秒). 执行号:1701. SQL> CREATE TABLE TEST(C1 INT,C2 INT,C3 DATE); 操作已执行 已用时间: 16.568(毫秒). 执行号:1702.

3.1.2 编辑数据文件 test.txt

编辑数据文件 test.txt,存放路径为/tmp/test.txt

vi /tmp/test.txt 1 1|2015-11-06 2 2|2015-11-05 3 3|2015-11_04

3.1.3 编辑控制文件 test.ctl

编辑控制文件 test.ctl,存放路径为/tmp/test.ctl

vi /tmp/test.ctl LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test FIELDS '|' ( C1 TERMINATED BY ' ', C2, C3 DATE FORMAT 'yyyy-mm-dd' )

3.2 使用 dmldrp 和 dmldrc 完成快速导入

3.2.1 启动 dmldrp 服务器

[dmdba@test bin]$ ./dmldrp port=9898 dmldrp V8 dmldrp is ready!

3.2.2 使用 dmldrc 进行数据导入

[dmdba@test bin]$ dmldrc userid=test/Dameng123@localhost:5236 localhost:9898 control=\'/tmp/test.ctl\' MODE=\'IN\' dmldrc V8 控制文件: 加载行数:全部 每次提交服务器行数:50000 跳过行数:0 允许错误数:100 是否直接加载:Yes 是否插入自增列:No 数据是否已按照聚集索引排序:No 字符集:unknown 数据文件共1个: /tmp/test.txt send data length:45 目标表:TEST load success. 3 行加载成功。 0 行由于数据错误没有加载。 0 行由于数据格式错误被丢弃。 跳过的逻辑记录总数:0 读取的逻辑记录总数:3 拒绝的逻辑记录总数:0 5.564(ms)已使用

dmldrp的界面也会显示导入信息。

[dmdba@test bin]$ ./dmldrp port=9898 dmldrp V8 dmldrp is ready! 错误文件:fldr.bad 目标表:TEST 列名 包装数据类型 终止 C1 CHARACTER WHT C2 CHARACTER | C3 yyyy-mm-dd | 行缓冲区数量: 4 任务线程数量: 4 3行记录已提交 目标表:TEST load success. 3 行加载成功。 0 行由于数据错误没有加载。 0 行由于数据格式错误被丢弃。 跳过的逻辑记录总数:0 读取的逻辑记录总数:3 拒绝的逻辑记录总数:0 5.564(ms)已使用

3.2.3 数据确认

[dmdba@test bin]$ disql test/Dameng123 服务器[LOCALHOST:5236]:处于普通打开状态 登录使用时间 : 3.033(ms) disql V8 SQL> select user(); 行号 USER() ---------- ------ 1 TEST 已用时间: 0.246(毫秒). 执行号:1901. SQL> select * from test; 行号 C1 C2 C3 ---------- ----------- ----------- ---------- 1 1 1 2015-11-06 2 2 2 2015-11-05 3 3 3 2015-11-04 已用时间: 1.078(毫秒). 执行号:1902.

更多内容请查看官方文档《DM8快速装载工具使用手册

谨记:心存敬畏,行有所止。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服