一、dexp和dimp介绍
逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成,联机方式是指数据库服务器正常运行过程中进行的备份和还原 dexp 和 dimp 是 DM 数据库自带的工具,只要安装了 DM 数据库,就可以在安装目录 /dmdbms/bin 中找到。
逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。四种级别独立互斥,不能同时存在。
1、数据库级(FULL):导出或导入整个数据库中的所有对象。
2、用户级(OWNER):导出或导入一个或多个用户所拥有的所有对象。
3、模式级(SCHEMAS):导出或导入一个或多个模式下的所有对象。
4、表级(TABLES):导出或导入一个或多个指定的表或表分区。
二、dexp工具
1、语法:dexp PARAMETER=<value> { PARAMETER=<value> } 或 dexpdp PARAMETER=<value> { PARAMETER=<value> }
例如:
将用户名和密码均为 SYSDBA,IP 地址为 192.168.176.111,端口号为 5238 的数据库采用 FULL 方式完全导出。导出文件名为 db_str.dmp,导出的日志文件名为 db_str.log,导出文件的路径为/dm8/dexp/data。
./dexp USERID=SYSDBA/SYSDBA@192.168.176.111:5238 FILE=db_str.dmp DIRECTORY=/dm8/dexp/data LOG=db_str.log FULL=Y
文件也可以在生成过程中自动扩展成多个。文件名需要包含通配符 %U,用于作为自动扩充文件的文件名模板,2、%U 表示为 2 个字符宽度的数字,由系统自动生成,起始为 01,使用 FILESIZE 参数来指定文件的大小。
例如:
./dexp USERID=SYSDBA/SYSDBA FILE=db_str%U.dmp LOG=db_str.log FULL=Y DIRECTORY=/dm8/dexp/data FILESIZE=128m
2、dexp的参数介绍
参数 | 含义 | 备注 |
USERID | 数据库的连接信息 | 必选 |
FILE | 明确指定导出文件名称 | 可选。如果缺省该参数,则导出文件名为dexp.dmp |
DIRECTORY | 导出文件所在目录 | 可选 |
FULL | 导出整个数据库(N) | 可选,四者中选其一。缺省为SCHEMAS |
OWNER | 用户名列表,导出一个或多个用户所拥有的所有对象 | |
SCHEMAS | 模式列表,导出一个或多个模式下的所有对象 | |
TABLES | 表名列表,导出一个或多个指定的表或表分区 | |
FUZZY_MATCH | TABLES选项是否支持模糊匹配(N) | 可选 |
QUERY | 用于指定对导出表的数据进行过滤的条件。 | 可选 |
PARALLEL | 用于指定导出的过程中所使用的线程数目 | 可选 |
TABLE_PARALLEL | 用于指定导出每张表所使用的线程数,在MPP模式下会转换成单线程 | 可选 |
TABLE_POOL | 用于设置导出过程中存储表的缓冲区个数 | 可选 |
EXCLUDE | 1. 导出内容中忽略指定的对象。对象有CONSTRAINTS、INDEXES、ROWS、TRIGGERS和GRANTS。 比如:EXCLUDE= (CONSTRAINTS,INDEXES) | 可选 |
2. 忽略指定的表,使用TABLES:INFO格式,如果使用表级导出方式导出,则使用TABLES:INFO格式的EXCLUDE无效。例如:EXCLUDE= TABLES:table1,table2 | ||
3. 忽略指定的模式,使用SCHEMAS:INFO格式,如果使用表级,模式级导出方式导出,则使用SCHEMAS:INFO格式的EXCLUDE无效。例如:EXCLUDE=SCHEMAS:SCH1,SCH2 | ||
4. 忽略指定的视图,使用VIEWS:INFO格式。例如:EXCLUDE=VIEWS:view1,view2 | ||
INCLUDE | 导出内容中包含指定的对象 | 可选 |
例如:INCLUDE=(CONSTRAINTS,INDEXES) | ||
或者INCLUDE=TABLES:table1,table2 | ||
CONSTRAINTS | 导出约束 (Y) | 可选。 |
TABLESPACE | 导出的对象定义是否包含表空间(N) | 此处单独设置与和EXCLUDE/INCLUDE中批量设置功能一样。设置一个即可 |
GRANTS | 导出权限 (Y) | |
INDEXES | 导出索引 (Y) | |
TRIGGERS | 导出触发器(Y) | |
ROWS | 导出数据行 (Y) | |
LOG | 明确指定日志文件名称 | 可选,如果缺省该参数,则导出文件名为dexp.log |
NOLOGFILE | 不使用日志文件(N) | 可选 |
NOLOG | 屏幕上不显示日志信息(N) | 可选 |
LOG_WRITE | 日志信息实时写入文件 (N) | 可选 |
DUMMY | 交互信息处理: 打印(P), 所有交互都按YES处理(Y),NO(N)。默认为NO,不打印交互信息。 | 可选 |
PARFILE | 参数文件名,如果dexp的参数很多,可以存成参数文件 | 可选 |
FEEDBACK | 每 x 行显示进度 (0) | 可选 |
COMPRESS | 是否压缩导出数据文件(N) | 可选 |
ENCRYPT | 导出数据是否加密 (N) | 可选, |
ENCRYPT_PASSWORD | 导出数据的加密密钥 | 和ENCRYPT同时使用 |
ENCRYPT_NAME | 导出数据的加密算法 | 可选。 |
和ENCRYPT、ENCRYPT_PASSWORD同时使用。缺省为RC4 | ||
FILESIZE | 用于指定单个导出文件大小的上限。可以按字节[B]、K[B]、M[B]、G[B]的方式指定大小 | 可选 |
FILENUM | 多文件导出时,一个模板可以生成文件数,范围为[1,99],缺省为99 | 可选 |
DROP | 导出后删除原表,但不级联删除 (N) | 可选 |
DESCRIBE | 导出数据文件的描述信息,记录在数据文件中 | 可选 |
FLASHBACK_SCN | 用于指定导出表数据的闪回LSN,和FLASHBACK_TIME一起使用时只有一个能生效,参数位置靠后的生效 | 可选 |
FLASHBACK_TIME | 用于指定导出表数据的闪回时间,和FLASHBACK_SCN一起使用时只有一个能生效,参数位置靠后的生效 | 可选 |
COL_DEFAULT_SEPARATE | 是否单独导出列,缺省值 (Y) | 可选 |
WITH_UR | 导出表数据是否允许脏读(N) | 可选 |
SIMPLE_LOG | 导出日志是否使用简要日志(N) | 可选 |
CTRL_INFO | 控制信息用来控制一些特殊情况导出,缺省为0 | 可选 |
HELP | 显示帮助信息 | 可选 |
三、dimp工具
1、语法:dimp PARAMETER=value { PARAMETER=value } 或 dimpdp PARAMETER=value { PARAMETER=value }
例如:将逻辑备份采用 FULL 方式完全导入到用户名和密码为 SYSDBA,IP 地址为 192.168.176.111,端口号为5238的数据库。导入文件名为 db_str.dmp,导入的日志文件名为 db_str.log,路径为/dm8/data/dexp。
./dimp USERID=SYSDBA/SYSDBA@192.168.176.111:5238 FILE=db_str.dmp DIRECTORY=/dm8/data/dexp LOG=db_str.log FULL=Y
FILE和LOG中指定的路径,优先级高于DIRECTORY中指定的路径,当FILE和LOG不指定路径时,才使用DIRECTORY指定的路径,如果都没有指定路径,则使用系统当前路径。
2、dimp的参数介绍
参数 | 含义 | 备注 |
USERID | 数据库的连接信息 | 必选 |
FILE | 输入文件,即dexp导出的文件 | 必选 |
DIRECTORY | 导入文件所在目录 | 可选 |
FULL | 导入整个数据库 | 可选,四者中选其一。缺省为SCHEMAS |
OWNER | 导入指定的用户名下的模式 | |
SCHEMAS | 导入的模式列表 | |
TABLES | 表名列表,指定导入的tables名称。不支持对外部表进行导入 | |
PARALLEL | 用于指定导入的过程中所使用的线程数目 | 可选 |
TABLE_PARALLEL | 用于指定导入的过程中每个表所使用的子线程数目 | 可选。在FAST_LOAD为Y时有效 |
IGNORE | 忽略创建错误 (N)。如果表已经存在则向表中插入数据,否则报错表已经存在。 | 可选 |
TABLE_EXISTS_ACTION | 需要的导入表在目标库中存在时采取的操作[SKIP | APPEND | TRUNCATE | REPLACE | TRUNCATE_CASCADE] | 可选 |
FAST_LOAD | 是否使用dmfldr进行数据导入(N) | 可选 |
FLDR_ORDER | 使用dmfldr是否需要严格按顺序来导数据(Y) | 可选 |
COMMIT_ROWS | 批量提交的行数(5000) | 可选 |
EXCLUDE | 忽略指定的对象 (CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS)。格式 EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) | 可选。例如 EXCLUDE=( CONSTRAINT) |
GRANTS | 导入权限 (Y) | 可选 |
CONSTRAINTS | 导入约束 (Y) | 可选 |
INDEXES | 导入索引 (Y) | 可选 |
TRIGGERS | 导入触发器(Y) | 可选 |
ROWS | 导入数据行 (Y) | 可选 |
LOG | 日志文件 | 可选 |
NOLOGFILE | 不使用日志文件(N) | 可选 |
NOLOG | 屏幕上不显示日志信息(N) | 可选 |
DUMMY | 交互信息处理: 打印(P)。取值Y/N。 | 可选 |
Y:打印所有交互信息。N:不打印交互信息。 | ||
LOG_WRITE | 日志信息实时写入文件(N) | 可选 |
PARFILE | 参数文件名,如果dimp的参数很多,可以存成参数文件 | 可选 |
FEEDBACK | 显示每 x 行 (0) 的进度 | 可选 |
COMPILE | 编译过程, 程序包和函数 (Y) | 可选 |
INDEXFILE | 将表的索引/约束信息写入指定的文件 | 可选 |
INDEXFIRST | 导入时先建索引(N) | 可选 |
REMAP_SCHEMA | SOURCE_SCHEMA:TARGET_SCHEMA 将SOURCE_SCHEMA中的数据导入到TARGET_SCHEMA中 | 可选 |
ENCRYPT_PASSWORD | 数据的加密密钥 | 可选。和dexp中的ENCRYPT_PASSWORD设置的密钥一样 |
ENCRYPT_NAME | 数据的加密算法的名称 | 可选。和dexp中的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(N) | 可选 |
PRIMARY_CONFLICT | 主键冲突的处理方式[IGNORE|OVERWRITE|OVERWRITE2],默认报错 | 可选 |
TABLE_FIRST | 是否强制先导入表 (缺省N),Y表示先导入表,N正常导入 | 可选 |
SHOW_SERVER_INFO | 是否显示服务器信息 (缺省N),Y表示显示导出文件对应服务器信息,实际不导入,N表示不显示导出文件对应服务器信息,正常导入 | 可选 |
IGNORE_INIT_PARA | 不忽略建库参数差异(0), 忽略CASE_SENSITIVE(1),忽略LENGTH_IN_CHAR(2),忽略CASE_SENSITIVE和LENGTH_IN_CHAR(3) | 可选 |
AUTO_FREE_KEY | 导入数据完成后, 是否释放密钥(N):是(Y), 否(N) | 可选 |
REMAP_TABLE | 格式(SOURCE_SCHEMA.SOURCE_TABLE:TARGET_TABLE), 将SOURCE_TABLE中的数据导入到TARGET_TABLE中 | 可选 |
REMAP_TABLESPACE | 格式(SOURCE_TABLESPACE:TARGET_TABLESPACE) 将SOURCE_TABLESPACE表空间映射到TARGET_TABLESPACE表空间中 | 可选 |
SIMPLE_LOG | 导入日志是否使用简要日志(N) | 可选 |
HELP | 显示帮助信息 | 可选 |
达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台