Oracle

歸檔日誌填滿快速恢復區 (FRA) 空間

  • February 10, 2018

我被雇用來填補我還沒有準備好填補的 DBA 職位,雖然培訓讓我到達那裡,但我正在接近一個潛在的問題。

我的 oracle 11g 數據庫的閃回恢復區 (FRA) 快要滿了(還剩 2.5%)。因為我們進行實時備份,所以它處於 ARCHIVELOG 模式(至少這是我被告知的原因)。我們已經通過企業管理器清除了所有不需要的備份,但存檔日誌仍然佔用了超過 50% 的已分配 FRA 空間。是否可以刪除一些較舊的存檔日誌以釋放空間?伺服器仍然保存幾個月前的日誌,而且我們真的不需要那麼遠的備份。

如果我可以刪除它們,最好的方法是什麼?

Oracle 會自動刪除過時的文件。通常,您不必手動刪除任何內容。

RMAN 維護的一個重要部分是刪除不再需要的備份。如果配置了快速恢復區,那麼數據庫會自動刪除該區域內不需要的文件

RMAN 備份和儲存庫維護概述

首先,確定您是否空間不足。例如使用以下查詢(包括範例輸出):

SELECT * FROM V$RECOVERY_FILE_DEST;

NAME            SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
--------------  ----------- ---------- ----------------- ---------------
/mydisk/rcva     5368709120 109240320             256000              28

如果空間不足,則必須減少保留策略或增加 FRA 的大小。

我強烈建議為此編寫一個小型 RMAN 腳本。像這樣的東西應該​​工作:

run {
   allocate channel "dsk1" device type disk;
   allocate channel "dsk2" device type disk;
   crosscheck backup;
   crosscheck archivelog all;
   delete noprompt expired backup;
   delete noprompt expired archivelog all;
   report obsolete recovery window of 7 days;
   delete noprompt obsolete recovery window of 7 days;
   backup as compressed backupset archivelog all;
   delete noprompt archivelog until time 'sysdate-1' backed up 1 times to device type disk;
}

解釋:

allocate channel <TAG> device type disk;

這些行是可選的,但如果您通過多個物理通道連接到儲存,則允許您分配多個通道

crosscheck backup;
crosscheck archivelog all;

這些交叉檢查行將根據儲存內容檢查實際的 RMAN 清單(在控製文件中)。那些不再儲存的備份和/或存檔日誌將被標記為“已過期”

delete noprompt expired backup;
delete noprompt expired archivelog all;

這些將刪除儲存中不匹配的所有庫存條目。

report obsolete recovery window of 7 days;

此行會將不再需要將數據庫還原到 7 天前的一致資產的任何備份文件標記為“已過時”

delete noprompt obsolete recovery window of 7 days;

此命令刪除所有標記為 ‘OBSOLETE’ 的文件

backup as compressed backupset archivelog all;

此命令將所有目前存檔備份為壓縮備份集。

delete noprompt archivelog until time 'sysdate-1' backed up 1 times to device type disk;

此命令刪除所有已備份的 1 天以前的檔案。

希望這對你有幫助!

引用自:https://dba.stackexchange.com/questions/119310