flashback 技術

閃回數據庫


SYS@aux 22-DEC-13> select systimestamp from dual;

SYSTIMESTAMP
---------------------------------------------------------------------------
22-DEC-13 09.45.30.872782 PM +08:00

SYS@aux 22-DEC-13> select current_scn from v$database;

CURRENT_SCN
-----------
   32517356

SYS@aux 22-DEC-13> create restore point test_dbflashback;

Restore point created.
SYS@aux 22-DEC-13> show parameter retention;

NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
db_flashback_retention_target         integer     1440
undo_retention                 integer     86400


SYS@aux 22-DEC-13> create restore point test_guarantee guarantee flashback database;

Restore point created.

SYS@aux 22-DEC-13> l
  1* select * from v$restore_point where name like '%TEST_GUARANTEE%'
SYS@aux 22-DEC-13> /

       SCN DATABASE_INCARNATION# GUA STORAGE_SIZE TIME                 RESTORE_POINT_TIME   PRE NAME
---------- --------------------- --- ------------ ------------------------------ -------------------- --- ----------
  32517462               7 YES      7962624 22-DEC-13 09.48.48.000000000 P              YES TEST_GUARA
                          M                              NTEE


SYS@aux 22-DEC-13> flashback database to restore point test_dbflashback;

Flashback complete.

SYS@aux 22-DEC-13> flashback database to scn 32517356;

Flashback complete.

SYS@aux 22-DEC-13> flashback database to timestamp to_timestamp('2013-12-22 09:45:30','YYYY-MM-DD hh24:mi:ss');

Flashback complete.

SYS@aux 22-DEC-13> recover database;
Media recovery complete.
SYS@aux 22-DEC-13> alter database open;

Database altered.

SYS@aux 22-DEC-13> 

 

guarantee restore point  不依賴flashback log,有自己單獨的log機制, 但是也必須設置flash recovery area , 可以在不開啓flashback database的情況下使用guarantee restore point , 也可以閃回數據庫。

閃回到過去某一點時候, 要使用alter database open resetlog 來打開數據庫。



可以使用 SCN  ,restore point , timestamp 做爲閃回點。

JULIA@aux 22-DEC-13> flashback table juliatest to  timestamp to_timestamp('2013-12-22 21:21:35','YYYY-MM-DD HH:MI:SS');
flashback table juliatest to  timestamp to_timestamp('2013-12-22 21:21:35','YYYY-MM-DD HH:MI:SS')
                                                     *
ERROR at line 1:
ORA-01849: hour must be between 1 and 12


JULIA@aux 22-DEC-13> flashback table juliatest to  timestamp to_timestamp('2013-12-22 21:21:35','YYYY-MM-DD hh24:mi:ss');

Flashback complete.

JULIA@aux 22-DEC-13> flashback table juliatest to restore point test_insert;

Flashback complete.
JULIA@aux 22-DEC-13> select current_scn from v$database;

CURRENT_SCN
-----------
   32517203

JULIA@aux 22-DEC-13> flashback table juliatest to scn 32517203;

Flashback complete.




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章