web-dev-qa-db-ja.com

フラッシュリカバリ領域(FRA)スペースをいっぱいにするアーカイブログ

私はDBAの役職に就くために採用されましたが、まだ就職する準備ができていませんでした。トレーニングを受けている間、私は潜在的な問題に近づいています。

私のOracle 11gデータベースのフラッシュリカバリ領域(FRA)がいっぱいになりつつあります(残り2.5%)。ライブバックアップを実行しているため、ARCHIVELOGモードになっています(少なくともそれが理由です)。 Enterprise Managerを介して不要なバックアップをすべてクリアしましたが、アーカイブログは割り当てられたFRAスペースの50%以上を占めています。古いアーカイブログの一部を削除してスペースを解放することは可能ですか?サーバーは数か月前のログをまだ保持しており、それほど遠いバックアップは必要ありません。

それらを削除できる場合、これを行うための最良の方法は何ですか?

6

Oracleは古いファイルを自動的に削除します。通常、手動で削除する必要はありません。

RMANメンテナンスの重要な部分は、不要になったバックアップを削除することです。高速リカバリ領域を構成すると、データベースはこの領域内の不要なファイルを自動的に削除します

From RMANバックアップおよびリポジトリメンテナンスの概要

まず、スペースが不足していないかどうかを確認します。たとえば、次のクエリを使用します(サンプル出力が含まれています)。

SELECT * FROM V$RECOVERY_FILE_DEST;

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

スペースが不足している場合は、保持ポリシーを減らすか、FRAのサイズを増やす必要があります。

5
Jussi

このための小さな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インベントリ(制御ファイル内)を確認します。ストレージに存在しないバックアップやアーカイブログは「EXPIRED」としてマークされます

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日以上前のすべてのアーカイブを削除します。

これがあなたに役立つことを願っています!

0
Silvarion