【備份恢復】閃回資料庫(一)閃回資料庫的管理

不一樣的天空w發表於2016-10-17

Flashback Database閃回資料庫:與RMAN的不完全恢復非常類似,它可以把整個資料庫回退到過去的某個時點的狀態,這個功能依賴於Flashback log日誌。比RMAN更快速和高效,因此Flashback Database 可以看作是不完全恢復的替代技術。閃回資料庫的前提是要開啟歸檔日誌。

閃回原理:在啟用閃回資料時,會將修改過的塊的前映像作為閃回資料庫日誌儲存在閃回恢復區中,如出現邏輯壞塊或使用者錯誤操作需要恢復到過去的時間點,閃回資料庫將還原資料庫的前映像,然後使用歸檔日誌和redo前滾到期望恢復的時間點,因為無需還原資料庫的資料檔案,所有此過程速度比較傳統的還原恢復通常快很多。

 閃回限制:

   Flashback Database 不能解決Media Failure 這種錯誤RMAN恢復仍是唯一選擇;

   如果刪除了資料檔案或者利用Shrink技術縮小資料檔案大小,這時不能用Flashback Database技術回退到改變之前的狀態,這時候就必須先利用RMAN把刪除之前或者縮小之前的檔案備份restore出來,然後利用Flashback Database執行剩下的Flashback Database;    

   如果控制檔案是從備份中恢復出來的,或者是重建的控制檔案,也不能使用Flashback Database

   使用Flashback Database能恢復到的最早的SCN,取決與Flashback Log中記錄的最早SCN

 配置閃回引數:

 閃回資料庫相關引數:
① db_recovery_file_dest               #
決定閃回恢復區路徑
② db_recovery_file_dest_size         #
決定閃回恢復區大小
③ db_flashback_retention_target    #
保留恢復最近多長時間的資料,單位為分鐘。

閃回相關檢視:
 ① V$restore_point                           #
閃回點
 ② V$FLASHBACK_DATABASE_LOG        #
閃回日終資訊
③ V$FLASHBACK_DATABASE_STAT

 ④ v$flash_recovery_area_usage;          #閃回區使用率

 

1.1. 資料庫閃回基本步驟
前提:閃回歸檔日誌可用
1) 關閉資料庫
2) 啟動資料庫到 mount 狀態(exclusive 模式)
3) 閃回至某個時間點, SCN 或還原點
4) Read only 開啟資料庫,驗證是否已還原到理想的時間點
5) 使用 resetlogs 開啟資料庫


1.2. 常用閃回資料庫方法
1) 基於 SCN 閃回
FLASHBACK [STANDBY] DATABASE [<database_name>] TO
[BEFORE] SCN <system_change_number>
2) 基於時間戳閃回
FLASHBACK [STANDBY] DATABASE [<database_name>] TO
[BEFORE] TIMESTMP <system_timestamp_value>
3) 基於可靠還原點閃回
FLASHBACK [STANDBY] DATABASE [<database_name>] TO
[BEFORE] RESTORE POINT <restore_point_name>
4) RMAN 命令列執行閃回資料庫


1.3. 開啟資料庫閃回功能
1) 驗證資料庫是否開啟閃回, NO 表示未開啟(預設)

SYS@ORA11GR2>select flashback_on from v$database;

 

FLASHBACK_ON

------------------

NO

 

2) 閃回日誌保留期限(預設保留 1 ,本測試改為保留 2 )

SYS@ORA11GR2>show parameter flashback

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_flashback_retention_target        integer     1440

 

SYS@ORA11GR2>alter system set db_flashback_retention_target=2880;

 

System altered.

SYS@ORA11GR2>show parameter flashback

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_flashback_retention_target        integer     2880

 

3) 啟用閃回資料庫功能:

啟用閃回資料庫需使用閃回日誌,而閃回日誌在閃迴歸檔裡;閃迴歸檔又必須要啟用快速恢復區(因為閃迴歸檔在快速恢復區裡),同時又得啟用歸檔程式!!!!!

——前提:

查詢:

SYS@ORA11GR2>show parameter recover

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest                string

db_recovery_file_dest_size           big intege r   0

db_unrecoverable_scn_tracking        boolean    TRUE

recovery_parallelism                 integer     0

 

SYS@ORA11GR2>archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            /u01/app/arch2

Oldest online log sequence     49

Next log sequence to archive   51         

Current log sequence           51

 

SYS@ORA11GR2>alter system set db_recovery_file_dest_size=3G;

 

System altered.

 

SYS@ORA11GR2>alter system set db_recovery_file_dest='/u01/app/FRA';

 

System altered.

驗證:

SYS@ORA11GR2>show parameter recover

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest                string      /u01/app/FRA

db_recovery_file_dest_size           big integer 3G

db_unrecoverable_scn_tracking        boolean     TRUE

recovery_parallelism                 integer     0

 

SYS@ORA11GR2>archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            /u01/app/arch2

Oldest online log sequence     49

Next log sequence to archive   51

Current log sequence           51

SYS@ORA11GR2>

 

再修改:

SYS@ORA11GR2>show parameter log_archive

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

log_archive_config                   string

log_archive_dest                     string

log_archive_dest_1                   string      location=/u01/app/arch1

log_archive_dest_10                  string

log_archive_dest_11                  string

log_archive_dest_12                  string

log_archive_dest_13                  string

log_archive_dest_14                  string

log_archive_dest_15                  string

log_archive_dest_16                  string

log_archive_dest_17                  string

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

log_archive_dest_18                  string

log_archive_dest_19                  string

log_archive_dest_2                   string      location=/u01/app/arch2

log_archive_dest_20                  string

log_archive_dest_21                  string

 

解決:

SYS@ORA11GR2>alter system set log_archive_dest_2='';

 

System altered.

 

SYS@ORA11GR2>alter system set log_archive_dest_1='';

 

System altered.

 

SYS@ORA11GR2>alter system set db_recovery_file_dest='';

 

System altered.

 

SYS@ORA11GR2>alter system set db_recovery_file_dest='/u01/app/FRA';

 

System altered.

 

驗證:

SYS@ORA11GR2>archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     55

Next log sequence to archive   57

Current log sequence           57

——啟動閃回資料庫:

SYS@ORA11GR2>shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SYS@ORA11GR2>

SYS@ORA11GR2>startup mount;

ORACLE instance started.

 

Total System Global Area  730714112 bytes

Fixed Size                  2256832 bytes

Variable Size             452984896 bytes

Database Buffers          272629760 bytes

Redo Buffers                2842624 bytes

Database mounted.

SYS@ORA11GR2>

SYS@ORA11GR2>alter database flashback on;

(要將閃迴歸檔資訊入控制檔案中,在應用日誌之前)

Database altered.

 

驗證:

SYS@ORA11GR2>select flashback_on from v$database;

 

FLASHBACK_ON

------------------

YES

 

SYS@ORA11GR2>alter database open;

 

Database altered.

 

SYS@ORA11GR2>!ps -ef|grep rvw

oracle    3688     1  0 06:43 ?        00:00:00 ora_rvwr_ORA11GR2

oracle    4003  3312  0 06:44 pts/1    00:00:00 /bin/bash -c ps -ef|grep rvw

oracle    4005  4003  0 06:44 pts/1    00:00:00 grep rvw

 

RVWR:恢復寫入器(Recovery Writer    負責維護閃回恢復區中塊的前映像,要與FLASHBACK DATABASE命令一起使用.

 

1.4. 監視閃回資料庫
1.4.1. 檢視快速恢復區磁碟配額

SYS@ORA11GR2>select estimated_flashback_size,flashback_size from v$flashback_database_log;

 

ESTIMATED_FLASHBACK_SIZE FLASHBACK_SIZE

------------------------ --------------

               131973120      209715200

 

1) ESTIMATED_FLASHBACK_SIZE 使用先前記錄的閃回資料,來估計要滿足當前閃回保留目標時閃回
日誌在快速恢復區中所需的磁碟空間。該估計基於以下兩段時間中較短時間段內的工作量:自例項啟
動以來的時間段或等於閃回保留目標的最近時間間隔。
2) FLASHBACK_SIZE 提供當前閃回資料的大小,以位元組表示。

 

1.4.2. 確定當前閃回視窗

SYS@ORA11GR2>select oldest_flashback_scn,oldest_flashback_time from v$flashback_database_log;

 

OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TI

-------------------- -------------------

             1816541 2016-09-30 13:48:58

 

3) OLDEST_FLASHBACK_SCN 顯示可以將資料庫閃回到的最小 SCN
4) OLDEST_FLASHBACK_TIME
顯示可以將資料庫閃回到的最小時間的近似值。

 

1.4.3. 監視閃回資料庫日誌中的事件記錄

SYS@ORA11GR2>select * from v$flashback_database_stat;

 

BEGIN_TIME          END_TIME            FLASHBACK_DATA    DB_DATA  REDO_DATA ESTIMATED_FLASHBACK_SIZE

------------------- ------------------- -------------- ---------- ---------- ------------------------------------------------------------------------------------------------

2016-10-01 07:03:54 2016-10-01 07:09:06        4546560          6406144     267264                        0

 

使用 V$FLASHBACK_DATABASE_STAT 檢視監視閃回資料庫日誌中記錄閃回資料的開銷。此檢視包含
24 小時的資訊,每一行代表一個小時的時間間隔。可以使用此檢視確定閃回資料生成過程中的比率變化
1) BEGIN_TIME 開始時間間隔
2) END_TIME 結束時間間隔
3) FLASHBACK_DATA 時間間隔內寫入的閃回資料位元組數
4) DB_DATA 提供讀取和寫入的資料塊位元組數。此檢視還包含該間隔所需的估計閃回空間。
5) REDO_DATA 時間間隔內寫入的閃回重做資料位元組數
6) ESTIMATED_FLASHBACK_SIZE 該間隔所需的估計閃回空間

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

相關文章