欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

使用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.
  1. 执行表结构还原。表备份和表中都包含索引,如果直接执行表数据还原会报错:还原表中存在二级索引或冗余约束。
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.