Oracle DB閃回(Flashback database)開啟筆記

來源:互聯網
上載者:User

Oracle DB閃回(Flashback database)開啟筆記

為測試部門搭建一台Oracle DB,需滿足可以經常將整個資料庫回退到某時間點的需求。比較簡單的方法是使用Oracle的閃回特性之一"閃回資料庫"。

預備知識:閃回資料庫需要使用兩種日誌:閃回日誌和重做日誌。重做日誌的概念不需多談,所謂的閃回日誌的記錄正好與重做日誌的記錄相反。可以簡單的這樣認為:比如重做日誌記錄了一條insert命令,那麼閃回日誌就記錄這條記錄相關的delete命令,當然實際上這是非常複雜的過程。

這裡並不會介紹“閃回資料庫”的原理,因為已經有太多的資料來闡明它,也不會介紹“閃回資料庫”的操作方法,因為它非常簡單(在進入MOUNT狀態後執行"flashback database to scn …"或"flashback database to timestamp …")。

1. 開啟DB閃回之前需確保啟用了歸檔模式

 

SQL> archive log list Database log mode              Archive Mode Automatic archival            Enabled ……

 

2. 查看閃回日誌是否已啟用

 

SQL> select LOG_MODE,FLASHBACK_ON from v$ database ;  LOG_MODE  FLASHBACK_ON ---------- --------------- ARCHIVELOG NO

 

3. 啟用閃回日誌,即閃回資料庫功能

 

SQL> alter database flashback on ; alter database flashback on * ERROR at line 1: ORA-38706: Cannot turn on FLASHBACK DATABASE logging. ORA-38709: Recovery Area is not enabled.

 

報錯,無法開啟閃回功能。到這裡本文的主角--"oerr"命令君隆重登場。

4. 根據上文中提示的錯誤號碼使用oerr命令排錯

 

$ oerr ORA 38709 38709, 00000, "Recovery Area is not enabled." // *Cause:  An ALTER DATABASE FLASHBACK ON command failed because the //          Recovery Area was not enabled. // *Action: Set DB_RECOVERY_FILE_DEST to a location and retry.

 

5.  從上述的提示中找到錯誤原因:DB_RECOVERY_FILE_DEST 沒有預設

 

SQL> show parameter DB_RECOVERY_FILE_DEST  NAME                                TYPE        VALUE ------------------------------------ ----------- ------------------------------ db_recovery_file_dest                string db_recovery_file_dest_size          big integer 0

 

6.  設定DB_RECOVERY_FILE_DEST

 

SQL> alter system set db_recovery_file_dest= '/opt/oracle/fast_recovery_area' ; alter system set db_recovery_file_dest= '/opt/oracle/fast_recovery_area' * ERROR at line 1: ORA-02097: parameter cannot be modified because specified value is invalid ORA-19802: cannot use DB_RECOVERY_FILE_DEST without DB_RECOVERY_FILE_DEST_SIZE

 

7. 使用oerr命令排錯

 

$ oerr ORA 19802 19802, 00000, "cannot use DB_RECOVERY_FILE_DEST without DB_RECOVERY_FILE_DEST_SIZE" // *Cause: There are two possible cause for this error: //        1) The DB_RECOVERY_FILE_DEST parameter was in use when no //            DB_RECOVERY_FILE_DEST_SIZE parameter was encountered while //            fetching initialization parameter. //        2) An attempt was made to set DB_RECOVERY_FILE_DEST with the //            ALTER SYSTEM command when no DB_RECOVERY_FILE_DEST_SIZE //            was in use. // *Action: Correct the dependency parameter definitions and retry the command .

 

8. 從上述錯誤原因與解決方案提示中得知需要先設定DB_RECOVERY_FILE_DEST_SIZE

 

SQL> alter system set DB_RECOVERY_FILE_DEST_SIZE=20G scope=both; System altered.   SQL> show parameter db_recovery  NAME                                TYPE        VALUE ------------------------------------ ----------- ------------------------------ db_recovery_file_dest                string db_recovery_file_dest_size          big integer 20G

 

9. 設定DB_RECOVERY_FILE_DEST

 

SQL> alter system set db_recovery_file_dest= '/opt/oracle/fast_recovery_area' scope=both;  System altered.

 

10. 啟用閃回日誌,即閃回資料庫功能

 

SQL> alter database flashback on ; Database altered.

 

此時可以在'db_recovery_file_dest'設定的目錄中看到副檔名為.flb的檔案,它們就是閃回日誌。

 

$ ls o1_mf_98mpkdl6_.flb  o1_mf_98okkcs9_.flb

 

11. 快閃記憶體日誌的儲存期限由參數db_flashback_ retention_target控制(單位為分鐘),凡是超出儲存期限的閃回日誌將會在快速恢複區空間吃緊時被自動刪除。

 

SQL> show parameter db_flashback_retention_target  NAME                                TYPE        VALUE ------------------------------------ ----------- ------------------------------ db_flashback_retention_target        integer    10080

 

 

Oracle 11g Flashback Data Archive(閃回資料歸檔)

 

Oracle Flashback閃回機制

 

Oracle Flashback database

 

Flashback table快速恢複誤刪除的資料

 

Oracle 備份恢複:Flashback閃回

 

 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.