flashback總結一之Flashback_Database

zhangshengdong發表於2011-11-24
Flashback_Database可以看作是不完全恢復的替代技術,依賴於Flashback log日誌。類似與RMAN的不完全恢復,但它有限制:
1,Flashback Database不能解決Media Failure,這種錯誤RMAN恢復是唯一選擇
2,刪除了資料檔案或者利用Shrink技術縮小資料檔案,Flashback Data則不能使用,
這時候就必須先利用RMAN把刪除之前或者縮小之前的檔案備份restore出來,然後利用Flashback Database執行剩下的Flashback Database
3,控制檔案是從備份中恢復回來的或者重建的,不能用flashback database,
4,使用flashback database鎖能恢復到最早的scn,取決與flashback Log
Flashback Database 架構包括一個程式Recover Writer(RVWR)後臺程式,flashback
Database Log日誌 和flash Recovery Area.
資料庫啟動了FD之後,程式帶動flash Recovery Area在這裡面寫flashback
Database Log日誌。
********************************邪惡的分割線*********************************
下面開始個人操作
SQL> shutdown immediate;(首先關閉資料庫)
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup mount;(讓資料庫mount)
ORACLE 例程已經啟動。
SQL> alter database archivelog;(啟動archivelog模型)
SQL> archive log list;(檢視log資訊)
資料庫日誌模式            存檔模式
自動存檔             啟用
存檔終點            D:\FB(這個是我存放的存檔路徑)
最早的聯機日誌序列     0
下一個存檔日誌序列   1
當前日誌序列           1
********************配置Flash Recovery Area***********************************
啟用Flash Recovery Area:
SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=20G SCOPE=BOTH;
SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='D:\FB' SCOPE=BOTH;
禁用Flash Recovery Area:
SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='' ;
********************啟用資料庫FLashback功能************************************
檢查Flashback 功能
SQL> select name, current_scn, flashback_on from v$database;
NAME      CURRENT_SCN FLASHBACK_ON
--------- ----------- ------------------
ORCL                0 YES(我這裡是已經啟動過了的)
啟用和禁用Flashback功能
SQL> alter database flashback off;
資料庫已更改。
SQL> alter database flashback on;
資料庫已更改。
************初始化DB_FLASHBACK_RETENTION_TARGET*********************
SQL>alter system set db_flashback_retention_target=1440 scope=both;
該引數用來控制flashback log 資料保留的時間,預設值是1440,單位是minute,24 小時
。*********************開啟資料庫***********************************************
SQL> alter database open;
資料庫已更改。
*********************檢視Flash Recovery Area和SCN*******************************
SQL> show parameter db_recovery_file
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      D:\FB
db_recovery_file_dest_size           big integer 20G
SQL> SELECT CURRENT_SCN FROM V$DATABASE;
CURRENT_SCN
-----------
    3316073
*********************開始模擬恢復操作*******************************************
SQL> select count(*) from scott.emp;
  COUNT(*)
----------
        14
SQL> drop table scott.emp;
表已刪除。
SQL> commit;
提交完成。
SQL> select count(*) from scott.emp;
select count(*) from scott.emp
                           *
第 1 行出現錯誤:
ORA-00942: 表或檢視不存在
見證奇蹟的時刻!!!!!!!
*********************恢復操作*****************************************************
SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup mount
ORACLE 例程已經啟動。
SQL> Flashback database to scn 3316073;
閃回完成。
SQL> alter database open resetlogs;
資料庫已更改。
SQL> select count(*) from scott.emp;
  COUNT(*)
----------
        14
Flashback(一)的總結,到此結束,感謝http://www.cnblogs.com/coohoo/archive/2011/01/16/1936888.html
Oracle Flashback技術總結 - 田園居 - 部落格園的支援。

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

相關文章