达梦数据库导入导出工具dmfldr

达梦数据库导入导出工具dmfldr

基础信息
OS版本:
Red Hat Enterprise Linux Server release 7.9 (Maipo)
DB版本:
DM Database Server 64 V8
DB Version: 0x7000c
03134284132-20240115-215128-20081

1 dmfldr工具介绍

dmfldr(DM Fast Loader)是 DM 提供的快速数据装载命令行工具。 用户通过使用dmfldr 工具能够把按照一定格式排序的文本数据以简单、快速、高效的方式载入到 DM 数据库中,或把 DM 数据库中的数据按照一定格式写入文本文件。其中,表及表的同义词支持数据导入和导出,视图及视图的同义词仅支持数据导出。

dmfldr 工具的主要功能包括:

  • 数据导出:可以按照用户指定的条件导出数据库中的数据,支持导出到不同格式的文件中,例如文本文件或CSV文件等。
  • 数据导入:可以将文件中的数据导入到达梦数据库中,支持从上述提到的文本文件或CSV文件导入数据。

dmfldr 的系统结构如图:
在这里插入图片描述

2 dmfldr 入门

2.1 启动 dmfldr

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

dmfldr keyword=value [keyword=value ...]
例如:
dmfldr USERID=SYSDBA/SYSDBA CONTROL='c:\fldr.ctl'

如例子所示, USERID 和 CONTROL 是启动 dmfldr 必须要指定的参数, 且 USERID 必须是第一个参数, CONTROL 必须是第二个参数。除了在启动命令行中直接指定 dmfldr 参数值外,用户还可以通过设置控制文件中的OPTIONS 选项来指定 dmfldr 参数值,也可以在 dmfldr.ini 配置文件中指定 dmfldr参数值。

注意:
参数值的优先选择顺序为先控制文件中的OPTIONS选项,其次命令行中指定的参数值,最后dmfldr.ini配置文件中指定的参数值。

2.2 查看 dmfldr 参数

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

[dmdba@test ~]$ cd /dm8/bin
[dmdba@test bin]$ dmfldr help
version: 03134284132-20240115-215128-20081 Pack2
格式: ./dmfldr   KEYWORD=value

例程: ./dmfldr   SYSDBA/SYSDBA CONTROL='/opt/data/fldr.ctl'

USERID 必须是命令行中的第一个参数
字符串类型参数必须以引号封闭

关键字              说明(默认值)
--------------------------------------------------------------------------------
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}
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                 使用自定义查询语句,仅导出模式有效
SQLFILE             自定义查询语句所在文件,仅导出模式有效
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文件 4: 错误仅输出到屏幕
FLDR_INI            配置文件路径,字符串类型
RECONN              自动重连次数(0)
RECONN_TIME         自动重连等待时间(5), 单位(s), 有效值范围(1~10000)
WIDTH               设置列数据宽度
SEDF                被替换的字符列表
SEDT                用于替换的字符列表
ESCAPE              转义符
DB2_MODE            兼容DB2模式
PRIORITY_ENCLOSE    DB2模式下, enclose优先级最高
HELP                打印帮助信息

2.3 dmfldr导入测试

当 dmfldr 工作在 IN 模式时,从数据文件中读取数据并载入数据库。

2.3.1 建表 TEST

在test用户下创建表test。

[dmdba@test ~]$ disql test/Dameng123

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 6.286(ms)
disql V8
SQL> select user();

行号     USER()
---------- ------
1          TEST

已用时间: 0.243(毫秒). 执行号:1001.
SQL> CREATE TABLE TEST(C1 INT,C2 INT,C3 DATE);
操作已执行
已用时间: 36.704(毫秒). 执行号:1002.
2.3.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
2.3.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'
)
2.3.4 使用 dmfldr 进行导入
[dmdba@test bin]$ pwd
/dm8/bin
[dmdba@test bin]$ ./dmfldr userid=test/Dameng123@localhost:5236 control=\'/tmp/test.ctl\'
dmfldr V8
控制文件:

加载行数:全部

每次提交服务器行数:50000

跳过行数:0

允许错误数:100

是否直接加载:Yes

是否插入自增列:No

数据是否已按照聚集索引排序:No

字符集:UTF-8



数据文件共1个:
/tmp/test.txt

错误文件:fldr.bad

目标表:TEST

列名                                                                                                                           包装数据类型   终止
C1                                                                                                                               CHARACTER            WHT
C2                                                                                                                               CHARACTER            |
C3                                                                                                                               yyyy-mm-dd           |

行缓冲区数量: 4
任务线程数量: 4

3行记录已提交

目标表:TEST
load success.
3 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。

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

8.671(ms)已使用
2.3.5 数据确认
[dmdba@test ~]$ disql test/Dameng123

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.621(ms)
disql V8
SQL> select user();

行号     USER()
---------- ------
1          TEST

已用时间: 0.223(毫秒). 执行号:1201.
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

已用时间: 3.420(毫秒). 执行号:1202.

2.4 dmfldr导出测试

当工作在 OUT模式时,从数据库中将指定数据导出到数据文件。

2.4.1 编辑控制文件 test.ctl

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

vi /tmp/test_out.ctl

LOAD DATA
INFILE '/tmp/test_out.txt'
INTO TABLE test
FIELDS '@@'
(
C1,
C2,
C3
)
2.4.2 使用 dmfldr 进行导出数据
[dmdba@test bin]$ pwd
/dm8/bin
[dmdba@test bin]$ ./dmfldr userid=test/Dameng123@localhost:5236 control=\'/tmp/test_out.ctl\' mode=\'out\'
dmfldr V8
3 rows is load out
export success.
3 行数据已导出
用时:20.397(ms)
2.4.3 数据确认
[dmdba@test bin]$ cat /tmp/test_out.txt
1@@1@@2015-11-06
2@@2@@2015-11-05
3@@3@@2015-11-04

更多内容请查看官方文档《DM8_dmfldr使用手册

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/554152.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【漏洞复现】浙大恩特客户资源管理系统Ri0004_openFileByStream.jsp接口存在任意文件读取漏洞

漏洞描述 浙大恩特客户资源管理系统是一款针对企业客户资源管理的软件产品。该系统旨在帮助企业高效地管理和利用客户资源,提升销售和市场营销的效果。浙大恩特客户资源管理系统Ri0004_openFileByStream.jsp接口存在任意文件读取漏洞。该漏洞可能会对系统的完整性和安全性产生…

C语言-内存操作函数

C语言有一类内存函数&#xff0c;他们可以以字节为单位进行数据的拷贝、追加&#xff0c;甚至可以替代部分字符串函数。于是让我们来狠狠地学习它一百万遍吧~ 1.memcpy函数的使用和模拟实现 void * memcpy ( void * destination, const void * source, size_t num ); 1.1mem…

Java的数组定义和使用

目录 1.前言 2.数组的概念 3.在Java中的创建和初始化 3.1数组的创建 3.2数组的初始化 4.关于使用 4.1数组元素的访问 4.2数组的遍历 4.3length和length()的区别 5.数组其实是引用类型数据 5.1初始JVM的内存分布 5.2基本类型变量与引用类型变量的区别 5.3关于null的认识 5.4设计…

ssm057学生公寓管理中心系统的设计与实现+jsp

学生公寓管理中心系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本学生公寓管理中心系统就是在这样的大环境下诞生&#xff0c;其可以帮助管…

Matlab对多个输入信号进行数值排序提取特定值

1、将多个信号转为一个数组信号输出&#xff0c;在这里需要注意&#xff0c;数据类型是否统一&#xff1b; 2、使用Sort模块&#xff0c;进行排序&#xff08;可设置排序方向&#xff09;&#xff0c;得到排序后的新数组以及对应的索引号&#xff1b; 3、设置想要的索引号&…

如何使用Postgres的JSONB数据类型进行高效查询

文章目录 解决方案1. 创建包含JSONB列的表2. 插入JSON数据3. 使用GIN索引加速查询4. 执行高效的JSONB查询 示例代码解释 PostgreSQL的JSONB数据类型提供了一种灵活的方式来存储和查询JSON格式的数据。JSONB不仅允许你在PostgreSQL数据库中存储JSON文档&#xff0c;而且还对这些…

文献学习-38-用于增量组织病理学分类的内存高效提示调整

​ Memory-Efficient Prompt Tuning for Incremental Histopathology Classification Authors: Yu Zhu, Kang Li, Lequan Yu, Pheng-Ann Heng Source: The Thirty-Eighth AAAI Conference on Artificial Intelligence (AAAI-24) ​​ Abstract 最近的研究在组织病理学分类方面…

杨元庆:人工智能需要更加私密化和个性化

4月18日&#xff0c; 2024联想创新科技大会Tech World在上海举办。联想集团董事长兼CEO杨元庆在演讲中表示“我们的愿景&#xff0c;就是让人工智能走下云端&#xff0c;真正落地&#xff0c;走进千家万户、千行百业”。 这意味着&#xff0c;我们需要让人工智能更加私密化和个…

低代码开发平台:创新工具,颠覆传统

低代码开发平台是近年来迅速崛起的一种创新型软件开发工具&#xff0c;以其高效、灵活的开发模式正颠覆着传统的开发方式。不再需要编写大量繁杂的代码&#xff0c;开发者们可以在图形化界面中以拖拽、配置的方式进行应用的搭建&#xff0c;大大提高开发效率和质量。本文将全面…

element-plus关于el-radio-group选择一个单选按钮,全被选中

问题 使用el-radio-group 组件&#xff0c;进行多个互斥选择时&#xff0c;点击一个选项时&#xff0c;全部选择。设置radio的默认值也无法选中 代码为官方实例 <template><el-radio-group v-model"radio"><el-radio :value"3">Option…

Games101-光线追踪(辐射度量学、渲染方程与全局光照)

Basic radiometry (辐射度量学) 光的强度假定l为10&#xff0c;但是10是什么。 Whitted-Style中间了很多不同简化&#xff0c;如能看到高光&#xff0c;表示做了布林冯着色&#xff0c;意味着一个光线打进来后会被反射到一定的区域里&#xff0c;而不是沿着完美的镜像方向&…

从三大层次学习企业架构框架TOGAF

目录 前言 掌握TOGAF的三个层次 层次1&#xff1a;怎么学&#xff1f; 层次2&#xff1a;怎么用&#xff1f; 层次3&#xff1a;怎么思&#xff1f; 结束语 前言 对于一名架构师来讲&#xff0c;如果说编程语言是知识库层次中的入门石&#xff0c;那么企业架构框架则相当…

【微信小程序从入门到精通(项目实战)】——微电影小程序

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

Modelsim自动化仿真脚本(TCL)——简单实例

目录 1. Modelsim与TCL脚本的关系 2.实验文件 2.1设计文件 2.2仿真测试文件 2.3. 脚本文件 3. 实验步骤 3.1. 创建文件夹 3.2. 指定路径 3.3. 创建工程 3.4. 运行命令 3.4. 实验效果 1. Modelsim与TCL脚本的关系 TCL&#xff08;Tool Command Language&#xff09;是…

吴恩达深度学习笔记:深度学习的 实践层面 (Practical aspects of Deep Learning)1.4-1.5

目录 第一门课&#xff1a;第二门课 改善深层神经网络&#xff1a;超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第一周&#xff1a;深度学习的 实践层面 (Practical aspects of Deep Learning)…

[C++][算法基础]分解质因数(试除法)

给定 n 个正整数 ai&#xff0c;将每个数分解质因数&#xff0c;并按照质因数从小到大的顺序输出每个质因数的底数和指数。 输入格式 第一行包含整数 n。 接下来 n 行&#xff0c;每行包含一个正整数 ai。 输出格式 对于每个正整数 ai&#xff0c;按照从小到大的顺序输出其…

同城O2O跑腿系统源码:外卖配送APP的技术架构与设计思路解析

今天&#xff0c;我将为大家详解同城O2O跑腿系统源码&#xff0c;剖析外卖配送APP的技术架构与设计思路。 一、用户端与商家端 用户端提供用户注册、登录、浏览菜单、下单、支付等功能&#xff0c;而商家端则负责商家入驻、菜单管理、订单处理等。这两个端的技术架构相对独立…

在Linux操作系统中文件目录特殊权限

管理员用户和普通用户都可以使用passwd命令来给用户设置密码 用户密码保存在/etc/shadow suid 4 sgid 2 sticky bit 1 suid&#xff08;只要是针对可执行文件进行设置。&#xff09; {当没有操作要求时&#xff0c;不可以擅自对shell&#xff0c;python脚本加上suid权…

java动态代理--cglib代理

1.概述 CGLIB动态代理是针对类实现代理&#xff08;无需实现接口&#xff09;&#xff0c;为了弥补jdk的不足&#xff0c; Cglib 不基于接口&#xff0c;是基于父子的继承关系&#xff08;被代理的对象是代理对象的父类&#xff09;&#xff0c;通过重写的形式扩展方法 2.定…

带头循环双向链表专题

1. 双向链表的结构 带头链表⾥的头节点&#xff0c;实际为“哨兵位”&#xff0c;哨兵位节点不存储任何有效元素&#xff0c;只是站在这⾥“放哨 的” “哨兵位”存在的意义&#xff1a; 遍历循环链表避免死循环。 2. 双向链表的实现 2.1双向链表结构 typedef int DataTyp…