今天测试达梦数据库逻辑的备份,主要采用dexpdp/dimpdp逻辑导出导入方式数据的备份和恢复,现将备份和恢复的过程记录如下:
在dexpdp和dimpdp前的注意事项:
A、逻辑导出导入只能在数据库open的状态下进行;
B、逻辑导出导入只能进行备份之前的数据恢复;
C、注意导出的用户,需要访问v$dm_ini和v$ciphers这两个视图(具备查询权限即可)
1、创建逻辑备份的directory目录
#####创建directory 目录impdp,位于/dm8/expdp,并授予xhh对该目录的可读写
SQL> create directory impdp as '/dm8/expdp';
操作已执行
已用时间: 5.750(毫秒). 执行号:4201.
SQL>
SQL> grant write,read on directory impdp to xhh;
操作已执行
已用时间: 6.384(毫秒). 执行号:4202.
SQL>
2、 expdp导出备份(指定导出schema用户xhh的所有对象)
#####指定directory目录,导出本用户下的所有对象
[dmdba@system2 expdp]$ /dm8/dmdbms/bin/dexpdp xhh/manager123 directory=IMPDP file=exp_xhh.dmp log=exp_xhh.log
open fail! path:./libcrypto.so
开始导出模式[XHH].....导出第 1 个SEQUENCE: TEST_SEQ----- 共导出 1 个SEQUENCE -----
----- 共导出 0 个VIEW -----
----- 共导出 0 个TRIGGER -----
----- 共导出 0 个COMMENT VIEW -----
----- 共导出 0 个COMMENT COL -----
----- 共导出 0 个PROCEDURE -----
----- 共导出 0 个SYNONYM -----
----- 共导出 0 个DBLINK -----
----- 共导出 0 个TRIGGER -----
----- 共导出 0 个PACKAGE -----
----- 共导出 0 个PKG_BODY -----
----- 共导出 0 个OBJECT of NO REFER OTHER CLASS -----
----- 共导出 0 个OBJECT of REFER OTHER CLASS -----
----- 共导出 0 个JCLASS -----
----- 共导出 0 个CLASS_BODY -----
----- 共导出 0 个DOMAIN -----
导出模式下的对象权限...
----- [2021-09-06 16:28:06]导出表:AA -----
导出模式下的对象权限...
表AA导出结束,共导出 4 行数据
----- [2021-09-06 16:28:06]导出表:DATA -----
导出模式下的对象权限...
表DATA导出结束,共导出 4 行数据
模式[XHH]导出结束.....成功导出 第1 个SCHEMA :XHH
共导出 1 个SCHEMA
整个导出过程共花费 0.229 s
成功终止导出, 没有出现警告
3、测试将xhh用户下的对象(包括table和sequence)删除
#####删除用户xhh下的table和sequence
SQL> drop table AA;
操作已执行
已用时间: 34.044(毫秒). 执行号:6900.
SQL> drop table DATA;
操作已执行
已用时间: 17.432(毫秒). 执行号:6901.
SQL> drop sequence test_seq;
操作已执行
已用时间: 14.149(毫秒). 执行号:6902.
SQL>
4、导入dmp文件到数据库中
#####导入dmp备份文件到数据库
[dmdba@system2 expdp]$ /dm8/dmdbms/bin/dimpdp sysdba/manager123 directory=IMPDP file=exp_xhh.dmp log=imp_xhh.log
open fail! path:./libcrypto.so
dimp V8
本地编码:PG_GB18030, 导入文件编码:PG_GB18030开始导入模式[XHH]......导入模式中的 NECESSARY GLOBAL 对象……导入 SEQUENCE 对象……模式中的 NECESSARY GLOBAL 对象导入完成……
----- [2021-09-06 16:59:41]导入表:AA -----
创建表 AA ...导入表 AA 的数据:4 行被处理
----- [2021-09-06 16:59:41]导入表:DATA -----
创建表 DATA ...导入表 DATA 的数据:4 行被处理导入模式中的 GLOBAL 对象……模式中的 GLOBAL 对象导入完成……模式[XHH]导入完成......
整个导入过程共花费 0.054 s
成功终止导入, 没有出现警告
[dmdba@system2 expdp]$
5、验证导入的数据
#####查询表中的数据及序列值
SQL> conn xhh/manager123
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 1.970(ms)
SQL> select count(*) from aa;
行号 COUNT(*)
---------- --------------------
1 4
已用时间: 2.349(毫秒). 执行号:7200.
SQL> select count(*) from data;
行号 COUNT(*)
---------- --------------------
1 4
已用时间: 1.714(毫秒). 执行号:7201.
SQL> select test_seq.nextval;
行号 NEXTVAL
---------- --------------------
1 14
已用时间: 0.565(毫秒). 执行号:7202.
SQL>
备注:dexpdp/dimpdp其他用法:
1、DIRECTORY:指定存放备份片的目录
2、SCHEMAS:指定导出哪些模式对象
3、TABLES:指定导出哪些表
4、TABLE_EXISTS_ACTION:指定当表存在时如何操作,有skip(跳过)、append(在现有表中追加数据)、truncate(先将表截断,在插入数据)、replace(直接替换)
5、EXCLUDE:忽略指定的对象,可包括约束、索引、数据、触发器和权限
6、ROWS:可选择不导出数据,只导出表结构
以上,关于更多用法,请参考help帮助文档。