Oracle閃回區已經有了好幾載的歲月了,在10g的時候就被推出一直延續到現在。Oracle閃回區是為RMAN準備的,儘管拋開它我們可以同樣完成Database Backup恢複的相關工作,Oracle依舊強烈推薦使用且它讓其成為RMAN的組件之一。這是因為該地區可集中簡化管理所有和備份恢複工作,這也是其魅力所在。本文描述了Oracle閃回區的特性及其配置閃回區,監控閃回區等。
1、閃回區特性及其配置
閃回區
就是分配一個特定的目錄位置(普通磁碟上的目錄或ASM磁碟)來存放一些特定的恢複檔案,用於集中和簡化管理資料庫恢複工作。
通過配置閃回區,可以避免在多執行個體歸檔到相同磁碟時,磁碟空間耗盡而影響所有執行個體的情行。也就是說縮小影響範圍。
閃回區單詞縮寫為FRA,下面的描述FRA即指的是閃回區,也可能存在混用閃回區或FRA的情形。
閃回區可隱藏檔的類型
完全的資料檔案備份
增量備份
資料檔案副本
當前的控制檔案,備份的控制檔案,spfile檔案,快照控制檔案
聯機記錄檔,歸檔日誌
塊追蹤檔案、閃回日誌
啟用與禁用閃回區
設定下面的初始化參數(spfile或pfile檔案)
DB_RECOVERY_FILE_DEST_SIZE:用於設定閃回區的大小,此參數應優先於DB_RECOVERY_FILE_DEST參數修改,否則ORA-32001
DB_RECOVERY_FILE_DEST:用於設定閃回區的目錄
DB_FLASHBACK_RETENTION_TARGET:指定資料庫可以閃回的時間範圍,單位為分鐘,預設1440分鐘,也就是一天
資料庫閃回分為多種情形,其閃回日誌存放在FRA,可閃回的時間同時還取決於閃回恢複區的大小
將DB_RECOVERY_FILE_DEST參數設定為空白,可以停用FRA,但是啟用flashback database,則不能取消FRA,需要先禁用flashback database
資料庫FRA可以為每個資料庫配置不同的閃回區,也可以為多個資料庫配置相同路徑的閃回區
當為多個資料庫配置相同的閃回區位置時,應考慮閃回區所在磁碟掛載點的總大小以及使用不同的DB_NAME
多個資料庫或執行個體使用相同的閃回區時,其路徑為:FRA_HOME/<db_name>/<file_type>/<date>/<file_name>
FRA中的保留原則
FRA中的檔案的保留與否由RMAN保留原則來決定。通過執行RMAN configure retention policy命令來設定其策略
對於沒有關聯保留原則或是永久檔案,檔案永遠不會被刪除
對於關聯保留原則的檔案,沒有過時的情況下不會被刪除,一旦過時,在空間壓力下回自動被刪除
FRA與多路日誌歸檔
如果設定了歸檔日誌參數log_archive_dest_n,歸當時會使用該位置而不是使用FRA
如果未設定參數log_archive_dest_n,而是啟用FRA,則可以不需要再單獨設定歸檔日誌參數log_archive_dest_n,歸檔日誌會位於FRA
對於啟用FRA後,不可再設定log_archive_dest、log_archive_duplex_dest,也就是說存在排他模式。可參考:Oracle 歸檔日誌
對於既要歸檔到log_archive_dest_n,又要歸檔到FRA的情形,需要設定參數log_archive_dest_10(預設情況)給FRA,如下:
alter system set log_archive_dest_10='LOCATION=USE_DB_RECOVERY_FILE_DEST';
alter system set log_archive_dest_1='LOCATION=/u03/database/archdir';
2、FRA空間分配與監控
對於啟用FRA特性之後,FRA協助管理全部的磁碟空間分配。Oracle會自動監控FRA空間的使用方式。
關於FRA空間分配大小應考慮當前Database Backup的方式,備份是否壓縮,每天歸檔日誌大小,是否啟用了閃回等多項因素綜合來考量
FRA中可用空間達到不安全的程度或不夠用的情形,可以通過OEM或DBA_OUTSTANDING_ALERTS獲得相關資訊
會在Alert記錄檔中產生警告
當可回收空間低於DB_RECOVERY_FILE_DEST_SIZE定義值的15%時,產生警報
當可回收空間低於DB_RECOVERY_FILE_DEST_SIZE定義值的3%時,產生嚴重警報
當整個FRA被完全填滿時,系統不可用,直接給你ORA-19815,ORA-19809 :limit exceeded for recovery files
注FRA空間被填滿,不表示當前的磁碟掛載點空間不夠。
FRA空間不夠用或出現嚴重警示的情形,應考慮從以下方面著手解決
如果僅僅是參數DB_RECOVERY_FILE_DEST_SIZE大小限制,磁碟空閑空間很多,則直接修改該參數到一個更大的值
如果磁碟空閑空間不多,應考慮分配更多的磁碟空間給檔案系統,然後再修改DB_RECOVERY_FILE_DEST_SIZE參數到一個更大的值
如果無法分配額外的磁碟空間,可以考慮遷移FRA到有較多可用空間的另外一個檔案系統
可以使用backup recovery area命令將整個FRA內容移動到另外的位置
刪除FRA中較早備份組或歸檔日誌,建議使用RMAN命令來刪除,若直接從os刪除,Oracle認為FRA的空間並沒有釋放(需要crosscheck再delete)
--Author : Leshami
--Blog :
Oracle 11g flashback Data Archive(閃回資料歸檔)
Oracle flashback閃回機制
flashback table快速恢複誤刪除的資料
Oracle 備份恢複:flashback閃回
[Oracle]閃回flashback功能的使用