Oracle RMAN 保存ポリシーの設定と削除方法

Oracle Master Gold

Oracle Database のバックアップ管理において、RMAN保存ポリシーはストレージ容量の枯渇を防ぎ、必要な復旧期間を担保するための核心となる機能です。本記事では、RMAN(Recovery Manager)を用いた効率的なバックアップ保持ルールの設定、SHOW ALL による設定確認、そして不要なファイルの削除手順を初心者の方にも分かりやすく解説します。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

結論:RMAN保存ポリシーでやるべきこと

バックアップ運用の自動化には、以下の 3 ステップを実装するのが最短ルートです。

  1. ポリシー決定: 「過去何日分戻したいか(期間)」か「何世代残したいか(個数)」を決める。
  2. 設定と確認: CONFIGURE で設定し、SHOW ALL で他のパラメータとの整合性を確認する。
  3. 不要ファイルの削除: DELETE OBSOLETE コマンドを運用スクリプトに組み込む。

RMAN保存ポリシーとは?

RMAN保存ポリシー(Retention Policy)とは、バックアップファイルを「いつまで有効とみなすか」を定義するルールです。

このポリシーを適切に設定することで、RMANは「復旧に不要になったファイル」を OBSOLETE(不要) というステータスでマークします。これにより、管理者はどのファイルが削除可能かを個別に判断することなく、安全にストレージを最適化できます。


保存ポリシーの 2 つの種類

Oracle 19c において、保存ポリシーは大きく分けて「期間」と「世代」の 2 種類から選択します。

1. リカバリ・ウィンドウ・ベース(期間指定)

指定した日数分、過去のどの時点へも遡ってリカバリ(不完全回復)できる状態を維持します。

  • メリット: 「1週間前の状態に戻したい」といったビジネス要件に直結する管理が可能。
  • 設定例: 過去 7 日間のリカバリを可能にする場合SQL-- 過去7日間の任意の時点へ復旧できる状態を維持 CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

2. 冗長性ベース(世代指定)

指定した回数分(個数)のバックアップを保持します。

  • メリット: ストレージの消費量を予測しやすく、シンプルな運用に適している。
  • 設定例: 最新 2 世代分のバックアップを保持する場合SQL-- 最新から数えて2つ分を保持(デフォルトは 1) CONFIGURE RETENTION POLICY TO REDUNDANCY 2;

実装手順:設定確認から削除まで

前提条件

  • 実行環境: Oracle Database 19c (CDB/PDB問わず)
  • 必要権限: SYSDBA または SYSBACKUP

STEP 1:SHOW ALL で全設定を把握する

保存ポリシーだけを見るのではなく、バックアップ全体の最適化状況を確認するために SHOW ALL を実行します。

-- RMANに接続
rman target /

-- 全ての構成パラメータを表示
RMAN> SHOW ALL;

SHOW ALL を実行すると、以下のように現在の設定一覧が表示されます。

RMAN> show all;

リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
db_unique_name V19のデータベースにおけるRMAN構成パラメータ:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/19.0.0/dbhome_1/dbs/snapcf_v19.f'; # default

RMAN>

末尾に # default と付いているものは、初期設定のまま変更されていない項目です。

STEP 2:ポリシーを変更する

環境に合わせてコマンドを実行します。

-- 例:30日間の復旧期間を確保する場合
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 30 DAYS;

STEP 3:不要になったバックアップを削除する

ポリシーに基づき、不要(OBSOLETE)と判定されたファイルを物理削除します。

-- 削除対象の一覧を確認(削除はされない)
RMAN> REPORT OBSOLETE;

-- 不要なファイルを一括削除
RMAN> DELETE OBSOLETE;
[oracle@v19single ~]$ rman target /

Recovery Manager: Release 19.0.0.0.0 - Production on 日 2月 2 23:59:05 2025
Version 19.21.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

ターゲット・データベース: V19 (DBID=2957249400)に接続されました

RMAN> delete obsolete; ★保存ポリシーを参照し、不要なファイルを自動で削除

リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
Recovery Manager保存ポリシーがコマンドに適用されます。
Recovery Manager保存ポリシーが冗長性1に設定されます。
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=95 デバイス・タイプ=DISK
次の不要なバックアップおよびコピーが削除されます:
Type Key Completion Time Filename/Handle
-------------------- ------ ------------------ --------------------
アーカイブ・ログ 1 25-02-02 /u01/app/oracle/fast_recovery_area/V19/archivelog/2025_02_02/o1_mf_1_12_msz10jwr_.arc
アーカイブ・ログ 2 25-02-02 /u01/app/oracle/fast_recovery_area/V19/archivelog/2025_02_02/o1_mf_1_13_msz10mhy_.arc
アーカイブ・ログ 3 25-02-02 /u01/app/oracle/fast_recovery_area/V19/archivelog/2025_02_02/o1_mf_1_14_msz10q84_.arc
アーカイブ・ログ 4 25-02-02 /u01/app/oracle/fast_recovery_area/V19/archivelog/2025_02_02/o1_mf_1_15_msz11kr0_.arc
バックアップ・セット 1 25-02-02
バックアップ・ピース 1 25-02-02 /u01/app/oracle/fast_recovery_area/V19/backupset/2025_02_02/o1_mf_annnn_TAG20250202T234154_msz11lmk_.bkp
バックアップ・セット 2 25-02-02
バックアップ・ピース 2 25-02-02 /u01/app/oracle/fast_recovery_area/V19/backupset/2025_02_02/o1_mf_nnndf_TAG20250202T234155_msz11myr_.bkp
アーカイブ・ログ 5 25-02-02 /u01/app/oracle/fast_recovery_area/V19/archivelog/2025_02_02/o1_mf_1_16_msz12f2l_.arc
バックアップ・セット 3 25-02-02
バックアップ・ピース 3 25-02-02 /u01/app/oracle/fast_recovery_area/V19/backupset/2025_02_02/o1_mf_annnn_TAG20250202T234221_msz12f8m_.bkp
バックアップ・セット 4 25-02-02
バックアップ・ピース 4 25-02-02 /u01/app/oracle/fast_recovery_area/V19/autobackup/2025_02_02/o1_mf_s_1192059742_msz12glj_.bkp
アーカイブ・ログ 6 25-02-02 /u01/app/oracle/fast_recovery_area/V19/archivelog/2025_02_02/o1_mf_1_17_msz12tg4_.arc
バックアップ・セット 5 25-02-02
バックアップ・ピース 5 25-02-02 /u01/app/oracle/fast_recovery_area/V19/backupset/2025_02_02/o1_mf_annnn_TAG20250202T234234_msz12tnr_.bkp

このオブジェクトを削除しますか(YESまたはNOを入力してください)。 yes
アーカイブ・ログを削除しました
アーカイブ・ログ・ファイル名=/u01/app/oracle/fast_recovery_area/V19/archivelog/2025_02_02/o1_mf_1_12_msz10jwr_.arc レコードID=1 スタンプ=1192059681
アーカイブ・ログを削除しました
アーカイブ・ログ・ファイル名=/u01/app/oracle/fast_recovery_area/V19/archivelog/2025_02_02/o1_mf_1_13_msz10mhy_.arc レコードID=2 スタンプ=1192059683
アーカイブ・ログを削除しました
アーカイブ・ログ・ファイル名=/u01/app/oracle/fast_recovery_area/V19/archivelog/2025_02_02/o1_mf_1_14_msz10q84_.arc レコードID=3 スタンプ=1192059687
アーカイブ・ログを削除しました
アーカイブ・ログ・ファイル名=/u01/app/oracle/fast_recovery_area/V19/archivelog/2025_02_02/o1_mf_1_15_msz11kr0_.arc レコードID=4 スタンプ=1192059713
バックアップ・ピースが削除されました
バックアップ・ピース・ハンドル=/u01/app/oracle/fast_recovery_area/V19/backupset/2025_02_02/o1_mf_annnn_TAG20250202T234154_msz11lmk_.bkp レコードID=1 スタンプ=1192059714
バックアップ・ピースが削除されました
バックアップ・ピース・ハンドル=/u01/app/oracle/fast_recovery_area/V19/backupset/2025_02_02/o1_mf_nnndf_TAG20250202T234155_msz11myr_.bkp レコードID=2 スタンプ=1192059715
アーカイブ・ログを削除しました
アーカイブ・ログ・ファイル名=/u01/app/oracle/fast_recovery_area/V19/archivelog/2025_02_02/o1_mf_1_16_msz12f2l_.arc レコードID=5 スタンプ=1192059741
バックアップ・ピースが削除されました
バックアップ・ピース・ハンドル=/u01/app/oracle/fast_recovery_area/V19/backupset/2025_02_02/o1_mf_annnn_TAG20250202T234221_msz12f8m_.bkp レコードID=3 スタンプ=1192059741
バックアップ・ピースが削除されました
バックアップ・ピース・ハンドル=/u01/app/oracle/fast_recovery_area/V19/autobackup/2025_02_02/o1_mf_s_1192059742_msz12glj_.bkp レコードID=4 スタンプ=1192059742
アーカイブ・ログを削除しました
アーカイブ・ログ・ファイル名=/u01/app/oracle/fast_recovery_area/V19/archivelog/2025_02_02/o1_mf_1_17_msz12tg4_.arc レコードID=6 スタンプ=1192059754
バックアップ・ピースが削除されました
バックアップ・ピース・ハンドル=/u01/app/oracle/fast_recovery_area/V19/backupset/2025_02_02/o1_mf_annnn_TAG20250202T234234_msz12tnr_.bkp レコードID=5 スタンプ=1192059754
11オブジェクトを削除しました


RMAN>

トラブルシューティング:よくある ORA エラー

保存ポリシー関連で発生しやすい問題と対処法です。

エラーコード原因対処法
ORA-19809高速リカバリ領域(FRA)の制限超えDELETE OBSOLETE を実行するか、FRAのサイズを拡張する
ORA-19815アーカイブログ等で容量が一杯手動削除せず、必ず RMAN 経由で DELETE を行う

運用上の注意点とセキュリティ

  • 自動削除の落とし穴: DELETE OBSOLETE を実行しない限り、ファイルは消えません。必ずバックアップジョブの末尾にコマンドを追加してください。
  • 戻し方(デフォルトへの初期化):SQL-- 初期設定(冗長性1)に戻す CONFIGURE RETENTION POLICY CLEAR;
  • 参照系代替案: 物理削除の前に REPORT OBSOLETE で対象を確認する癖をつけることで、意図しない削除ミスを防げます。

FAQ

Q1: SHOW ALL と SHOW RETENTION POLICY の違いは何ですか?

A1: SHOW ALL はバックアップの保存先や最適化設定を含むすべての設定を表示し、SHOW RETENTION POLICY は保存ポリシーのみを抽出して表示します。

Q2: 保存ポリシーを設定すれば、ディスク容量は自動で空きますか?

A2: いいえ。ポリシーは「どれを消していいか」を決めるだけで、実際の削除には DELETE OBSOLETE コマンドの実行が必要です。

Q3: アーカイブ・ログも削除されますか?

A3: はい。設定した期間や世代の復旧に必要なくなったアーカイブ・ログも DELETE OBSOLETE で削除対象に含まれます。


まとめ

  • SHOW ALL コマンドで、保存ポリシーを含む RMAN 全体の設定を確認できる。
  • リカバリ・ウィンドウは「期間」、冗長性は「世代」で保持ルールを決める。
  • 設定は CONFIGURE RETENTION POLICY を使用する。
  • 空き容量を確保するには、定期的な DELETE OBSOLETE が必須。

[!IMPORTANT]

本記事は Oracle Database 19c を対象に解説します(他バージョンは画面や既定値が異なる場合があります)。


[参考]
Oracle Database バックアップおよびリカバリ・ユーザーズ・ガイド 19c

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

コメント

タイトルとURLをコピーしました