利用可靠還原點進行資料庫閃回

物理狂人發表於2011-12-30
1)檢視錶t2的資料
SQL> select count(1) from t2;

  COUNT(1)
----------
      1280

2)在mount階段建立可靠還原點before_load

SQL> create restore point before_load GUARANTEE FLASHBACK DATABASE;
create restore point before_load GUARANTEE FLASHBACK DATABASE
*
第 1 行出現錯誤:
ORA-38784: 無法建立恢復點 'BEFORE_LOAD'。
ORA-38787: 在閃回資料庫處於關閉狀態時, 建立第一個可靠恢復點需要裝載模式。

SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup mount;
ORACLE 例程已經啟動。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             234883972 bytes
Database Buffers          369098752 bytes
Redo Buffers                7135232 bytes
資料庫裝載完畢。
SQL> create restore point before_load GUARANTEE FLASHBACK DATABASE;

還原點已建立。

SQL> alter database open;

資料庫已更改。

注:即使在flashback沒有開啟的情況下,通過建立可靠還原點,可以保證資料庫恢復到該還原點

3)檢視資料庫閃回狀態
SQL> select flashback_on from v$database;

FLASHBACK_ON
------------------------------------
RESTORE POINT ONLY

4)插入資料到t2
SQL> insert into t2 select * from t2;

已建立1280行。

SQL> insert into t2 select * from t2;

已建立2560行。

SQL> insert into t2 select * from t2;

已建立5120行。

SQL> insert into t2 select * from t2;

已建立10240行。

SQL> insert into t2 select * from t2;

已建立20480行。

SQL> commit;

5)使資料庫閃回到還原點before_load
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup mount;
ORACLE 例程已經啟動。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             234883972 bytes
Database Buffers          369098752 bytes
Redo Buffers                7135232 bytes
資料庫裝載完畢。
SQL> flashback database to restore point before_load;

閃回完成。

SQL> alter database open resetlogs;

資料庫已更改。

6)檢視錶t2的資料
SQL> select count(1) from t2;

  COUNT(1)
----------
      1280

7)建立第一個可靠還原點t before_load_2,則不需要在mount階段
SQL>  create restore point before_load_2 GUARANTEE FLASHBACK DATABASE;

還原點已建立。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24104518/viewspace-714248/,如需轉載,請註明出處,否則將追究法律責任。

相關文章