DM 数据库安装方式
1、图形化安装
2、命令行安装
3、自动化安装
单机部署
一、操作系统配置检查
1、内核版本大于2.6
[root@itsdata ~]# uname -r
3.10.0-1160.el7.x86_64
[root@itsdata ~]#
2、glibc2.3以上
[root@itsdata ~]# rpm -q glibc
glibc-2.17-317.el7.x86_64
[root@itsdata ~]#
3、安装unixODBC
[root@itsdata ~]# yum -y install unixODBC unixODBC-devel
4、/tmp 目录大于1GB
[root@itsdata ~]# df -HPT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 4.2G 4.1k 4.2G 1% /dev
tmpfs tmpfs 4.2G 0 4.2G 0% /dev/shm
tmpfs tmpfs 4.2G 13M 4.2G 1% /run
tmpfs tmpfs 4.2G 0 4.2G 0% /sys/fs/cgroup
/dev/sda3 xfs 85G 15G 70G 18% /
/dev/sda1 xfs 521M 170M 352M 33% /boot
tmpfs tmpfs 836M 37k 836M 1% /run/user/0
/dev/sr0 iso9660 4.8G 4.8G 0 100% /mnt/cdrom
[root@itsdata ~]#
5、系统资源配置
[root@itsdata ~]# cat >> /etc/security/limits.conf <<EOF
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft stack 65536
dmdba hard stack 65536
EOF
[root@itsapp1 ~]#
6、关闭防火墙和SELinux
[root@itsdata ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@itsdata ~]# getenforce
Disabled
[root@itsdata ~]#
二、安装数据库软件
1、专有用户的创建
[root@itsdata ~]# groupadd -g 5236 dinstall
[root@itsdata ~]# useradd -g dinstall -u 5236 -m -d /home/dmdba -s /bin/bash dmdba
2、软件目录配置
[root@itsdata ~]# mkdir /dm8 /dmdata /dmarch /dmbak
[root@itsdata ~]# chown -R dmdba:dinstall /dm8 /dmdata /dmarch /dmbak
3、挂载镜像
[root@itsdata ~]# mkdir /mnt/dm8
[root@itsdata ~]# mount dm8_20220304_x86_rh6_64_ent_8.1.2.114.iso /mnt/dm8/
4、图形化安装
三、实例初始化
[root@itsdata ~]# cd /dm8/tool/
[root@itsdata tool]# ./dbca.sh
四、安装后配置
1、配置PATH环境变量
[dmdba@itsdata ~]$ vi .bash_profile
export PATH=$DM_HOME/bin:$DM_HOME/tool:$PATH
alias disql='rlwrap disql'
[dmdba@itsdata ~]$ source .bash_profile
2、开启归档
alter database mount;
alter database add archivelog 'dest=/dmarch,TYPE=local,FILE_SIZE=1024,SPACE_LIMIT=102400';
alter database archivelog;
alter database open;
命令行方式安装数据库
[root@itsapp2 ~]# su - dmdba
上一次登录:二 5月 24 14:46:38 CST 2022pts/1 上
[dmdba@itsapp2 ~]$ cd /mnt/dm8/
[dmdba@itsapp2 dm8]$ ./DMInstall.bin -i
请选择安装语言(C/c:中文 E/e:英文) [C/c]:
解压安装程序..........
欢迎使用达梦数据库安装程序
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n
是否设置时区? (Y/y:是 N/n:否) [Y/y]:y
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
[10]: GTM-03=巴西利亚
[11]: GTM-02=中大西洋
[12]: GTM-01=亚速尔群岛
[13]: GTM=格林威治标准时间
[14]: GTM+01=萨拉热窝
[15]: GTM+02=开罗
[16]: GTM+03=莫斯科
[17]: GTM+04=阿布扎比
[18]: GTM+05=伊斯兰堡
[19]: GTM+06=达卡
[20]: GTM+07=曼谷,河内
[21]: GTM+08=中国标准时间
[22]: GTM+09=汉城
[23]: GTM+10=关岛
[24]: GTM+11=所罗门群岛
[25]: GTM+12=斐济
[26]: GTM+13=努库阿勒法
[27]: GTM+14=基里巴斯
请选择设置时区 [21]:
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:
所需空间: 1579M
请选择安装目录 [/home/dmdba/dmdbms]:/dm8
可用空间: 31G
是否确认安装路径(/dm8)? (Y/y:是 N/n:否) [Y/y]:y
安装前小结
安装位置: /dm8
所需空间: 1579M
可用空间: 31G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2022-05-24 14:49:11
[INFO] 安装达梦数据库...
2022-05-24 14:49:12
[INFO] 安装 基础 模块...
2022-05-24 14:49:15
[INFO] 安装 服务器 模块...
2022-05-24 14:49:15
[INFO] 安装 客户端 模块...
2022-05-24 14:49:17
[INFO] 安装 驱动 模块...
2022-05-24 14:49:18
[INFO] 安装 手册 模块...
2022-05-24 14:49:18
[INFO] 安装 服务 模块...
2022-05-24 14:49:19
[INFO] 移动日志文件。
2022-05-24 14:49:19
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/dm8/script/root/root_installer.sh
安装结束
[dmdba@itsapp2 dm8]$
[root@itsapp2 ~]# /dm8/script/root/root_installer.sh
自动化安装方式
[dmdba@itsapp3 ~]$ vi dm8-install.xml
<?xml version="1.0"?>
<DATABASE>
<LANGUAGE>zh</LANGUAGE> <!--安装数据库的语言配置,安装中文版配置 ZH,英文版配置 EN,不区分大小写。不允许为空。-->
<TIME_ZONE>+08:00</TIME_ZONE> <!--安装程序的时区配置,默认值为+08:00,范围:-12:59 ~ +14:00 -->
<KEY></KEY> <!-- key 文件路径 -->
<INSTALL_TYPE>0</INSTALL_TYPE> <!--安装程序组件类型,取值 0、1、2,0 表示安装全部,1 表示安装服务器,2 表示安装客户端。默认为 0。 -->
<INSTALL_PATH>/dm8</INSTALL_PATH> <!--安装路径,不允许为空。 -->
<INIT_DB>N</INIT_DB> <!--是否初始化库,取值 Y/N、y/n,不允许为空。 -->
<DB_PARAMS> <!--数据库实例参数 -->
<PATH>/dm8</PATH> <!--初始数据库存放的路径,不允许为空 -->
<DB_NAME>DAMENG</DB_NAME> <!--初始化数据库名字,默认是 DAMENG,不超过 128 个字符 -->
<INSTANCE_NAME>DMSERVER</INSTANCE_NAME> <!--初始化数据库实例名字,默认是 DMSERVER,不超过 128 个字符 -->
<PORT_NUM>5236</PORT_NUM> <!--初始化时设置 dm.ini 中的 PORT_NUM,默认 5236,取值范围:1024~65534 -->
<CTL_PATH></CTL_PATH> <!--初始数据库控制文件的路径,文件路径长度最大为 256 -->
<LOG_PATHS> <!--初始化数据库日志文件的路径,文件路径长度最大为 256,LOG_PATH 值为空则使用默认值,如果使用非默认值 LOG_PATH 节点数不能少于 2 个 -->
<LOG_PATH>
</LOG_PATH>
</LOG_PATHS>
<EXTENT_SIZE>16</EXTENT_SIZE> <!--数据文件使用的簇大小,只能是 16 页或 32 页之一,缺省使用 16 页 -->
<PAGE_SIZE>8</PAGE_SIZE> <!--数据文件使用的页大小,缺省使用 8K,只能是 4K、8K、16K 或 32K 之一 -->
<LOG_SIZE>256</LOG_SIZE> <!--日志文件使用的簇大小,默认是 256,取值范围 64 和 2048 之间的整数 -->
<CASE_SENSITIVE>Y</CASE_SENSITIVE> <!--标识符大小写敏感,默认值为 Y。只能是’Y’, ’y’, ’N’, ’n’, ’1’, ’0’之一 -->
<CHARSET>0</CHARSET> <!--字符集选项,默认值为 0。0 代表 GB18030,1 代表 UTF-8,2 代表韩文字符集 EUC-KR-->
<LENGTH_IN_CHAR>0</LENGTH_IN_CHAR> <!--设置为 1 时,所有 VARCHAR 类型对象的长度以字符为单位,否则以字节为单位。默认值为 0。 -->
<USE_NEW_HASH>1</USE_NEW_HASH> <!--字符类型在计算 HASH 值时所采用的 HASH 算法类别。0:原始 HASH 算法;1:改进的HASH 算法。默认值为 1。 -->
<SYSDBA_PWD></SYSDBA_PWD> <!--初始化时设置 SYSDBA 的密码,默认为 SYSDBA,长度在 9 到 48 个字符之间 -->
<SYSAUDITOR_PWD></SYSAUDITOR_PWD> <!--初始化时设置 SYSAUDITOR 的密码,默认为 SYSAUDITOR,长度在 9 到 48 个字符之间 -->
<SYSSSO_PWD></SYSSSO_PWD> <!--初始化时设置 SYSSSO 的密码,默认为 SYSSSO,长度在 9 到 48 个字符之间,仅在安全版本下可见和可设置 -->
<SYSDBO_PWD></SYSDBO_PWD> <!--初始化时设置 SYSDBO 的密码,默认为 SYSDBO,长度在 9 到 48 个字符之间,仅在安全版本下可见和可设置 -->
<TIME_ZONE>+08:00</TIME_ZONE> <!--初始化时区,默认是东八区。格式为:正负号小时:分钟,范围:-12:59 ~ +14:00-->
<PAGE_CHECK>0</PAGE_CHECK> <!--是否启用页面内容校验,0:不启用;1:简单校验;2:严格校验(使用 CRC16 算法生成校验码)。默认 0 -->
<EXTERNAL_CIPHER_NAME></EXTERNAL_CIPHER_NAME> <!--设置默认加密算法,不超过 128 个字符 -->
<EXTERNAL_HASH_NAME></EXTERNAL_HASH_NAME> <!--设置默认 HASH 算法,不超过 128 个字符 -->
<EXTERNAL_CRYPTO_NAME></EXTERNAL_CRYPTO_NAME> <!--设置根密钥加密引擎,不超过 128 个字符 -->
<ENCRYPT_NAME></ENCRYPT_NAME> <!--全库加密密钥使用的算法名。算法可以是 DM 内部支持的加密算法,或者是第三方的加密算法。默认使用"AES256_ECB"算法加密,最长为 128 个字节 -->
<RLOG_ENC_FLAG>N</RLOG_ENC_FLAG> <!--指定日志文件是否加密。默认值 N。取值 Y/N,y/n,1/0 -->
<USBKEY_PIN></USBKEY_PIN> <!--用于加密服务器根密钥,最长为 48 个字节 -->
<BLANK_PAD_MODE>0</BLANK_PAD_MODE> <!--设置空格填充模式,取值 0 或 1,默认为 0 -->
<SYSTEM_MIRROR_PATH></SYSTEM_MIRROR_PATH> <!--指定 system.dbf 文件的镜像路径,默认为空 -->
<MAIN_MIRROR_PATH></MAIN_MIRROR_PATH> <!--指定 main.dbf 文件的镜像路径,默认为空 -->
<ROLL_MIRROR_PATH></ROLL_MIRROR_PATH> <!--指定 roll.dbf 文件的镜像路径,默认为空 -->
<PRIV_FLAG>0</PRIV_FLAG> <!--是否是四权分立,默认值为 0(不使用)。仅在安全版本下可见和可设置。只能是 0 或 1-->
<ELOG_PATH></ELOG_PATH> <!--指定初始化过程中生成的日志文件所在路径。合法的路径,文件路径长度最大为 257(含结束符),不包括文件名-->
</DB_PARAMS>
<CREATE_DB_SERVICE>N</CREATE_DB_SERVICE> <!--是否创建数据库实例的服务,值 Y/N y/n,不允许为空,不初始化数据库将忽略此节点。非 root 用户不能创建数据库服务。 -->
<STARTUP_DB_SERVICE>N</STARTUP_DB_SERVICE> <!--是否启动数据库,值 Y/N y/n,不允许为空,不创建数据库服务将忽略此节点。 -->
</DATABASE>
[dmdba@itsapp3 ~]$ cd /mnt/dm8/
[dmdba@itsapp3 dm8]$ ./DMInstall.bin -q /home/dmdba/dm8-install.xml
解压安装程序..........
静默安装配置文件(/home/dmdba/dm8-install.xml)解析错误!
静默安装配置文件INSTALL_PATH节点不能为空!
[dmdba@itsapp3 dm8]$ vi /home/dmdba/dm8-install.xml
[dmdba@itsapp3 dm8]$ ./DMInstall.bin -q /home/dmdba/dm8-install.xml
解压安装程序..........
2022-05-24 14:55:43
[INFO] 安装达梦数据库...
2022-05-24 14:55:43
[INFO] 安装 基础 模块...
2022-05-24 14:55:47
[INFO] 安装 服务器 模块...
2022-05-24 14:55:47
[INFO] 安装 客户端 模块...
2022-05-24 14:55:49
[INFO] 安装 驱动 模块...
2022-05-24 14:55:50
[INFO] 安装 手册 模块...
2022-05-24 14:55:50
[INFO] 安装 服务 模块...
2022-05-24 14:55:51
[INFO] 移动日志文件。
2022-05-24 14:55:52
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/dm8/script/root/root_installer.sh
[dmdba@itsapp3 dm8]$
初始化数据库实例
1、图形化方式
单机安装时已经使用图形化方式了, 这里就不赘述
2、dminit
[dmdba@itsapp2 bin]$ ./dminit path=/home/dmdba/dmdbms/data db_name=itsdata
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2023-03-04
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
log file path: /home/dmdba/dmdbms/data/itsdata/itsdata01.log
log file path: /home/dmdba/dmdbms/data/itsdata/itsdata02.log
write to dir [/home/dmdba/dmdbms/data/itsdata].
create dm database success. 2022-05-24 15:00:10
[dmdba@itsapp2 bin]$
dminit 常用参数
PATH 指定数据文件存放目录
INI_FILE 指定配置文件存放位置, 默认在指定的PATH目录下
EXTENT_SIZE 指定一个区使用多少个页
PAGE_SIZE 指定一个页的大小
LOG_SIZE 指定redo_log的大小
CASE_SENSITIVE 大小写是否敏感
CHARSET 指定字符集: 0[GB18030], 1[UTF-8], 2[EUC-KR]
LENGTH_IN_CHAR 字符串类型的字段, 例如: VARCHAR(1) 括号中表示的意义, 默认DM表示字节格式 , 该参数为1则表示字符个数
SYSDBA_PWD 指定SYSDBA密码, 默认: (SYSDBA)
DB_NAME 指定数据库名, 默认: (DAMENG)
INSTANCE_NAME 指定实例名, 默认: (DMSERVER)
PORT_NUM 指定监听端口号, 默认: (5236)
HELP 显示帮助信息
[dmdba@itsapp2 bin]$ ./dminit PATH=/dmdata/ INI_FILE=/dmdata/dm1 DB_NAME=dm1 INSTANCE_NAME=dm1 PORT_NUM=5237
/* 使用dminit方式创建的数据库, 必须使用前台的方式启动一次之后关闭数据库, 才可以使用后台方式启动 */
/* 使用dminit方式初始化数据库, 不会自动注册服务, 需要手动注册 */
DM 服务注册
1、使用dbca进行注册
2、dm_service_installer.sh 注册
[root@itsapp2 ~]# cd /dm8/script/root/
[root@itsapp2 root]# ./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/data/itsdata/dm.ini -p itsdata
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceitsdata.service to /usr/lib/systemd/system/DmServiceitsdata.service.
创建服务(DmServiceitsdata)完成
[root@itsapp2 root]#
dm_service_installer.sh 参数说明
-t service_type 注册服务类型,支持一下服务类型:dmap、 dmamon、dmserver 、dmwatcher、dmmonitor 、dmasmsvr 、dmcss 、dmcssm、dmdrs、dmdras、dmdcs、dmdss
-p xxx 指定服务名后缀,生成的操作系统服务名为“服务脚本模板名称+服务名后缀”。此参数只针对5~14服务脚本生效
-dm_ini 指定dm.ini文件路径
[root@itsapp2 root]# ls -1 /dm8/script/root/
dm_service_installer.sh 卸载服务
dm_service_uninstaller.sh 注册服务
root_installer.sh DMAP服务, 该服务一般用于数据库备份
[root@itsapp2 root]#
数据库目录结构
bin 可执行文件目录
desktop DM 数据库各个工具的桌面图标
doc 数据库手册
drivers DM 数据库驱动文件
log 存放 DM 数据库日志,包括工具的日志、数据库日志、服务日志等。
samples 存放 DM 数据库各类配置文件的示例文件
script 存放注册、注销 DM 数据库服务的工具,例如 dm_service_installer.sh 等。
tool 存放 DM 数据库的各个工具,例如 manager 管理工具、dbca 数据库配置助手等。
uninstall 目录存放卸载 DM 数据库的脚本。
web 目录存放 DM 数据库 dem 工具的 web 环境。
data 为数据库实例目录,该目录存放各个实例的文件。
DM 启动和关闭
1、系统服务方式
[root@itsapp1 ~]# systemctl status DmServiceitsdata.service
● DmServiceitsdata.service - DM Instance Service
Loaded: loaded (/usr/lib/systemd/system/DmServiceitsdata.service; enabled; vendor preset: disabled)
Active: active (running) since 二 2022-05-24 14:41:46 CST; 51min ago
Process: 61944 ExecStart=/dm8/bin/DmServiceitsdata start (code=exited, status=0/SUCCESS)
Main PID: 61968 (dmserver)
CGroup: /system.slice/DmServiceitsdata.service
└─61968 /dm8/bin/dmserver path=/dmdata/itsdata/dm.ini -noconsole
5月 24 14:41:31 itsapp1 systemd[1]: Starting DM Instance Service...
5月 24 14:41:46 itsapp1 DmServiceitsdata[61944]: [38B blob data]
5月 24 14:41:46 itsapp1 systemd[1]: Started DM Instance Service.
[root@itsapp1 ~]# systemctl stop DmServiceitsdata.service
2、命令行方式
[root@itsapp1 bin]# ./dmserver /dmdata/itsdata/dm.ini 前台启动方式
[root@itsapp1 bin]# ./dmserver /dmdata/itsdata/dm.ini -noconsole
3、使用系统服务方式
[root@itsapp1 ~]# cd /dm8/tool/
[root@itsapp1 tool]# ./dmservice.sh
DM 数据库安装细节
1、root_installer.sh 启动DMAP服务
2、在用户家目录下配置两个环境变量 LD_LIBRARY_PATH 和 DM_HOME
DM 图形化工具介绍
工具路径
$DM_HOME/console 控制台工具, 可以修改系统参数, 查看系统信息
$DM_HOME/dts 数据迁移工具
$DM_HOME/manager 数据管理工具, 可以执行SQL, 对数据库进行日常管理
$DM_HOME/monitor 监控工具, 监控数据库性能
disql 使用
连接默认实例
[dmdba@itsdata bin]$ ./disql
[dmdba@itsdata bin]$ ./disql SYSDBA/fangyu421 /* ./disql 用户名/密码 */
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 1.955(ms)
disql V8
SQL>
使用ip+port连接
[dmdba@itsdata bin]$ ./disql SYSDBA/fangyu421@100.63.1.7:5236
使用service_name连接
[dmdba@itsdata dmdbms]$ vi /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(cn)
DAMENG=(100.63.1.7:5236) /* 配置服务名和地址 服务名可以随便写 */
disql 执行脚本
SQL> `xxxx.sql
SQL> start xxxx.sql
[dmdba@itsdata bin]$ ./disql SYSDBA/fangyu421@100.63.1.7:5236 \`xxxx.sql /* ` 需要使用\ 进行转义 */
disql 执行系统命令
SQL> host ls /
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
disql 常用参数
SET ECHO OFF; --显示脚本中正在执行的 SQL 语句
SET FEEDBACK OFF; --显示当前 SQL 语句查询或修改的行数
SET HEADING ON; --显示列标题
SET LINESHOW OFF; --显示行号
SET PAGESIZE 1000; --设置一页有多少行数
SET TIMING OFF; --显示每个 SQL 语句花费的执行时间
SET TIME OFF; --显示系统的当前时间
SET LINESIZE 1000; --设置屏幕上一行显示宽度
SET SERVEROUTPUT ON; --在块中有打印信息时,是否打印,以及打印的格式
SET CHAR_CODE DEFAULT; --设置 SQL 语句的编码方式 GBK | GB18030 | UTF8 | DEFAULT
SET COLSEP '|'; --设置 DPI 语句句柄中游标的类型
SET KEEPDATA ON; --是否为数据对齐进行优化,或者保持数据的原始格式。
SET TRIMSPOOL ON; --设置 spool 文件中每行的结尾空格
SPOOL /home/dmdba/dbchk20200609.txt; --输出到文件
SPOOL OFF; --结束输出文件
dmfldr
主要用于数据的导入和导出
dmfldr 使用
dmfldr KEYWORD=value
USERID 必须是命令行中的第一个参数
CONTROL 必须是命令行中的第二个参数
关键字 说明(默认值)
--------------------------------------------------------------------------------
USERID 用户名/口令, 格式和登录数据库相同
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文件
HELP 打印帮助信息
dmfldr 控制文件
示例
1、准备表
CREATE TABLE test(C1 INT,C2 INT,C3 DATE);
2、数据文件
[dmdba@itsdata dmfldr]$ cat /tmp/1.t
1 1|2015-11-06
2 2|2015-11-05
3 3|2015-11_04
3、控制文件
[dmdba@itsdata dmfldr]$ cat /tmp/1.ctl
LOAD DATA INFILE '/tmp/1.t' 加载的数据文件
INTO TABLE test 导入那个表中
FIELDS '|' 指定默认的字段分隔符
(
C1 TERMINATED BY ' ', 第一个字段的分隔符是空格
C2, 第二个字段的分隔符继承FIELDS的定义
C3 DATE FORMAT 'yyyy-mm-dd'
)
4、导入数据
[dmdba@itsdata dmfldr]$ dmfldr userid=SYSDBA/fangyu421 control='/tmp/1.ctl' /* 单引号需要使用 \ 转移 否则报错, 我这里为了排版所以删除了 */
数据文件加载顺序
1、控制文件中指定了数据文件则加载数据文件中的数据文件
2、控制文件没有指定数据文件使用了 '*' 号, 则使用dmfldr的DATA参数指定的数据文件
大对象的导出
LOB_DIRECTORY 指定大对象导出的目录
示例
[dmdba@itsdata dmfldr]$ cat out1.ctl
LOAD DATA INFILE '/dm8/dmfldr/test.txt'
INTO TABLE test
FIELDS '|'
(
C1,
C2,
C3
)
[dmdba@itsdata dmfldr]$
[dmdba@itsdata dmfldr]$ dmfldr userid=SYSDBA/fangyu421 control='/dm8/dmfldr/out1.ctl' LOB_DIRECTORY='/dm8/dmfldr/' mode='out'
dmfldr V8
2 rows is load out
export success.
2 行数据已导出
用时:27.827(ms)
[dmdba@itsdata dmfldr]$ ls
1.ctl 1.t 2.ctl 2.t dmfldr.lob fldr.log out1.ctl test.txt
[dmdba@itsdata dmfldr]$ cat test.txt
1|dmfldr.lob:0:5|dmfldr.lob:5:7
2|dmfldr.lob:12:5|dmfldr.lob:17:7
[dmdba@itsdata dmfldr]$ file dmfldr.lob
dmfldr.lob: data
[dmdba@itsdata dmfldr]$
大对象导入
LOAD DATA INFILE '/dm8/dmfldr/test.txt'
INTO TABLE test
FIELDS '|'
(
C1,
C2,
C3
)
dmfldr userid=SYSDBA/fangyu421 control='/dm8/dmfldr/in1.ctl' LOB_DIRECTORY='/dm8/dmfldr/'
自增列的导入
SET_IDENTITY = TRUE, 从数据文件中读取自增列的值进行插入
SET_IDENTITY = FALSE, 不使用数据文件中自增列的值, 而是插入时服务器根据表定义自动分配
dmfldr userid=SYSDBA/fangyu421 control='/opt/data/test.ctl' direct=true set_identity=false
空值处理
NULL_MODE = TRUE 导入时NULL字符串处理为NULL
NULL_MODE = FALSE 导入时NULL字符串处理为空字符串
dmfldr userid=SYSDBA/fangyu421 control='/opt/data/test.ctl' null_mode=true
条件判断
WHEN col_name != '2'
更多详情请访问达梦在线服务平台 https://eco.dameng.com/