rman で不要なアーカイブログを削除する手順

Oracle のアーカイブログが不要になりノーアーカイブに変更した場合、
過去に取得したアーカイブログは自動的に削除されることはなく残存する。

過去ログだけ残しておいても一貫性は保たれていないため、削除しておく方が望ましい。
有事の際のリカバリ(ロールフォワード)で使えないので、ノーアーカイブなら無用だ。
rman での不要ファイル削除コマンドを紹介する。

OS コマンドで削除することも出来るが、Oracle 内部的には削除したファイルを
認識したままとなっているので、アーカイブ系の ORA エラーが発生する場合がある。
rman で削除することにより、整合性を確保することが出来る。



削除方法

rman に接続

rman target /

アーカイブログ状態を確認

RMAN> list archivelog all;

動的パフォーマンスビューで確認する場合

sqlplus / as sysdba
SQL> select recid, name, status from v$archived_log where name is not null;

  • recid
  • アーカイブログのレコード ID

  • name
  • アーカイブログファイル名

  • status
  • ログの状態
    ( A :使用可能, D :削除済, U :使用不可能, X :期限切れ )

    アーカイブログの整合性チェック

    RMAN> crosscheck archivelog all;

    rman で認識しているログファイルの実体がない場合などに検証が失敗する。
    「アーカイブ・ログの検証が正常終了しました」が出力されることを確認する。

    チェック済アーカイブログを全削除

    RMAN> delete expired archivelog all;
    「このオブジェクトを削除しますか?」に YES 入力

    削除後の状態を確認

    RMAN> list archivelog all;

    動的パフォーマンスビューで確認する場合

    sqlplus / as sysdba
    SQL> select recid, name, status from v$archived_log where name is not null;