アーカイブログを自動で削除する方法(RMAN)

アーカイブログの問題点

増え続けるアーカイブログ

Oracleをアーカイブログ運用にすると、復旧する際には役立ちますが、常にログが増え続けるため、容量を圧迫してしまう問題があります。

ここでは、増え続けるアーカイブログを自動で削除するバッチを作成してみます。

直接アーカイブログファイルをエクスプローラーから開いて手動で削除することもできますが、システム的ではないのでおすすめできません。アーカイブログを自動で削除するように設定しておけば、手動で削除するよりかなり楽になります。

RMANでアーカイブログを削除する

Oracleのアーカイブログを削除するには、RMAN(Recovery Manager)を使います。

RMANを使うとデータベースの整合性をとって削除をしてくれます。

アーカイブログを自動で削除するバッチを作成する

RMANのスクリプト作成

まずはアーカイブログを削除するRMANのスクリプトを作成します。このファイルを「del_arclog.rcv」として保存します。

「del_arclog.rcv」

run{
 # 1日以前を削除
 delete noprompt archivelog until time 'sysdate-1';
 # OSから削除された場合、oracle側も削除する
 crosscheck archivelog all;
 delete expired archivelog all;
}

ここでは「sysdate-1」として1日分のアーカイブログを残して残りは削除します。日数は適宜変更してください。

RMANの「crosscheck」コマンドですでに削除済みのアーカイブログをチェックし、「delete」で完全に削除します。

参照:RMANコマンドの概要

自動削除バッチを作成する

次に、先ほど作成したRMANスクリプト「del_arclog.rcv」を実行するバッチファイルを作成します。ファイル名は「del_arclog.bat」とします。

「del_arclog.bat」

REM アーカイブログを削除する
rman target / @del_arclog.rcv log=del_arclog.log append nocatalog

RMANでスクリプトを実行するバッチを作成できました。

このバッチファイル「del_arclog.bat」をWindowsのタスクスケジュールに追加してやれば、日々Oracleのアーカイブログファイルを自動で削除することができます。アーカイブログを手動で削除するのはとても手間なので、ぜひ自動削除にしてみてください。

以上、Oracleのアーカイブログファイルを自動で削除する方法でした。

コメント