使用DISQL工具进行数据还原 - 达梦DM的备份与恢复功能简介
最编程
2024-01-17 07:10:17
...
DM 仅支持表的联机还原,数据库、表空间和归档日志的还原必须通过脱机工具 DMRMAN执行。主要介绍如何使用 DIsql 工具还原表。
7.1 表还原
- 示例一
1)备份已存在的数据表,或可以创建新表进行测试。
SQL> backup table salgrade backupset '/home/dmdba/dm_bak/salgrade_bak_01';
操作已执行
已用时间: 816.091(毫秒). 执行号:50.
2)测试准备,truncate表
SQL> select * from SALGRADE;
行号 GRADE LOSAL HISAL
---------- ----- ----- -----
1 1 700 1200
2 2 1201 1400
3 3 1401 2000
4 4 2001 3000
5 5 3001 9999
SQL> truncate table salgrade;
操作已执行
已用时间: 10.601(毫秒). 执行号:51.
SQL>
SQL> select * from SALGRADE;
未选定行
3)进行备份检查,可选择性操作
SQL> select sf_bakset_check('disk','/home/dmdba/dm_bak/tests_bak_01');
行号 SF_BAKSET_CHECK('disk','/home/dmdba/dm_bak/tests_bak_01')
---------- ---------------------------------------------------------
1 1
已用时间: 45.279(毫秒). 执行号:42.
4)还原表数据,查询数据是否恢复
SQL> restore table salgrade from backupset '/home/dmdba/dm_bak/salgrade_bak_01';
操作已执行
已用时间: 35.758(毫秒). 执行号:53.
SQL> select * from SALGRADE;
行号 GRADE LOSAL HISAL
---------- ----- ----- -----
1 1 700 1200
2 2 1201 1400
3 3 1401 2000
4 4 2001 3000
5 5 3001 9999
已用时间: 0.378(毫秒). 执行号:54.
SQL>
- 示例二
表还原实质是表内数据的还原,以及索引和约束等的重建。下面以表中包含索引为例说明如何还原表
1)数据库open,创建备份的表
SQL> create table deptno(id int);
操作已执行
已用时间: 11.874(毫秒). 执行号:61.
2)创建索引
SQL> create index idx_deptno on deptno (id);
操作已执行
已用时间: 13.739(毫秒). 执行号:62.
3)备份表
SQL> backup table deptno backupset '/home/dmdba/dm_bak/deptno_bak_01';
操作已执行
已用时间: 820.931(毫秒). 执行号:63.
- 执行表结构还原。表备份和表中都包含索引,如果直接执行表数据还原会报错:还原表中存在二级索引或冗余约束。
SQL> restore table deptno struct from backupset '/home/dmdba/dm_bak/deptno_bak_01';
操作已执行
已用时间: 25.674(毫秒). 执行号:64.
5)执行表数据还原。
SQL> restore table deptno from backupset '/home/dmdba/dm_bak/deptno_bak_01';
操作已执行
已用时间: 47.035(毫秒). 执行号:65.