2012年3月28日 星期三

Oracle Database 11g - enable flashback database


如果database發生logical data corruption 或是 人為的錯誤(譬如誤刪資料,誤改資料),Oracle 11g有個很好用的功能,叫做flashback database,可以回復到某個還原點,或是某個SCN,速度會比使用RMAN做復原來個快。

Example:
FLASHBACK DATABASE TO RESTORE POINT 'before_install';
FLASHBACK DATABASE TO SCN 202333;


前提:
1. database要在archivelog mode
2. fast recovery area 要是enabled

設定步驟:
SQL> shutdown immediate
SQL> startup mount
SQL> set line 120

SQL> column db_unique_name format A20

SQL> ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET=4320 scope=both;  # 3天
System altered.
SQL> recover managed standby database cancel;
Media recovery complete.
SQL> ALTER DATABASE FLASHBACK ON;
Database altered.
SQL> select DB_UNIQUE_NAME,FORCE_LOGGING,FLASHBACK_ON from v$database;
DB_UNIQUE_NAME       FORCE_LOG FLASHBACK_ON
-------------------- --------- ------------------------------------------------------
DGTEST_S             YES       YES
SQL> show parameter DB_FLASHBACK_RETENTION_TARGET
NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
db_flashback_retention_target        integer                           4320
SQL> alter database open;


以上,完成flashback database的設定。
記得要 monitor Flash Recovery Area 的使用量,不要讓他爆了。

SQL> select * from v$recovery_file_dest;

SQL> select * from v$recovery_area_usage;


沒有留言:

張貼留言