DM数据库dexp和dimp工具介绍

一、dexp和dimp工具的功能介绍

在之前的文章中,介绍了 DM 数据库中较为重要且常用的命令行工具 dminit 工具,并简单的介绍了 DM 数据库其他的命令行工具。本文将主要介绍DM数据库另一重要的命令行工具, dexp 和 dimp 工具。

逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻辑还原。而逻辑备份还原指的是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。

逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。四种级别独立互斥,不能同时存在。

级别功能
数据库级(FULL)导出或导入整个数据库中的所有对象
用户级(OWNER)导出或导入一个或多个用户所拥有的所有对象
模式级(SCHEMAS)导出或导入一个或多个模式下的所有对象
表级(TABLES)导出或导入一个或多个指定的表或表分区

二、dexp逻辑导出

dexp 工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备份。

dexp 工具的使用语法如下:

dexp PARAMETER = <value> {PARAMETER = <value>}
或
dexpdp PARAMETER = <value> {PARAMETER = <value>}
  • dexp和dexpdp为dexp工具的两种写法,两者的区别在于,dexp 导出的文件必须存放在客户端,而dexpdp 导出的文件必须存放在服务器端。
  • PARAMETER为 dexp 的参数,value为参数取值。

在使用 dexp 工具时,需要将当前目录转换到 dexp 所在安装目录。

cd /home/dmdba/dmdbms/bin

2.1 参数查看

用户可以利用 HELP 来快速查看数据库的dexp参数具体情况。

./dexp HELP
关键字说明
USERID用户名/口令,数据库的链接信息
FILE导出文件 (dexp.dmp),明确制定导出文件名称
DIRECTORY导出文件所在目录
FULL整库导出 (N)
OWNER以用户方式导出,格式 (user1,user2,…)
SCHEMAS以模式方式导出,格式 (schema1,schema2,…)
TABLES以表方式导出,格式 (table1,table2,…)
FUZZY_MATCHTABLES选项是否支持模糊匹配 (N)
QUERY用于导出表的子集的select 子句
PARALLEL用于指定导出的过程中所使用的线程数目
TABLE_PARALLEL用于指定导出的过程中表内的并发线程数目,MPP模式下会转换成单线程
TABLE_POOL用于指定表的缓冲区个数
EXCLUDE忽略指定的对象,格式 :EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) or EXCLUDE=TABLES:table1,table2 or EXCLUDE=SCHEMAS:sch1,sch2
INCLUDE包含指定的对象 ,格式:INCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) or INCLUDE=TABLES:table1,table2
CONSTRAINTS导出约束 (Y)
TABLESPACE导出对象带有表空间 (N)
GRANTS导出权限 (Y)
INDEXES导出索引 (Y)
TRIGGERS导出触发器 (Y)
ROWS导出数据行 (Y)
LOG屏幕输出的日志文件
NOLOGFILE不使用日志文件(N)
NOLOG屏幕上不显示日志信息(N)
LOG_WRITE日志信息实时写入文件: 是(Y),否(N)
DUMMY交互信息处理: 打印§, 所有交互都按YES处理(Y),NO(N)
PARFILE参数文件名
FEEDBACK每 x 行显示进度 (0)
COMPRESS导出数据是否压缩 (N)
ENCRYPT导出数据是否加密 (N)
ENCRYPT_PASSWORD导出数据的加密密钥
ENCRYPT_NAME加密算法的名称
FILESIZE每个转储文件的最大大小
FILENUM一个模板可以生成的文件数
DROP导出后删除原表,但不级联删除 (N)
DESCRIBE导出数据文件的描述信息,记录在数据文件中
HELP打印帮助信息

2.2 特殊参数

该部分主要介绍dexp参数中的必选参数和最常用的可选参数。
在这里插入图片描述

2.2.1 USERID

USERID 用于指定数据库的连接信息,为必选参数。

该参数的使用语法如下:

{{<username>[/<password>]} | /}[@<connect_identifier>][<option>] [<os_auth>] <connect_identifier> ::=<svc_name> | {<host>[:<port>]} |<unixsocket_file><option>::= #{ <exetend_option>=<value>{,<extend_option>=<value>} } 

语法解释

  • {}是为了封装参数之用,书写时需要保留
  • <username>[/<password>]为用户名和密码。普通登录方式时用户名必写,密码缺省为 SYSDBA
  • <svc_name>为服务名。服务名在 dm_svc.conf 中配置。
  • <host>[:<port>]:服务器 IP 地址和端口号。缺省情况下默认为本地服务器和端口号 LOCALHOST:5236。当服务器为本机时SERVER:PORT 可直接写 LOCALHOST。当连接其他服务器时,SERVER:PORT需写上IP地址和PORTNUM。
  • <unixsocket_file>:专门用于在 LINUX 系统中,当服务器与客户端之间使用UNIXSOCETUNIX-IPC 方式通信时,指定客户端连接的 UNIXSOCKET 路径文件名。必须和inet_type=UNIXSOCKET 同时使用。
  • <option>为扩展选项,用法为<exetend_option>=<value>。所有 value 值不能包含空格,不能包含特殊的符号,如引号等。书写扩展选项时需要用引号#"{ }"进行封装。
  • AS <SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO>:操作系统身份验证。操作系统身份验证无需输入用户名和密码,若输入用户名和密码将会被忽略。

注意
<password>中特殊字符的书写规范。在linux系统中,密码需要结合操作系统的要求和 dexp 、 dimp 的要求来书写。想要了解更为具体的书写标准,可以参考阅读 《DM8_dexp 和 dimp 使用手册》。

在这里插入图片描述
在这里插入图片描述

2.2.2 FILE

FILE 用于明确指定导出的文件(可以包含路径),可以包含多个文件,用逗号分隔。
该参数使用语法如下:

FILE=<文件>

注意

  • 如果 FILE 指定的文件包含生成路径,则忽略 DIRECTORY 中的路径。
  • 如果 FILE 没有指定路径时,使用 DIRECTORY 中指定的路径。
  • 如果 FILE 和 DIRECTORY 都没有指定路径,则使用系统当前路径。

2.2.3 LOG

LOG 用于明确指定导出的日志文件名称(可以包含路径),可以包含多个文件,用逗号分隔。可选参数。如果不选用 LOG 参数(来明确指定日志文件名称),那么默认导出日志文件名称为 dexp.log
该参数的使用语法如下:

LOG=<文件名>

注意

  • 如果 LOG 指定的文件包含生成路径,则忽略 DIRECTORY 中的路径。
  • 如果 LOG 没有指定路径时,使用 DIRECTORY 中指定的路径。
  • 如果 LOG 和 DIRECTORY 都没有指定路径,则使用系统当前路径。

2.2.4 DIRECTORY

DIRECTORY 用于指定导出文件及日志文件生成的路径。可选参数,缺省为导出到 dexp所在路径。
该参数的使用语法如下:

DIRECTORY=<path>

注意

  • FILE 和 LOG 中指定的路径,优先级高于 DIRECTORY 中指定的路径。
  • 当 FILE 和 LOG 不指定路径时,才使用 DIRECTORY 指定的路径。
  • 如果都没有指定路径,则使用系统当前路径。

2.2.4 导出方式

针对数据库对象,有 FULL、OWNER、SCHEMAS、TABLES 四种导出方式可供选择。一次导出只能指定一种方式。可选参数,缺省为 SCHEMAS。

语法如下:

FULL=Y                         //导出数据库的所有对象。
OWNER=<用户名>{,<用户名>}       //导出一个或多个用户拥有的所有对象。
SCHEMAS=<模式名>{,<模式名>}     //导出一个或多个模式下的所有对象。
TABLES=<表名>{,<表名>}          //导出和导入一个或多个指定的表或表分区。导出所有数据行、约束、索引等信息。

注意

  • 对于输入的用户名、模式名和表名,工具都会自动转换为大写
  • 对于小写的用户名、模式名和表名,为了不转换为大写,需要转义。

三、dimp 逻辑导入

dimp 逻辑导入工具利用 dexp 工具生成的备份文件对本地或远程的数据库进行联机逻辑还原。dimp 导入是 dexp 导出的相反过程。

使用语法如下:

dimp PARAMETER=value { PARAMETER=value }    //导入的文件必须存放在客户端
或
dimpdp PARAMETER=value { PARAMETER=value }  //导入的文件必须存放在服务器端
  • dimp 和 dimpdp是 dimp 工具的两种写法
  • PARAMETER:dimp 参数,value为参数取值。

3.1 参数查看

可以利用 HELP 来快速查看数据库的dimp参数具体情况。

Column 1Column 2
USERID用户名/口令,数据库的链接信息
FILE导入文件名称 (dexp.dmp)
DIRECTORY导入文件所在目录
FULL整库导入 (N)
OWNER以用户方式导入 格式 (user1,user2,…)
SCHEMAS以模式方式导入 格式 (schema1,schema2,…)
TABLES以表名方式导入 格式(table1,table2,…)
PARALLEL用于指定导入的过程中所使用的线程数目
TABLE_PARALLEL用于指定导入的过程中每个表所使用的子线程数目,在FAST_LOAD为Y时有效
IGNORE忽略创建错误 (N)
TABLE_EXISTS_ACTION需要的导入表在目标库中存在时采取的操作
FAST_LOAD是否使用dmfldr来导数据(N)
FLDR_ORDER使用dmfldr是否需要严格按顺序来导数据(Y)
COMMIT_ROWS批量提交的行数(5000)
EXCLUDE忽略指定的对象 格式 EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS)
GRANTS导入权限 (Y)
CONSTRAINTS导入约束 (Y)
INDEXES导入索引 (Y)
TRIGGERS导入触发器 (Y)
ROWS导入数据行 (Y)
LOG指定日志文件
NOLOGFILE不使用日志文件(N)
NOLOG屏幕上不显示日志信息(N)
LOG_WRITE日志信息实时写入文件(N): 是(Y),否(N)
DUMMY交互信息处理: 打印(P), 所有交互都按YES处理(Y),NO(N)
PARFILE参数文件名
FEEDBACK每 x 行显示进度 (0)
COMPILE编译过程, 程序包和函数… (Y)
INDEXFILE将表的索引/约束信息写入指定的文件
INDEXFIRST导入时先建索引(N)
REMAP_SCHEMA格式(SOURCE_SCHEMA:TARGET_SCHEMA) 将SOURCE_SCHEMA中的数据导入到TARGET_SCHEMA中
ENCRYPT_PASSWORD数据的加密密钥
ENCRYPT_NAME加密算法的名称
SHOW/DESCRIBE打印出指定文件的信息(N)
TASK_THREAD_NUMBER用于设置dmfldr处理用户数据的线程数目
BUFFER_NODE_SIZE用于设置dmfldr读入文件缓冲区大小
TASK_SEND_NODE_NUMBER用于设置dmfldr发送节点个数[16,65535]
LOB_NOT_FAST_LOAD如果一个表含有大字段,那么不使用dmfldr,因为dmfldr是一行一行提交的
PRIMARY_CONFLICT主键冲突的处理方式[IGNORE
TABLE_FIRST是否先导入表(N):是(Y),否(N)
SHOW_SERVER_INFO是否打印服务器信息(N):是(Y),否(N)
HELP打印帮助信息

3.2特殊参数

dimp的必选参数和常用的可选参数与 dexp 的一样,都为 USERID,FILE,LOG,DIRECTORY 和 四种级别的导入方式。具体使用方式可以参考 dexp 部分的介绍。想了解更为具体的介绍,可以参考阅读《DM8_dexp 和 dimp 使用手册》。

注意

导入方式可以和导出方式不一致,例如当导出方式不为 FULL 时,导入时也可以指定为 FULL 方式,此时的 FULL 会将导出文件包含的全部内容导入到指定的实例中。

四、实操练习

4.1 导出环境

  1. 导出库:环境为linux,服务器为192.168.37.130,用户名和密码均为 SYSDBA,端口号为5237
  2. 导入库:环境为linux,服务器为192.168.37.130,用户名和密码均为 SYSDBA,端口号为5236

4.2 dexp导出

导出数据库的所有对象(FULL=Y),导出文件为dexp01.dmp,导出日志为 dexp01.log,导出文件和日志文件都存放在/home/dmdba/DaoC/mec_2/data/dexp 目录中.

 ./dexp SYSDBA/SYSDBA\@192.168.37.130:5237 FILE=dexp01.dmp LOG=dexp01.log DIRECTORY=/home/dmdba/DaoC/mec_2/data/dexp FULL=Y

导出结果如下
在这里插入图片描述
在这里插入图片描述

4.2 dimp导入

导入 SYSDBA、OTHER、PERSON 模式中的数据(SCHEMAS=SYSDBA,OTHER,PERSON),导入文件就是上一步导出的文件 dexp01.dmp,导入日志 dimp02.log 放入/home/dmdba/DaoC/mec_2/data/dimp目录中。

 ./dimp SYSDBA/SYSDBA@192.168.37.130:5236 FILE=/home/dmdba/DaoC/mec_2/data/dexp/dexp01.dmp LOG=dimp02.log DIRECTORY=/home/dmdba/DaoC/mec_2/data/dimp SCHEMAS=SYSDBA,OTHER,PERSON

导入结果如下
在这里插入图片描述
在这里插入图片描述

达梦在线服务平台网址:达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台 (dameng.com)

——
总结:本文主要介绍了DM数据库的dexp和dimp工具的使用方法和其部分参数的含义,并进行了实操练习。文章如有错误,欢迎指出。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值