达梦数据库DEXP/DIMP逻辑备份还原

1、概念

逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成,即在数据库服务器正常运行过程中进行的备份和还原。

2、DEXP

DEXP逻辑导出有FULL、OWNER、SCHEMAS、TABLES四种级别的。

2.1全库备份

FULL 方式导出数据库的所有对象。

[dmdba@lei2 ~]$ dexp USERID=lei/leileilei FILE=fulldb0903.dmp LOG=fulldb0903.log FULL=Y DIRECTORY=/dmdba/dmbak/
...
整个导出过程共花费    7.295 s
成功终止导出, 没有出现警告

[dmdba@lei2 ~]$ ll /dmdba/dmbak/
total 360
-rw-rw-r-- 1 dmdba dmdba 345188 Sep  2 15:22 fulldb0903.dmp
-rw-rw-r-- 1 dmdba dmdba  19824 Sep  2 15:22 fulldb0903.log

2.2OWNER备份

OWNER 方式导出一个或多个用户拥有的所有对象。

[dmdba@lei2 ~]$ dexp USERID=lei/leileilei FILE=lei0903.dmp LOG=lei0903.log OWNER=lei DIRECTORY=/dmdba/dmbak
...
整个导出过程共花费    0.328 s
成功终止导出, 没有出现警告
[dmdba@lei2 ~]$ ll /dmdba/dmbak/*lei*
-rw-rw-r-- 1 dmdba dmdba 204506 Sep  2 15:27 /dmdba/dmbak/lei0903.dmp
-rw-rw-r-- 1 dmdba dmdba   2187 Sep  2 15:27 /dmdba/dmbak/lei0903.log

2.3SCHEMA备份

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

[dmdba@lei2 ~]$ dexp USERID=lei/leileilei FILE=schema_lei0903.dmp LOG=schema_lei0903.log SCHEMAS=lei DIRECTORY=/dmdba/dmbak
...
整个导出过程共花费    0.318 s
成功终止导出, 没有出现警告
[dmdba@lei2 ~]$ ll /dmdba/dmbak/schema*
-rw-rw-r-- 1 dmdba dmdba 204232 Sep  2 15:29 /dmdba/dmbak/schema_lei0903.dmp
-rw-rw-r-- 1 dmdba dmdba   2142 Sep  2 15:29 /dmdba/dmbak/schema_lei0903.log

2.4TABLE备份

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

[dmdba@lei2 ~]$ dexp USERID=lei/leileilei FILE=lei_t2.dmp LOG=lei_t2.log TABLES=lei.t2 DIRECTORY=/dmdba/dmbak
...
整个导出过程共花费    0.095 s
成功终止导出, 没有出现警告
[dmdba@lei2 ~]$ ll /dmdba/dmbak/*t2*
-rw-rw-r-- 1 dmdba dmdba 113767 Sep  2 15:31 /dmdba/dmbak/lei_t2.dmp
-rw-rw-r-- 1 dmdba dmdba    427 Sep  2 15:31 /dmdba/dmbak/lei_t2.log

3、DIMP

DIMP导入也有四种级别:FULL、OWNER、SCHEMAS、TABLES。

3.1全库还原

FULL 方式导入数据库的所有对象。

SQL> drop user lei cascade;
操作已执行
已用时间: 48.362(毫秒). 执行号:65501.
[dmdba@lei2 ~]$ dimp USERID=SYSDBA/SYSDBA FILE=/dmdba/dmbak/lei0903.dmp  LOG=/dmdba/dmbak/dimp_lei0903.log FULL=Y DIRECTORY=/dmdba/dmbak
...
[2/13]整个导入过程共花费    0.048 s


成功终止导入, 出现9个警告

3.2OWNER还原

OWNER 方式导入一个或多个用户拥有的所有对象。

[dmdba@lei2 ~]$ dimp USERID=SYSDBA/SYSDBA FILE=/dmdba/dmbak/lei0903.dmp  LOG=/dmdba/dmbak/dimp_lei0903.log OWNER=lei DIRECTORY=/dmdba/dmbak
...
整个导入过程共花费    10.135 s

3.3SCHEMA还原

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

[dmdba@lei2 ~]$ dimp USERID=SYSDBA/SYSDBA FILE=/dmdba/dmbak/schema_lei0903.dmp  LOG=/dmdba/dmbak/dimp_schema_lei0903.log SCHEMAS=lei DIRECTORY=/dmdba/dmbak

3.4TABLE还原

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

扫描二维码关注公众号,回复: 17453119 查看本文章
[dmdba@lei2 ~]$ dimp USERID=SYSDBA/SYSDBA FILE=lei_t2.dmp LOG=dimp_lei_t2.log TABLES=lei.t2 DIRECTORY=/dmdba/dmbak

4、常用参数示例

4.1TABLE_EXISTS_ACTION

需要的导入表在目标库中存在时采取的操作[SKIP | APPEND | TRUNCATE | REPLACE | TRUNCATE_CASCADE]
SKIP:跳过此表。
APPEND:直接向现有表中导入数据。
TRUNCATE:先删除现有表中的数据,再向表中导入数据。
REPLACE:先删除现有表,再导数据。
TRUNCATE_CASCADE:先删除现有表中的数据,并且级联删除依赖表数据,再向表中导入数据。

[dmdba@lei2 ~]$ dimp USERID=SYSDBA/SYSDBA FILE=lei_t5.dmp LOG=dimp_lei_t5.log TABLES=lei.t5 DIRECTORY=/dmdba/dmbak TABLE_EXISTS_ACTION=REPLACE
[dmdba@lei2 ~]$ dimp USERID=SYSDBA/SYSDBA FILE=lei_t5.dmp LOG=dimp_lei_t5.log TABLES=lei.t5 DIRECTORY=/dmdba/dmbak TABLE_EXISTS_ACTION=APPEND
[dmdba@lei2 ~]$ dimp USERID=SYSDBA/SYSDBA FILE=lei_t5.dmp LOG=dimp_lei_t5.log TABLES=lei.t5 DIRECTORY=/dmdba/dmbak TABLE_EXISTS_ACTION=TRUNCATE
[dmdba@lei2 ~]$ dimp USERID=SYSDBA/SYSDBA FILE=lei_t5.dmp LOG=dimp_lei_t5.log TABLES=lei.t5 DIRECTORY=/dmdba/dmbak TABLE_EXISTS_ACTION=TRUNCATE_CASCADE
[dmdba@lei2 ~]$ dimp USERID=SYSDBA/SYSDBA FILE=lei_t5.dmp LOG=dimp_lei_t5.log TABLES=lei.t5 DIRECTORY=/dmdba/dmbak TABLE_EXISTS_ACTION=SKIP

4.2REMAP_SCHEMA

SOURCE_SCHEMA:TARGET_SCHEMA 将SOURCE_SCHEMA中的数据导入到TARGET_SCHEMA中。
<source_schema>:源模式。如果指定的源模式不存在,则导入到对象原来所在的模式。
<target_schema>:目标模式。如果目标模式不存在,先创建目标模式,再继续导入。

[dmdba@lei2 ~]$ dimp USERID=SYSDBA/SYSDBA FILE=lei_t5.dmp LOG=dimp_lei_t5.log TABLES=lei.t5 DIRECTORY=/dmdba/dmbak REMAP_SCHEMA=lei:ray
SQL> select count(*) from lei.t5;

行号     COUNT(*)            
---------- --------------------
1          2

已用时间: 0.564(毫秒). 执行号:9002.
SQL> select count(*) from ray.t5;

行号     COUNT(*)            
---------- --------------------
1          2

已用时间: 0.559(毫秒). 执行号:9003.

4.3REMAP_TABLESPACE

(SOURCE_TABLESPACE:TARGET_TABLESPACE)将SOURCE_TABLESPACE表空间映射到TARGET_TABLESPACE表空间中
<SOURCE_TABLESPACE>:源表空间。
<TARGET_TABLESPACE>:目的表空间。
[dmdba@lei2 ~]$ dimp USERID=SYSDBA/SYSDBA FILE=lei_t5.dmp LOG=dimp_lei_t5.log TABLES=lei.t5 DIRECTORY=/dmdba/dmbak REMAP_TABLESPACE=dmhr:main

4.3REMAP_TABLESPACE
(SOURCE_TABLESPACE:TARGET_TABLESPACE)将SOURCE_TABLESPACE表空间映射到TARGET_TABLESPACE表空间中
<SOURCE_TABLESPACE>:源表空间。
<TARGET_TABLESPACE>:目的表空间。
[dmdba@lei2 ~]$ dimp USERID=SYSDBA/SYSDBA FILE=lei_t5.dmp LOG=dimp_lei_t5.log TABLES=lei.t5 DIRECTORY=/dmdba/dmbak REMAP_TABLESPACE=dmhr:main

4.4PARALLEL

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

[dmdba@lei2 ~]$ dimp USERID=SYSDBA/SYSDBA FILE=lei_t5.dmp LOG=dimp_lei_t5.log TABLES=lei.t5 DIRECTORY=/dmdba/dmbak table_exists_action=replace parallel=4

更多内容请参考:https://eco.dameng.com

猜你喜欢

转载自blog.csdn.net/m0_37625564/article/details/143107338