逻辑备份还原
逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。例如使用 dexp 和dimp 进行的备份还原。
逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻辑还原。
逻辑备份和逻辑还原都是在联机方式下完成,联机方式是指数据库服务器正常运行过程中进行的备份和还原。
dexp 和 dimp 是 DM 数据库自带的工具,只要安装了 DM 数据库,就可以在安装目录/dmdbms/bin 中找到。
逻辑导出和逻辑导入数据库对象分为四种级别,四种级别独立互斥,不能同时存在。四种级别所提供的功能:
数据库级(FULL):导出或导入整个数据库中的所有对象。
用户级(OWNER):导出或导入一个或多个用户所拥有的所有对象。
模式级(SCHEMAS):导出或导入一个或多个模式下的所有对象。
表级(TABLES):导出或导入一个或多个指定的表或表分区。
dexp 逻辑导出
dexp 工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备份。备份的内容非常灵活,
可以选择是否备份索引、数据行和权限,是否忽略各种约束(外键约束、非空约束、唯一约束等),在备份前还可以选择生成日志文件,记录备份的过程以供查看。
语法
dexp PARAMETER=<value> { PARAMETER=<value> }
PARAMETER:dexp 参数。多个参数之间排列顺序无影响,参数之间使用空格间隔。< value>:参数取值。
dexp 参数一览表
dimp 逻辑导入
dimp 逻辑导入工具利用 dexp 工具生成的备份文件对本地或远程的数据库进行联机逻辑还原。dimp 导入是 dexp 导出的相反过程。
还原的方式可以灵活选择,如是否忽略对象存在而导致的创建错误、是否导入约束、是否导入索引、导入时是否需要编译、是否生成日志等。
语法
dimp PARAMETER=value { PARAMETER=value }
PARAMETER:dimp 参数。多个参数之间排列顺序无影响,参数之间使用空格间隔。
dimp 参数一览表
逻辑导出导入实战
1.环境准备
OS:中标麒麟7.3
database:DM8
2.案例操作提纲
1)插入数据并查看结果;
2)对表TEST.ABC进行备份;
3)删除该表TEST.ABC;
4)进行还原操作;
5)查看表数据
3.实际操作
1)插入数据并查看结果
SQL> insert into TEST.ABC VALUES(3);
SQL> commit;
SQL> select * from TEST.ABC;
行号 id
---------- --
1 1
2 2
3 3
2)表级逻辑备份
[dmdba@DM1 bin]$ ./dexp TEST/123456789 file=/dmbak/table.dmp log=/dmbak/table.log tables=ABC
dexp V8
----- [2021-01-01 11:34:28]导出表:ABC -----
导出模式下的对象权限...
表ABC导出结束,共导出 3 行数据
整个导出过程共花费 0.355 s
成功终止导出, 没有出现警告
3)删除表
SQL> drop table TEST.ABC purge;
操作已执行
4)表级还原
[dmdba@DM1 bin]$ ./dimp TEST/123456789 file=/dmbak/table.dmp log=/dmbak/table.log tables=ABC
dimp V8
----- [2021-01-01 11:37:24]导入表:ABC -----
创建表 ABC ...
导入表 ABC 的数据:3 行被处理
整个导入过程共花费 0.044 s
成功终止导入, 没有出现警告
[dmdba@DM1 bin]$
5)查看数据
SQL> select * from TEST.ABC;
行号 id
---------- --
1 1
2 2
3 3