Oracleのアーカイブログで以前のデータを消す方法

リカバリマネージャRMANでアーカイブログを削除できるが、実際のアーカイブログフォルダを見ると リストにも表示しないファイルがまだ残っていたりすることがある。 この場合はOS側から削除してもいいらしい。削除の手順としては以下のとおり。

まずRMANを実行して削除

> set ORACLE_SID=FOO
> rman target SYS/SYSのパスワード
RMAN> list archivelog all;
表示したのが管理対象のログファイル
RMAN> delete archivelog all;
RMAN> list archivelog all;
表示しなくなるはず
RMAN> exit

なお、日付指定も可能。例えば30日以前のアーカイブログファイルなら

RMAN> delete archivelog until time 'sysdate - 30';

OS側で削除

上記で表示・削除しているのはoracleが管理対象としているファイルだけ。 なので管理対象外のファイルは残ったままとなる。その場合はOS側コマンドで削除する。 削除後、念のためチェックして(間違って管理対象を削除した場合でも)oracleに認識させる。

> set ORACLE_SID=FOO
> rman target SYS/SYSのパスワード
RMAN> crosscheck archivelog all;
なにもなければ対象なしとなるはず
RMAN> delete expired archivelog all;
なにもなければ削除もない
RMAN> exit

参考サイトは以下がよい。

アーカイブログの削除方法まとめ(ORA-00257対処方法)