使用disql执行表空间还原
介绍使用disql工具如何还原表空间。主要内容包括:
1.使用表空间完全备份还原表空间
2.使用表空间增量备份还原表空间
3.使用数据库备份还原表空间

1.使用表空间完全备份还原表空间
表空间的还原、恢复操作是一次性完成,因此还原后不需要执行恢复操作。使用表空间完全备份还原表空间的完整步骤如下:
1) 配置归档。
2) 保证数据库处于OPEN或MOUNT状态。
3) 备份表空间。

SQL>backuptablespacemaintots_main_bakbackupset'E:\dmdbms\backup\ts_main_bak';操作已执行已用时间:00:00:01.069.执行号:9.

4) 校验表空间备份。此步骤为可选,如果确定备份文件合法可不进行备份校验。

SQL>selectsf_bakset_check('disk','E:\dmdbms\backup\ts_main_bak');行号SF_BAKSET_CHECK('disk','E:\dmdbms\backup\ts_main_bak')----------------------------------------------------------------11已用时间:17.741(毫秒).执行号:10.

5) 修改表空间为脱机。

SQL>altertablespacemainoffline;操作已执行已用时间:137.581(毫秒).执行号:11.

6) 还原表空间。

SQL>restoretablespacemainfrombackupset'E:\dmdbms\backup\ts_main_bak';操作已执行已用时间:276.897(毫秒).执行号:12.

7) 修改表空间为联机。

SQL>altertablespacemainonline;操作已执行已用时间:17.971(毫秒).执行号:13.

2.使用表空间增量备份还原表空间
在增量备份与基备份同目录情况下,使用增量备份还原表空间步骤与完全备份一致。当增量备份与基备份不在同一个目录下时需要使用RESTORE TABLESPACE...WITH BACKUPDIR语句还原。这里以后面一种情况为例说明使用增量备份还原表空间。步骤如下:
1) 配置归档。
2) 保证数据库处于OPEN或MOUNT状态。
3) 完全备份表空间。

SQL>backuptablespacemaintots_main_full_bakbackupset'E:\dmdbms\backup\ts_main_full_bak';操作已执行已用时间:00:00:01.095.执行号:35.

4) 多次增量备份表空间。

SQL>begin2foriin1..100loop3insertintot1values(i);4endloop;5commit;6end;7/DMSQL过程已成功完成已用时间:3.383(毫秒).执行号:36.SQL>backuptablespacemainincrementwithbackupdir'E:\dmdbms\backup\ts_main_full_bak'backupset'E:\dmdbms\backup1\ts_main_incr_bak_01';操作已执行已用时间:00:00:01.079.执行号:37.SQL>begin2foriin101..200loop3insertintot1values(i);4endloop;5end;6/DMSQL过程已成功完成已用时间:1.274(毫秒).执行号:38.SQL>altersystemswitchlogfile;操作已执行已用时间:14.166(毫秒).执行号:0.SQL>backuptablespacemainincrementwithbackupdir'E:\dmdbms\backup\ts_main_full_bak','E:\dmdbms\backup1\ts_main_incr_bak_01'backupset'E:\dmdbms\backup2\ts_main_incr_bak_02';操作已执行已用时间:00:00:01.081.执行号:39.

5) 校验表空间备份。此步骤为可选,如果确定备份文件合法可不进行备份校验。

SQL>selectsf_bakset_check('disk','E:\dmdbms\backup\ts_main_full_bak');行号SF_BAKSET_CHECK('disk','E:\dmdbms\backup\ts_main_full_bak')---------------------------------------------------------------------11已用时间:20.931(毫秒).执行号:40.SQL>selectsf_bakset_check('disk','E:\dmdbms\backup1\ts_main_incr_bak_01');行号SF_BAKSET_CHECK('disk','E:\dmdbms\backup1\ts_main_incr_bak_01')-------------------------------------------------------------------------11已用时间:31.184(毫秒).执行号:41.SQL>selectsf_bakset_check('disk','E:\dmdbms\backup2\ts_main_incr_bak_02');行号SF_BAKSET_CHECK('disk','E:\dmdbms\backup2\ts_main_incr_bak_02')-------------------------------------------------------------------------11已用时间:25.171(毫秒).执行号:42.

6) 修改表空间为脱机

SQL>altertablespacemainoffline;操作已执行已用时间:98.420(毫秒).执行号:43.

7) 使用增量备份E:\dmdbms\backup2\ts_main_incr_bak_02还原表空间。

SQL>restoretablespacemainfrombackupset'E:\dmdbms\backup2\ts_main_incr_bak_02'withbackupdir'E:\dmdbms\backup\ts_main_full_bak','E:\dmdbms\backup1\ts_main_incr_bak_01';操作已执行已用时间:370.046(毫秒).执行号:44.

8) 修改表空间为联机。

SQL>altertablespacemainonline;操作已执行已用时间:15.717(毫秒).执行号:45.SQL>selectcount(*)fromt1;行号COUNT(*)------------------------------1200已用时间:1.345(毫秒).执行号:46.

3.使用数据库备份还原表空间
使用数据库备份还原表空间可以快速还原一个或多个表空间,而不影响数据库中其他的表空间和对象。在数据库中仅有特定的表空间损坏且没有表空间备份的情况下,可以选择使用此种方式还原。
具体步骤如下:
1) 配置归档。
2) 保证数据库处于OPEN或MOUNT状态。
3) 创建数据库完全备份。

SQL>backupdatabasefulltodb_jydm_full_bakbackupset'E:\dmdbms\backup\ts_jydm_full_bak';操作已执行已用时间:00:00:01.198.执行号:50.

4) 校验表空间备份。此步骤为可选,如果确定备份文件合法可不进行备份校验。

SQL>selectsf_bakset_check('disk','E:\dmdbms\backup\ts_jydm_full_bak');行号SF_BAKSET_CHECK('disk','E:\dmdbms\backup\ts_jydm_full_bak')---------------------------------------------------------------------11已用时间:46.115(毫秒).执行号:51.

5) 修改表空间为脱机。

SQL>altertablespacemainoffline;操作已执行已用时间:96.596(毫秒).执行号:52.

6) 还原表空间。

SQL>restoretablespacemainfrombackupset'E:\dmdbms\backup\ts_jydm_full_bak';操作已执行已用时间:326.842(毫秒).执行号:53.

7) 修改表空间为联机。

SQL>altertablespacemainonline;操作已执行已用时间:17.338(毫秒).执行号:54.SQL>selectcount(*)fromt1;行号COUNT(*)------------------------------1200已用时间:1.969(毫秒).执行号:55.