12. DEXP_DIMP逻辑导出导入的使用

前言

逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成,联机方式是指数据库服务器正常运行过程中进行的备份和还原。dexp 和 dimp 是 DM 数据库自带的工具,只要安装了 DM 数据库,就可以在安装目录/dmdbms/bin 中找到。

功能简介

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

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

注意事项

  • 数据库版本 :源端导出的客户端版本号要低于导入目的端客户端版本号;
  • 参数一致 : 页大小、簇大小以及字符集编码必须一致,大小写是否敏感、VARCHAR类型是否以字符为单位需要配置 IGNORE_INIT_PARA 忽略差异;
  • 导入导出保持一致 : 全库导出的DMP,目的端需要全库导入;按用户权限导出的DMP,目的端所使用用户权限要保持一致;
  • 导入导出模式不同 : 需要使用命令行配置参数 REMAP_SCHEMA 映射源端模式名与目的端模式名;

DEXP 工具常规使用

  • 参数 USERID 必须置于首位,此外的多个参数之间排列顺序无影响,参数之间使用空格间隔;
## 导出模式 USER01 模式下的所有对象。
dexp USERID=SYSDBA/SYSDBA@192.168.30.179:5237 FILE=db_str.dmp LOG=db_str.log SCHEMAS=USER01 DIRECTORY=/mnt/data/dexp 

## 导出 table1,table2 两张表的所有数据和信息。
dexp USERID=SYSDBA/SYSDBA@192.168.30.179:5237 FILE=db_str.dmp LOG=db_str.log TABLES=table1,table2 DIRECTORY=/mnt/data/dexp

## FUZZY_MATCH 用于指定 TABLES 选项是否支持模糊匹配
dexp USERID=SYSDBA/SYSDBA@192.168.30.179:5237 FILE=db_str.dmp LOG=db_str.log TABLES=OTHER.R% FUZZY_MATCH=Y

## QUERY 用于指定过滤条件来对表数据进行导出
dexp USERID=SYSDBA/SYSDBA@192.168.30.179:5237 FILE=db_str.dmp LOG=db_str.log TABLES=OTHER.READER QUERY="WHERE AGE=19"

## PARALLEL 用于指定导出的过程中所使用的线程数目,如果CPU 核心数为 N 的话,那一般来说 PARALLEL 为 N 或者 N+1 最合适
dexp USERID=SYSDBA/SYSDBA@192.168.30.179:5237 FILE=db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dexp PARALLEL=2

## TABLE_PARALLEL 用于指定导出每张表所使用的线程数。可选参数,缺省为单线程。如果 CPU 核数为 N 的话,那一般来说 TABLE_PARALLEL 为 N 或者 N+1 最合适
dexp USERID=SYSDBA/SYSDBA@192.168.30.179:5237 FILE=db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dexp TABLE_PARALLEL=3

## EXCLUDE 用来批量设置导出时忽略的对象种类,将当前用户下的 table1、table2 的对象信息导出时不导出约束
dexp SYSDBA/SYSDBA192.168.30.179:5237 FILE=/mnt/data/db_str.dmp LOG=db_str.log TABLES=table1,table2 EXCLUDE=/(CONSTRAINTS/)

## INCLUDE 用来批量设置导出时包含的对象种类。可选参数。<对象种类名>:CONSTRAINTS、INDEXES、ROWS、TRIGGERS 或 GRANTS。
dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=table1 DIRECTORY=/mnt/data/dexp INCLUDE=/(CONSTRAINTS,INDEXES/) 

DEXP 参数解析

  • 如果单独设置和批量设置同时出现时,那么以最后出现的那个为准;
  • CONSTRAINTS:设置是否导出约束,可选参数。取值范围:Y/N。Y:导出约束,缺省值;N:不导出约束。
  • TABLESPACE:设置导出的对象定义中是否包含表空间,可选参数。取值范围:N/Y。N:不包含表空间,缺省值;Y:包含表空间。
  • GRANTS:设置是否导出权限,可选参数。取值范围:Y/N。Y:导出权限,缺省值;N:不导出权限。
  • INDEXES:设置是否导出索引,可选参数。取值范围:Y/N。Y:导出索引,缺省值;N:不导出索引。
  • TRIGGERS:设置是否导出触发器,可选参数。取值范围:Y/N。Y:导出触发器,缺省值;N:不导出触发器。
  • ROWS:设置是否导出数据,可选参数。取值范围:Y/N。Y:导出数据,缺省值;N:不导出数据。
  • NOLOGFILE 用于设置是否使用日志文件。可选参数。
  • NOLOG 设置屏幕上是否显示日志信息。可选参数。
  • LOG_WRITE 用于日志信息实时写入日志文件。可选参数。
  • DUMMY 用于设置交互信息处理。可选参数,缺省使用 P 打印交互信息。Y:不提供交互界面,所有交互都按 YES 处理。N:不提供交互界面,所有交互都按 NO 处理。
  • PARFILE 用于将常用的参数设置保存到文件中。
  • FEEDBACK 用来指明在导出数据的过程中每间隔多少行打印一次进度信息。
  • COMPRESS 指定是否压缩导出文件。可选参数。缺省为不压缩。
  • ENCRYPT、ENCRYPT_PASSWORD、ENCRYPT_NAME 三个参数用来设置导出文件加密。可选参数。
  • FILESIZE 用于指定单个导出文件(FILE)大小或日志文件(LOG)大小的上限。可以按字节[B]、K[B]、M[B]、G[B]的方式指定大小。可选参数。
  • FILENUM 用于指定一个模板导出文件的个数。取值范围为 1~99,缺省为 99。可选参数。FILENUM 需要和 FILESIZE 搭配使用 FILENUM*FILESIZE 要大于等于导出的文件总大小,否则会报错空间不足。
  • DESCRIBE 用于设置导出数据文件的描述信息,记录在数据文件中。可选参数。
  • COL_DEFAULT_SEPARATE 用于设置是否单独导出列默认值。可选参数。
  • WITH_UR 用于设置导出数据是否允许脏读。可选参数。
  • SIMPLE_LOG 用于设置导出日志是否只打印简要日志,简要日志只打印导出对象个数和导出表数据行数。可选参数。

DIMP 工具常规使用

## PARALLEL 用于指定导入的过程中所使用的线程数目,如果CPU 核数为 N 的话,PARALLEL 为 N 或者 N+1 最合适。
dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dimp PARALLEL=2
## TABLE_PARALLEL 在 FAST_LOAD 为 Y 时有效,用于指定导入每张表所使用的线程数,在 MPP 模式下会转换成单线程。
dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dimp TABLE_PARALLEL=3
## 设置 EXCLUDE=(CONSTRAINTS),将当前用户下的 table1、table2 的对象信息导入时不导入约束。
dimp SYSDBA/SYSDBA FILE=/mnt/data/db_str.dmp LOG=db_str.log TABLES=table1,table2 EXCLUDE=/(CONSTRAINTS/)DIRECTORY=/mnt/data/dimp
## 设置 ROWS=N 不导入表中的数据。
dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp NOLOGFILE=Y FULL=Y DIRECTORY=/mnt/data/dimp ROWS=N
## 用于将表的索引/约束创建信息写入指定的文件。
dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y INDEXFILE=/mnt/data/dimp/dimp.log

DIMP 参数解析

  • IGNORE 指定忽略创建数据库对象(表、类、java 类、domain、sequence、comment、view、synonym、trigger、package、dblink、user、存储过程/函数、role 对象创建、权限授权语句、索引、约束等)错误。可选参数。缺省为 N,不忽略。
  • TABLE_EXISTS_ACTION 用于要导入的表已经存在时的处理方式。TABLE_EXISTS_ACTION=[SKIP | APPEND | TRUNCATE | REPLACE]
  • FAST_LOAD 用于设置是否使用 dmfldr 进行数据导入,缺省为 N。当 FAST_LOAD=Y 时 才 可 以 设 置 TABLE_PARALLEL 参 数 , 否则TABLE_PARALLEL 参数无效。
  • FLDR_ORDER 用于设置使用 dmfldr 时,是否严格按导出顺序来导入数据。FLDR_ORDER=Y/N,Y:表示按照导出顺序来导入数据,缺省值。
  • COMMIT_ROWS 用于设置批量提交的行数,缺省为 5000 行。
  • EXCLUDE 用来批量设置导入时忽略的对象种类。
  • GRANTS:设置是否导入权限,可选参数。取值范围:Y/N。Y:导入权限,缺省值;N:不导入权限。
  • CONSTRAINTS:设置是否导入约束,可选参数。取值范围:Y/N。Y:导入约束,缺省值;N:不导入约束。
  • INDEXES:设置是否导入索引,可选参数。取值范围:Y/N。Y:导入索引,缺省值;N:不导入索引。
  • TRIGGERS:设置是否导入触发器,可选参数。取值范围:Y/N。Y:导入触发器,缺省值;N:不导入触发器。
  • ROWS:设置是否导入数据,可选参数。取值范围:Y/N。Y:导入数据,缺省值;N:不导入数据。
  • NOLOGFILE 用于设置是否使用日志文件。可选参数。
  • NOLOG 设置屏幕上是否显示日志信息。可选参数。
  • LOG_WRITE 用于日志信息实时写入日志文件。可选参数。
  • DUMMY 用于设置交互信息处理。可选参数,缺省使用 P 打印交互信息。Y:不提供交互界面,所有交互都按 YES 处理。N:不提供交互界面,所有交互都按 NO 处理。
  • PARFILE 用于将常用的参数设置保存到文件中。
  • FEEDBACK 用来指明在导出数据的过程中每间隔多少行打印一次进度信息。
  • COMPILE 如果导入时包含过程/函数、视图、物化视图、触发器、类和包,用于设置是否在导入时对过程或函数执行编译。编译相当于执行重建操作,用于检查过程或函数是否还有效。
  • INDEXFILE 用于将表的索引/约束创建信息写入指定的文件。
  • INDEXFIRST 用于设置导入时是否先建索引。可选参数。
  • REMAP_SCHEMA 将源模式中的数据导入到目标模式中。可选参数。<SOURCE_SCHEMA>:<TARGET_SCHEMA>
  • ENCRYPT_PASSWORDENCRYPT_PASSWORD、ENCRYPT_NAME 如果数据文件是通过加密后得到的,在数据文件导入到数据库时,需要提供加密密钥和加密算法。
  • DESCRIBE 用于设置导出数据文件的描述信息,记录在数据文件中。可选参数。
  • TASK_THREAD_NUMBER 用于设置 dmfldr 处理用户数据的线程数目。但当 CPU 个数大于 8 时,默认值都被置为 8。
  • BUFFER_NODE_SIZE 用于设置 dmfldr 指定读取文件缓冲区页大小。值越大,缓冲区的页数越多,每次可以读取的数据就越多,每次发送到服务器的数据也就越多,效率越高。
  • TASK_SEND_NODE_NUMBER 用于设置 dmfldr 发送节点个数。
  • PPIMARY_CONFLICT 用于设置主键冲突的处理方式。PRIMARY_CONFLICT=[IGNORE|OVERWRITE|OVERWRITE2]。
  • TABLE_FIRST 用于控制是否强制先导入表对象。可选参数,缺省为 N。
  • SHOW_SERVER_INFO 用于控制是否显示服务器信息。可选参数,缺省为 N。
  • IGNORE_INIT_PARA 用于指定源库和目标库之间忽略差异的建库参数。
  • REMAP_TABLE 将源表中的数据导入到目的表中。可选参数。
  • REMAP_TABLESPACE 将源表空间中的数据导入到目的表空间中。使用该参数的前提是导出文件中包含源表表空间。
  • SIMPLE_LOG 用于设置导入日志是否只打印简要日志,简要日志只打印导入对象个数和导入表数据行数。

参考内容

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值