在之前的文章中,介绍了 DM 数据库中较为重要且常用的命令行工具 dminit 工具,并简单的介绍了 DM 数据库其他的命令行工具。本文将主要介绍DM数据库另一重要的命令行工具, dexp 和 dimp 工具。
逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻辑还原。而逻辑备份还原指的是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。
逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。四种级别独立互斥,不能同时存在。
级别 | 功能 |
---|---|
数据库级(FULL) | 导出或导入整个数据库中的所有对象 |
用户级(OWNER) | 导出或导入一个或多个用户所拥有的所有对象 |
模式级(SCHEMAS) | 导出或导入一个或多个模式下的所有对象 |
表级(TABLES) | 导出或导入一个或多个指定的表或表分区 |
dexp 工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备份。
dexp 工具的使用语法如下:
dexp PARAMETER = {PARAMETER = }
或
dexpdp PARAMETER = {PARAMETER = }
在使用 dexp 工具时,需要将当前目录转换到 dexp 所在安装目录。
cd /home/dmdba/dmdbms/bin
用户可以利用 HELP 来快速查看数据库的dexp参数具体情况。
./dexp HELP
关键字 | 说明 |
---|---|
USERID | 用户名/口令,数据库的链接信息 |
FILE | 导出文件 (dexp.dmp),明确制定导出文件名称 |
DIRECTORY | 导出文件所在目录 |
FULL | 整库导出 (N) |
OWNER | 以用户方式导出,格式 (user1,user2,…) |
SCHEMAS | 以模式方式导出,格式 (schema1,schema2,…) |
TABLES | 以表方式导出,格式 (table1,table2,…) |
FUZZY_MATCH | TABLES选项是否支持模糊匹配 (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 | 打印帮助信息 |
USERID 用于指定数据库的连接信息,为必选参数。
该参数的使用语法如下:
{{[/]} | /}[@][
语法解释
注意
FILE 用于明确指定导出的文件(可以包含路径),可以包含多个文件,用逗号分隔。
该参数使用语法如下:
FILE=<文件>
注意
LOG 用于明确指定导出的日志文件名称(可以包含路径),可以包含多个文件,用逗号分隔。可选参数。如果不选用 LOG 参数(来明确指定日志文件名称),那么默认导出日志文件名称为 dexp.log。
该参数的使用语法如下:
LOG=<文件名>
注意
DIRECTORY 用于指定导出文件及日志文件生成的路径。可选参数,缺省为导出到 dexp所在路径。
该参数的使用语法如下:
DIRECTORY=
注意
针对数据库对象,有 FULL、OWNER、SCHEMAS、TABLES 四种导出方式可供选择。一次导出只能指定一种方式。可选参数,缺省为 SCHEMAS。
语法如下:
FULL=Y //导出数据库的所有对象。
OWNER=<用户名>{,<用户名>} //导出一个或多个用户拥有的所有对象。
SCHEMAS=<模式名>{,<模式名>} //导出一个或多个模式下的所有对象。
TABLES=<表名>{,<表名>} //导出和导入一个或多个指定的表或表分区。导出所有数据行、约束、索引等信息。
注意
dimp 逻辑导入工具利用 dexp 工具生成的备份文件对本地或远程的数据库进行联机逻辑还原。dimp 导入是 dexp 导出的相反过程。
使用语法如下:
dimp PARAMETER=value { PARAMETER=value } //导入的文件必须存放在客户端
或
dimpdp PARAMETER=value { PARAMETER=value } //导入的文件必须存放在服务器端
可以利用 HELP 来快速查看数据库的dimp参数具体情况。
Column 1 | Column 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 | 打印帮助信息 |
dimp的必选参数和常用的可选参数与 dexp 的一样,都为 USERID,FILE,LOG,DIRECTORY 和 四种级别的导入方式。具体使用方式可以参考 dexp 部分的介绍。想了解更为具体的介绍,可以参考阅读《DM8_dexp 和 dimp 使用手册》。
注意
导入方式可以和导出方式不一致,例如当导出方式不为 FULL 时,导入时也可以指定为 FULL 方式,此时的 FULL 会将导出文件包含的全部内容导入到指定的实例中。
导出数据库的所有对象(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
导入 SYSDBA、OTHER、PERSON 模式中的数据(SCHEMAS=SYSDBA,OTHER,PERSON),导入文件就是上一步导出的文件 dexp01.dmp,导入日志 dimp02.log 放入/home/dmdba/DaoC/mec_2/data/dimp目录中。
./dimp SYSDBA/[email protected]: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工具的使用方法和其部分参数的含义,并进行了实操练习。文章如有错误,欢迎指出。