オラクルのアーカイブログファイルを削除する方法です。
アーカイブログファイルは放っておくとディスクを圧迫するので定期的に削除してください。
手順
こんな感じでアーカイブログが溜まってディスクを圧迫しています。
①RMANを起動する
- コマンドプロンプト
- C:\>set ORACLE_SID=TESTDB C:\>rman target / Recovery Manager: Release 11.2.0.4.0 - Production on 火 12月 8 18:34:51 2020 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. ターゲット・データベース: TESTDB (データベースID=127523583)に接続されました RMAN>
上記はSID「TESTDB」のRMANに接続する例です
②アーカイブログを削除する
RMANでアーカイブログを削除するには以下のコマンドを使用します。
- (日数で指定する場合)
- delete archivelog until time 'sysdate - <日数>';
- (全てのアーカイブログを削除する場合)
- delete archivelog all;
以下は30日以前のアーカイブログを削除する例です。
- コマンドプロンプト
- C:\RMAN> delete archivelog until time 'sysdate - 30'; リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています チャネル: ORA_DISK_1が割り当てられました チャネルORA_DISK_1: SID=18 デバイス・タイプ=DISK データベースdb_unique_name TESTDBのアーカイブ・ログ・コピーのリスト ===================================================================== Key Thrd Seq S Low時間 ------- ---- ------- - -------- 1 1 1 A 20-12-01 名前: C:\ORACLE\ARCHIVE\ARC0000000001_0828053967.0001 2 1 2 A 20-12-02 名前: C:\ORACLE\ARCHIVE\ARC0000000002_0828053967.0001 3 1 3 A 20-12-03 名前: C:\ORACLE\ARCHIVE\ARC0000000003_0828053967.0001 このオブジェクトを削除しますか(YESまたはNOを入力してください)。
OKだったら「YES」を入力します
- コマンドプロンプト
- このオブジェクトを削除しますか(YESまたはNOを入力してください)。 YES アーカイブ・ログを削除しました アーカイブ・ログ・ファイル名=C:\ORACLE\ARCHIVE\ARC0000000001_0828053967.0001 レコードID=1 スタンプ=723048560 アーカイブ・ログを削除しました アーカイブ・ログ・ファイル名=C:\ORACLE\ARCHIVE\ARC0000000002_0828053967.0001 レコードID=2 スタンプ=723049589 アーカイブ・ログを削除しました アーカイブ・ログ・ファイル名=C:\ORACLE\ARCHIVE\ARC0000000003_0828053967.0001 レコードID=3 スタンプ=723050603 アーカイブ・ログを削除しました 3オブジェクトを削除しました RMAN>
RMANを抜けるには「exit」を実行します。
- コマンドプロンプト
- RMAN> exit Recovery Managerが完了しました。 C:\>
これで30日以前のアーカイブログが削除されました。
備考
- RMANを使わずにArchiveLogファイルを直接削除すると、オラクルがArchiveLogファイルを削除したことを認識できずにデータベースがおかしなことになるため、必ずRMANを使用して削除するようにしてください。