DM8_dexp 和 dimp 使用手册学习笔记

介绍逻辑备份还原(联机方式下完成)


一、功能介绍

  • DM数据库的备份还原包括两种类型:物理备份还原逻辑备份还原
    • 物理备份还原是对数据库的操作系统物理文件(如数据文件、控制文件和日志文件等)的备份还原。(例如RMAN工具)
    • 逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。(例如使用dexp和dimp进行的备份还原)
      • 逻辑导出(dexp)——逻辑备份
      • 逻辑导入(dimp)——逻辑还原
  • 逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。四种级别独立互斥,不能同时存在。四种级别所提供的功能:
    • 数据库级(FULL):导出或导入整个数据库中的所有对象;
    • 用户级(OWNER):导出或导入一个或多个用户所拥有的所有对象;
    • 模式级(SCHEMAS):导出或导入一个或多个模式下的所有对象;
    • 表级(TABLES):导出或导入一个或多个指定的表或表分区。

二、dexp逻辑导出

  • dexp工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备份
  • 可选是否备份索引、数据行和权限,是否忽略各种约束(外键约束、非空约束、唯一约束等)
  • 备份前还可选生成日志文件,记录备份的过程以供查看
  • dexp工具名称有两种写法dexp和dexpdp。语法完全相同,唯一的区别在于dexp导出的文件必须存放在客户端dexpdp导出的文件必须存放在服务器端

2.1 使用dexp工具

dexp PARAMETER=<value> { PARAMETER=<value> }
或
dexpdp PARAMETER=<value> { PARAMETER=<value> }

多个参数之间排列顺序无影响,参数之间使用空格间隔

2.2 dexp参数一览表

其他使用 ./dexp help查询
其他使用 ./dexp help查询

2.3 dexp参数详解

2.3.1 特殊参数(必选参数的和最常用的可选参数)

2.3.1.1 USERID

指定数据库连接信息,必选

{{<username>[/<password>]} | /}[@<connect_identifier>][<option>] [<os_auth>] 
<connect_identifier> ::=<svc_name> | {<host>[:<port>]} | <unixsocket_file>
<option>::= #{ <exetend_option>=<value>{,<extend_option>=<value>} } //此行外层{}是为了封装参数之用,书写时需要保留
<os_auth>::= AS {SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO}
2.3.1.2 FILE

明确指定导出的文件,可以多个文件逗号分隔,可选,默认dexp.dmp

FILE=<文件>

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

文件也可以在生成过程中自动扩展成多个。首先,文件名需要包含通配符%U,用于作为自动扩充文件的文件名模板。%U 表示为 2 个字符宽度的数字,由系统自动生成,起始为 01。其次,使用FILESIZE参数来指定文件的大小

2.3.1.3 LOG

明确指定导出过程产生的日志文件名称(可以包含路径),可多个文件用逗号分隔。可选,默认dexp.log

LOG=<文件名>

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

文件也可以在生成过程中自动扩展成多个。首先,文件名需要包含通配符%U,用于作为自动扩充文件的文件名模板。%U 表示为 2 个字符宽度的数字,由系统自动生成,起始为 01。其次,使用FILESIZE参数来指定文件的大小

LOG日志格式介绍如下:

  1. 导出级别为TABLES,日志信息包含一张或多张表的索引、权限、数据行数
  2. 导出级别为SCHEMAS,日志信息只包含一个或多个模式中的对象统计信息,每个模式下的内容具体有:
    • 导出SEQUENCE、VIEW、COMMENT、PROCEDURE、SYNONYM、DBLINK、TRIGGER、PACKAGE、OBJECT、CLASS_BODY和DOMAIN等对象的个数和名称,以及对象的权限
    • 依次导出表的索引、权限、数据行数
  3. 导出级别为OWNER,日志内容包含一个或多个用户所拥有的所有模式中的对象统计信息,每个模式下的内容和导出级别为SCHEMAS时一样
  4. 如果导出级别为FULL,那么日志内容除了包含所有模式中的对象信息,还包括系统
    包和系统视图

和LOG有关的参数还有NOLOGFILE、NOLOG和LOG_WRITE。NOLOGFILE=Y 用于设置不使用日志文件。NOLOG=Y 用于设置不在屏幕上显示日志信息。LOG_WRITE=Y 用于设置日志的实时打印(到日志文件)功能

2.3.1.4 DIRECTORY

用于指定导出文件及日志文件生成的路径,可选,缺省为导出到dexp所在路径

DIRECTORY=<path>

如果FILE和LOG参数指定的文件包含生成路径,则FILE和LOG参数中指定的路径将替代 DIRECTORY 所指定的路径;如果FILE和LOG参数指定的文件未包含路径信息,则文件将被生成到DIRECTORY指定的目录下;如果都没有指定路径,程序将根据当前的运行环境来设置相应的导出路径,一般为当前路径
在使用dexpdp和dimpdp时,DIRECTORY参数支持使用在服务器端通过CREATE DIRECTORY定义的目录名

2.3.1.5 四种级别的导出方式

对于小写的用户名、模式名和表名,为了不转换为大写,需要转义。如果用户名、模式名和表名中含有特殊字符(双引号、单引号、空格、逗号等),则也需要进行转义

2.3.1.5.1 FULL

导出数据库的所有对象

FULL=Y
2.3.1.5.2 OWNER

导出一个或多个用户拥有的所有对象

OWNER=<用户名>{,<用户名>}
2.3.1.5.3 SCHEMAS(缺省)

SCHEMAS 方式的导出一个或多个模式下的所有对象

SCHEMAS=<模式名>{,<模式名>}

一般情况下OWNER与SCHEMAS导入导出是相同的。但用户可以包含多个模式,在这种情况下SCHEMAS的导入导出是OWNER导入导出的一个子集

2.3.1.5.4 TABLES

导出和导入一个或多个指定的表或表分区。导出所有数据行、约束、索引等信息

TABLES=<表名>{,<表名>}

和 TABLES 导出有关的参数还有 QUERY、EXCLUDE 和 INCLUDE,都是用来设置过滤条件的

2.3.2 普通参数(具有特殊作用的可选参数)

FUZZY_MATCH用于指定 TABLES 选项是否支持模糊匹配。可选参数,缺省为 N。

FUZZY_MATCH=N/Y

QUERY用于指定过滤条件来对表数据进行导出。可选参数。

QUERY="<where_condition>"

PARALLEL用于指定导出的过程中所使用的线程数目。可选参数,缺省为单线程。
如果CPU核心数为N,一般来说PARALLEL为N或者N+1最合适。

PARALLEL=<num>

TABLE_PARALLEL 用于指定导出每张表所使用的线程数。可选参数,缺省为单线程。
如果CPU核数为N,一般来说TABLE_PARALLEL为N或者N+1最合适。在MPP模式下会转换成单线程

TABLE_PARALLEL=<num>

TABLE_POOL用于设置导出过程中存储表数据的缓冲区个数。可选参数。

TABLE_POOL=<num>

TABLE_PARALLEL固定的情况下,导出时间随着TABLE_POOL个数的增加而减少。当TABLE_POOL稍大于TABLE_PARALLEL时结果为最优
EXCLUDE用来批量设置导出时忽略的对象种类。可选参数。

EXCLUDE=(<对象种类名>{,<对象种类名>})
或
EXCLUDE=TABLES:<表名>{,<表名>}
或
EXCLUDE=SCHEMAS:<模式名>{,<模式名>}
或
EXCLUDE=VIEWS:<视图名>{,<视图名>}

<对象种类名>:包括CONSTRAINTS、INDEXES、ROWS、TRIGGERS、GRANTS
如果导出方式为TABLES表级或SCHEMAS 模式级导出时,EXCLUDE=SCHEMAS:<模式名>{,<模式名>}排除模式不起作用
INCLUDE用来批量设置导出时包含的对象种类。可选参数。

INCLUDE=(<对象种类名>{,<对象种类名>})
或
INCLUDE=TABLES:<表名>{,<表名>}

CONSTRAINTSTABLESPACEGRANTSINDEXESTRIGGERSROWS这些参数用来指定某类对象是否被导出。类别分别为约束、表空间、权限、索引、触发器和数据

CONSTRAINTS = Y/N
TABLESPACE = N/Y
GRANTS = Y/N
INDEXES = Y/N
TRIGGERS = Y/N
ROWS = Y/N

NOLOGFILE用于设置是否使用日志文件。可选参数。

NOLOGFILE=Y/N
Y:不使用。
N:使用,缺省值。

NOLOG设置屏幕上是否显示日志信息。可选参数。

NOLOG=Y/N
Y:不显示。
N:显示,缺省值。

LOG_WRITE用于日志信息实时写入日志文件。可选参数。

LOG_WRITE=Y/N
Y:一边将日志内容打印到屏幕上,一边将日志内容写入日志文件。
N:日志内容先在屏幕上全部打印完毕再写入日志文件,缺省值。

DUMMY用于设置交互信息处理。可选参数,缺省使用P打印交互信息。在使用dexpdp的时候,此参数无需设置,不提供交互信息,全部按YES处理。

DUMMY=P/Y/N
P:提供交互界面,缺省方式。当导出文件已存在的时候,提供是否覆盖交互界面。
Y:不提供交互界面,所有交互都按 YES 处理。
N:不提供交互界面,所有交互都按 NO 处理。

PARFILE用于将常用的参数设置保存到文件中,然后使用参数文件 PARFILE 进行导出、导入操作。可选参数。

PARFILE=<path>

FEEDBACK 用来指明在导出数据的过程中每间隔多少行打印一次进度信息。可选参数。当参数缺省时,默认为 0,只打印导出表的总行数

FEEDBACK=<num>

COMPRESS指定是否压缩导出文件。可选参数。缺省为不压缩

COMPRESS=Y/N

ENCRYPT=Y:设置导出文件加密。如果设置 ENCRYPT=Y,那么默认 COMPRESS=Y,先压缩后加密
ENCRYPT_PASSWORD=<加密密钥>:设置加密密钥。支持最大长度为 255
ENCRYPT_NAME=<加密算法>:设置加密算法。缺省为 RC4

ENCRYPT=Y
ENCRYPT_PASSWORD=<加密密钥>
ENCRYPT_NAME=<加密算法>

加密算法:DES_ECB 、DES_CBC 、DES_CFB、DES_OFB、DESEDE_ECB、DESEDE_CBC 、DESEDE_CFB、DESEDE_OFB 、AES128_ECB 、 AES128_CBC 、AES128_CFB 、AES128_OFB 、AES192_ECB 、AES192_CBC 、AES192_CFB 、AES192_OFB 、AES256_ECB 、AES256_CBC 、AES256_CFB 、AES256_OFB 、RC4
ENCRYPT、ENCRYPT_PASSWORD、ENCRYPT_NAME 经常一起使用。如果只设置 ENCRYPT_PASSWORD 一个,那么默认 ENCRYPT=Y,ENCRYPT_NAME 缺省值 RC4
FILESIZE用于指定单个导出文件(FILE)大小或日志文件(LOG)大小的上限。可以按字节[B]、K[B]、M[B]、G[B]的方式指定大小。可选参数。
使用FILESIZE参数时,FILE(或 LOG)必须使用%U对名称进行自动扩展,否则报错。
如果不指定FILE(或LOG),那么即使设置了FILESIZE也不起作用。FILE和LOG同时使用%U 时,FILESIZE参数只需指定一次

FILESIZE=<num>

FILENUM用于指定一个模板导出文件的个数。取值范围为1~99,缺省为 99。可选参数。FILENUM需要和FILESIZE搭配使用,FILENUM*FILESIZE要大于等于导出的文件总大小,否则会报错空间不足

DROP用于设置导出后是否删除原表。可选参数。

DROP=Y/N
Y:导出后删除原表,但不级联删除。
N:导出后不删除原表,缺省值。

DESCRIBE用于设置导出数据文件的描述信息,记录在数据文件中。可选参数。

DESCRIBE='字符串'

字符串:设置导出数据文件的描述信息,记录在数据文件中。缺省时,导出的数据文件中没有描述信息

CTRL_INFO 控制信息。可选参数,默认(0)。

CTRL_INFO=[n]

n 取值为整形值
1:控制分区表约束在表定义导出
0: 分区表约束分开导出

FLASHBACK_SCN用于指定导出表数据的闪回LSN。可选参数。由于dexp闪回导出是通过闪回查询方式实现,闪回查询功能存在的限制在 dexp 同样存在

FLASHBACK_SCN=LSN
LSN:可以通过查询动态视图 V$RLOG 或 V$LSN_TIME 来确定。

FLASHBACK_TIME用于指定导出表数据的闪回时间。可选参数。

FLASHBACK_TIME="time_exp"
time_exp:时间字符串。

COL_DEFAULT_SEPARATE用于设置是否单独导出列默认值。可选参数。

COL_DEFAULT_SEPARATE=Y/N
Y:单独导出列默认值,缺省值。
N:列默认值和表定义一起导出。

WITH_UR用于设置导出数据是否允许脏读。可选参数。

WITH_UR=N/Y
N:导出表数据不允许脏读,缺省值。
Y:导出表数据允许脏读。

SIMPLE_LOG用于设置导出日志是否只打印简要日志,简要日志只打印导出对象个数和导出表数据行数。可选参数。

SIMPLE_LOG=N/Y
N:导出日志不使用简要日志,缺省值。
Y:导出日志使用简要日志。

三、dimp逻辑导入

  • dimp逻辑导入工具利用dexp工具生成的备份文件对本地或远程的数据库进行联机逻辑还原
  • dimp导入是dexp导出的相反过程
  • 还原的方式可以灵活选择,如是否忽略对象存在而导致的创建错误、是否导入约束、是否导入索引、导入时是否需要编译、是否生成日志等
  • dimp工具名称有两种写法dimp和dimpdp。两者语法完全相同,唯一的区别在于,dimp导入的文件必须存放在客户端dimpdp导入的文件必须存放在服务器端

3.1 使用dimp工具

dimp PARAMETER=<value> { PARAMETER=<value> }
或
dimpdp PARAMETER=<value> { PARAMETER=<value> }

多个参数之间排列顺序无影响,参数之间使用空格间隔

3.2 dimp参数一览表

其他运行./dimp help查询
在这里插入图片描述

3.3 dimp参数详解

与2.3类似,此章节略

3.3.1 特殊参数(必选参数的和最常用的可选参数)

3.3.2普通参数(具有特殊作用的可选参数)

四、dexp和dimp应用实例

4.1 一个完整示例

环境准备

  • 导出库:环境为linux,服务器为192.168.32.128,用户名密码均为SYSDBA。端口号5236
  • 导入库:环境为linux,服务器为 192.168.32.128,用户名密码均为SYSDBA。准备一个空数据库作为导入库,端口号为 5237

dexp导出
导出数据库的所有对象(FULL=Y),导出文件为 dexp01.dmp,导出日志为 dexp01.log,导出文件和日志文件都存放在/home/dmdba/data/dexp目录中
在这里插入图片描述
dimp导入
导入 SYSDBA模式中的数据(SCHEMAS=SYSDBA),导入文件就是上一步导出的文件dexp01.dmp,导入日志dimp02.log放 入/home/dmdba/data/dimp目录中
在这里插入图片描述

查看log日志

查看日志dexp01.log和dexp02.log
在这里插入图片描述

在这里插入图片描述

4.2 使用关联参数示例

使用加密相关参数ENCRYPT、ENCRYPT_PASSWORD、ENCRYPT_NAME 进行导出导入
环境准备

  • 导出库:环境为linux,服务器为192.168.0.248,用户名和密码均为SYSDBA。导出的是DM数据库系统安装时自带的名为BOOKSHOP的示例库,端口号 5236。
  • 导入库:环境为 linux,服务器为 192.168.0.248,用户名和密码均为SYSDBA。准备一个空数据库作为导入库,端口号为 8889。

dexp导出
导出数据库的所有对象(FULL=Y),导出文件为dexp03.dmp,导出日志为dexp03.log,导出文件和日志文件都存放在/emc_2/data/dexp 目录中
使用加密参数ENCRYPT、ENCRYPT_PASSWORD、ENCRYPT_NAME,对到出库进行加密

dimp导入
导入整个数据库(FULL=Y),导入文件就是上一步导出的文件dexp03.dmp,导入日志dimp04.log放入/emc_2/data/dimp目录中。
在导入的过程中,要提供ENCRYPT_PASSWORD、ENCRYPT_NAME两个参数,这两个参数值必须和导出时一样。

查看log日志

查看日志dexp03.log和dexp04.log

五、升级和降级

  • V8.1.2.69版本开始,对创建用户口令新增了<加盐选项>
  • <加盐选项>包含SALTNO SALT,缺省为NO SALT。 之前的版本都是缺省情况
  • 当遇到下面情景:先导出 V8.1.2.69 之后的口令加盐的库,再导入到
    V8.1.2.69 之前的口令未加盐的库,将不能成功。
    解决办法:在导出之前,DBA 先检查待导出库用户口令是否使用了加盐SALT。 如果是,那么DBA需要先使用ALTER语句将用户口令调整为NO SALT,再做导出导入。前后版本的口令都是NO SALT
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值