Oracle Recovery Manager(RMAN)は、データベースのバックアップとリカバリを管理するための強力な標準ツールです。本記事では、運用管理で不可欠な RMAN コマンド(LIST, REPORT, DELETE)の具体的な使い方と、それぞれのコマンドが果たす役割について詳しく解説します。これらの機能を正しく使い分けることで、バックアップ状況の正確な把握と、ストレージ容量の効率的な管理が可能になります。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
結論:RMAN 管理の最短手順
RMAN でバックアップ状況を確認し、クリーンアップする際の標準的な流れは以下の通りです。
- LIST:現在どのようなバックアップが存在するかを確認する。
- REPORT:リカバリ・ポリシーに基づき、不足や不要なものがないか分析する。
- DELETE:分析結果に基づき、不要なバックアップを物理的・論理的に削除する。
背景と基礎
RMAN は、バックアップ情報を「制御ファイル」または「リカバリ・カタログ」で管理しています。
- LIST: 記録されている情報をそのまま「一覧表示」します。
- REPORT: 保持ポリシー(バックアップを何日分残すか等)に照らして「分析結果」を出力します。
初心者向けメモ
「LIST」は目録を確認する作業、「REPORT」は「現在のバックアップ体制でリカバリが可能か?」を診断する作業、と覚えると分かりやすいです。
RMAN コマンドの実行手順と実装
各コマンドの使用例と詳細な説明を紹介します。
前提条件
- 対象 OS: Linux / Windows 共通
- 権限:
SYSDBAまたはSYSBACKUP権限を持つユーザー - 環境: CDB/PDB 構成の場合は、必要に応じて
set containerで切り替えるか、ルート(CDB$ROOT)から実行します。
1. LIST コマンド:バックアップ情報の表示
取得済みのバックアップやコピーのメタデータを確認するためのコマンドです。
1.1 バックアップセットの確認(LIST BACKUP)
説明: データベース、制御ファイル、アーカイブログなどのバックアップセットおよびバックアップピースの情報を一覧表示します。いつ、どのファイルが、どこにバックアップされたかを特定するのに役立ちます。
# バックアップセットの詳細(完了時間、サイズ、デバイスタイプ等)を表示
RMAN> LIST BACKUP;
1.2 イメージコピーの確認(LIST COPY)
説明: BACKUP AS COPY コマンドで作成された、データファイル、制御ファイル、アーカイブログのイメージコピー(OSファイルとしての複製)に関する情報を表示します。
# イメージコピーとして取得したファイルの情報を表示
RMAN> LIST COPY;
1.3 アーカイブログの範囲指定表示(LIST ARCHIVELOG)
説明: バックアップ済みのもの、あるいはディスク上に存在するアーカイブログを検索・表示します。特定の期間に絞った確認が可能です。
# 過去1日間に生成されたアーカイブログのリストを表示
RMAN> LIST ARCHIVELOG FROM TIME 'SYSDATE-1';
RMAN> LIST ARCHIVELOG FROM TIME 'SYSDATE-1';
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
データベースdb_unique_name V19のアーカイブ・ログ・コピーのリスト
=====================================================================
Key Thrd Seq S Low時間
------- ---- ------- - --------
1 1 13 A 25-03-03
名前: /u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_13_1153872185.ddf
2 1 14 A 25-03-03
名前: /u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_14_1153872185.dbf
3 1 15 A 25-03-03
名前: /u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_15_1153872185.dbf
4 1 16 A 25-03-03
名前: /u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_16_1153872185.dbf
5 1 17 A 25-03-03
名前: /u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_17_1153872185.dbf
6 1 18 A 25-03-03
名前: /u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_18_1153872185.dbf
2. REPORT コマンド:バックアップ状況の分析
「〜のやり方を知りたい」という時に役立つ、分析・診断系コマンドです。
2.1 不足しているバックアップの特定(REPORT NEED BACKUP)
説明: 設定されている「保存方針(保持ポリシー)」を満たすために、追加のバックアップが必要なデータファイルを特定します。
# 現在の保持ポリシーに従って、バックアップが必要なファイルを特定
RMAN> REPORT NEED BACKUP;
# 7日間のリカバリを保証するために不足しているファイルを確認
RMAN> REPORT NEED BACKUP RECOVERY WINDOW OF 7 DAYS;
2.2 不要なバックアップの特定(REPORT OBSOLETE)
説明: 保持ポリシーの期限を過ぎ、リカバリに必要なくなったバックアップ(不要なバックアップ)をリストアップします。
# 保存期間を過ぎて「不要(OBSOLETE)」と判定されたものを一覧表示
RMAN> REPORT OBSOLETE;
2.3 データベース構成の確認(REPORT SCHEMA)
説明: データベース内の現在のファイル構成(テーブルスペース名、ファイル名、サイズ等)を表示します。
# 現在のデータファイルの配置情報を一覧表示
RMAN> REPORT SCHEMA;
3. DELETE コマンド:不要なバックアップの削除
不要になったファイルを物理的に削除し、管理情報からも除外するためのコマンドです。
3.1 不要バックアップの削除(DELETE OBSOLETE)
説明: REPORT OBSOLETE で「不要」と判定されたバックアップファイルを実際に削除します。
-- リカバリ・ポリシーに基づき不要なバックアップを削除(要確認応答)
RMAN> DELETE OBSOLETE;
実行結果の例:
RMAN> DELETE OBSOLETE;
Recovery Manager保存ポリシーがコマンドに適用されます。
Recovery Manager保存ポリシーが冗長性1に設定されます。
チャネルORA_DISK_1の使用
次の不要なバックアップおよびコピーが削除されます:
Type Key Completion Time Filename/Handle
-------------------- ------ ------------------ --------------------
バックアップ・セット 1 25-03-03
バックアップ・ピース 1 25-03-03 /u01/app/oracle/product/19.0.0/dbhome_1/dbs/013je945_1_1_1
アーカイブ・ログ 1 25-03-03 /u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_12_1153872185.dbf
バックアップ・セット 2 25-03-03
バックアップ・ピース 2 25-03-03 /u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20250303-00
アーカイブ・ログ 2 25-03-03 /u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_13_1153872185.dbf
アーカイブ・ログ 3 25-03-03 /u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_14_1153872185.dbf
アーカイブ・ログ 4 25-03-03 /u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_15_1153872185.dbf
アーカイブ・ログ 5 25-03-03 /u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_16_1153872185.dbf
アーカイブ・ログ 6 25-03-03 /u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_17_1153872185.dbf
アーカイブ・ログ 7 25-03-03 /u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_18_1153872185.dbf
このオブジェクトを削除しますか(YESまたはNOを入力してください)。 yes
バックアップ・ピースが削除されました
バックアップ・ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/013je945_1_1_1 レコードID=1 スタンプ=1194796165
アーカイブ・ログを削除しました
アーカイブ・ログ・ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_12_1153872185.dbf レコードID=1 スタンプ=1194796918
バックアップ・ピースが削除されました
バックアップ・ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20250303-00 レコードID=2 スタンプ=1194796190
アーカイブ・ログを削除しました
アーカイブ・ログ・ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_13_1153872185.dbf レコードID=2 スタンプ=1194796927
アーカイブ・ログを削除しました
アーカイブ・ログ・ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_14_1153872185.dbf レコードID=3 スタンプ=1194796930
アーカイブ・ログを削除しました
アーカイブ・ログ・ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_15_1153872185.dbf レコードID=4 スタンプ=1194796933
アーカイブ・ログを削除しました
アーカイブ・ログ・ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_16_1153872185.dbf レコードID=5 スタンプ=1194796936
アーカイブ・ログを削除しました
アーカイブ・ログ・ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_17_1153872185.dbf レコードID=6 スタンプ=1194796939
アーカイブ・ログを削除しました
アーカイブ・ログ・ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_18_1153872185.dbf レコードID=7 スタンプ=1194796942
9オブジェクトを削除しました
3.2 確認なしでの削除(NOPROMPT)
説明: 削除時の確認メッセージ(YES/NO)を省略して実行します。シェルスクリプトやバッチ処理で自動化する際に必須のオプションです。
# 確認プロンプトを出さずに、不要なバックアップを即座に削除
RMAN> DELETE NOPROMPT OBSOLETE;
トラブルシューティング:よくある ORA エラー
| エラーコード | 原因 | 対処法 |
| ORA-19606 | 保持ポリシーにより保護されているファイルを削除しようとした | 削除対象が真に不要か確認し、必要なら KEEP 属性を外すか FORCE オプションを使用。 |
| ORA-19633 | 制御ファイル内の管理情報と物理ファイルの状態が不一致 | CROSSCHECK を実行して、物理ファイルがない情報を EXPIRED に変更してから DELETE EXPIRED を実行。 |
運用上の注意点
- リスク:
DELETEコマンドは物理ファイルを削除します。誤操作を防ぐため、必ず先にREPORT OBSOLETEを実行して削除対象を目視確認する運用を推奨します。 - 戻し方: RMANで削除したファイルは原則復旧できません。ストレージ側のスナップショットや外部バックアップからのリストアが必要です。
- 参照系優先: 運用変更前は
LISTやREPORTで現状の「スナップショット」を確認する癖をつけましょう。
FAQ:よくある質問
Q:DELETE OBSOLETE と DELETE EXPIRED の違いは何ですか?
A:OBSOLETE は「方針として不要になったもの」を指し、EXPIRED は「CROSSCHECKの結果、物理ファイルが見当たらないと判定された管理情報」を指します。
Q:保持ポリシーを変更するにはどうすればいいですか?
A:CONFIGURE RETENTION POLICY TO... コマンドを使用します。
Q:特定のバックアップセットだけを消すことはできますか?
A:はい、DELETE BACKUPSET <キー番号>; で指定削除が可能です。
まとめ
- LIST はバックアップの目録をそのまま確認する。
- REPORT は保持ポリシーに対する「分析・診断」を行う。
- DELETE は不要なバックアップを削除して容量を確保する。
- 自動化の際は NOPROMPT オプションを活用する。
本記事は Oracle Database 19c を対象に解説します(他バージョンは画面や既定値が異なる場合があります)。
[参考]
Oracle Database バックアップおよびリカバリ・ユーザーズ・ガイド 19c
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?



コメント