Oracle RMAN:バックアップファイルをカタログ登録する方法

Oracle Master Gold

「バックアップファイルを誤ってカタログから削除してしまった」「OSコマンドでコピーしたデータファイルをRMANで管理したい」といった場面はありませんか?Oracle Recovery Manager(RMAN)では、物理ファイルが健全であれば、後からでも制御ファイルやリカバリ・カタログへ情報を再登録できます。

本記事では、Oracle RMANにおけるバックアップの再登録手順と、RMAN以外で取得したファイルのカタログ登録方法を初心者にも分かりやすく解説します。

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

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


結論:最短の登録手順(Checklist)

カタログ(制御ファイル)にバックアップ情報を戻す、あるいは新規登録する最短手順は以下の通りです。

  1. 物理ファイルの確認: ls -l 等で対象ファイルが存在し、Oracleユーザーに読取権限があるか確認。
  2. RMAN接続: rman target / でターゲット・データベースに接続。
  3. カタログ登録の実行:
    • ディレクトリごと一括:CATALOG START WITH '<ディレクトリパス>';
    • 特定のバックアップピース:CATALOG BACKUPPIECE '<ファイルパス>';
  4. 登録確認: LIST BACKUP; または LIST COPY; で情報が表示されるか確認。

背景と基礎:なぜ「カタログ登録」が必要なのか?

RMANは、バックアップの場所や時期などの情報を「制御ファイル」または「リカバリ・カタログ(専用DB)」で管理しています。

  • カタログにないファイルは使えない: OS上にバックアップファイルが存在していても、RMANの管理情報から消えていると RESTORE コマンドで認識されません。
  • 「CATALOG」コマンドの役割: 外部にある(または忘れられた)物理ファイルのスキャンを行い、RMANのリポジトリにそのメタデータを書き込む処理です。

手順1:削除されたRMANバックアップを再登録する

カタログから DELETE された、あるいは保存期間を過ぎて情報が消えたバックアップピースを再登録します。

1. 事前準備(CDB/PDB共通)

実行ユーザー:oracle (OS)

必要権限:SYSDBA または SYSBACKUP

対象:Oracle Database 19c (マルチテナント構成時は、共通ユーザーでCDB$ROOTに接続推奨)

2. バックアップピースを個別に登録する

特定のバックアップピースのみを認識させたい場合は、以下のコマンドを使用します。

-- 特定のバックアップピースを指定してカタログに登録
RMAN> CATALOG BACKUPPIECE '/home/oracle/backup/013hrp1s_1_1';

3. ディレクトリ内のファイルを一括で登録する

複数のファイルがある場合、パスの前方一致で検索・登録が可能です。

-- 指定したディレクトリ配下の有効なファイルをすべて検索して登録
RMAN> CATALOG START WITH '/home/oracle/backup/';

補足: START WITH は指定した文字列で始まるパスをスキャンします。末尾に / を含めることで、そのディレクトリ全体を対象にできます。


手順2:RMAN以外でコピーしたファイルを登録する

OSの cp コマンドやストレージ機能でコピーした「ユーザー管理バックアップ」のデータファイルを、RMANの「イメージ・コピー」として認識させる方法です。

1. データファイル・コピーの登録

-- OSコピーしたデータファイルをRMANのイメージ・コピーとして登録
RMAN> CATALOG DATAFILECOPY '/backup_location/system01.dbf';

2. 登録したファイルによるリストア

登録後は、通常のRMANバックアップと同様に扱えます。

-- 登録したコピーを元の位置へリストアする例
RMAN> RESTORE DATAFILE 1 FROM TAG <登録時に付与されたタグ>;

実行例と結果の確認

以下は、実際にファイルをカタログ登録した際のログです。

-- 1. 現状の確認(この時点では該当ファイルはリストに出てこない)
RMAN> LIST BACKUP;

-- 2. カタログ登録の実行
RMAN> CATALOG START WITH '/home/oracle/backup/013hrp1s_1_1';

-- 検索結果が表示されるので 'yes' で確定
-- ファイル名: /home/oracle/backup/013hrp1s_1_1
-- これらのファイルをカタログに追加しますか(YESまたはNOを入力してください)。 yes

-- 3. 再度リストを確認
RMAN> LIST BACKUP;

SQLの意図: 未登録の物理ファイルをスキャンし、制御ファイル内のバックアップ・セット情報を更新します。これにより、リストア時の候補として自動選択されるようになります。

RMAN> list backup;

リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
指定がリポジトリ内のどのバックアップとも一致しません

RMAN> catalog start with '/home/oracle/backup/013hrp1s_1_1'; ★

パターン/home/oracle/backup/013hrp1s_1_1と一致するすべてのファイルを検索しています

データベースに対する不明なファイルのリスト
=====================================
ファイル名: /home/oracle/backup/013hrp1s_1_1

これらのファイルをカタログに追加しますか(YESまたはNOを入力してください)。 yes
ファイルをカタログに追加しています...
カタログへの追加を終了しました

カタログに追加されたファイルのリスト
=======================
ファイル名: /home/oracle/backup/013hrp1s_1_1

RMAN> list backup;


バックアップ・セットのリスト
===================


BS Key Type LV Size Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ --------
1 Full 1.15G DISK 00:00:11 25-02-15
BPキー: 1 ステータス: AVAILABLE 圧縮: NO タグ: TAG20250215T120828
ピース名: /home/oracle/backup/013hrp1s_1_1 ★登録された
バックアップ・セット1のデータファイルのリスト
File LV Type Ckp SCN Ckp時間 Abs Fuz SCN Sparse Name
---- -- ---- ---------- -------- ----------- ------ ----
1 Full 2084356 25-02-15 NO +DATA/V19/DATAFILE/system.257.1157469475
3 Full 2084356 25-02-15 NO +DATA/V19/DATAFILE/sysaux.258.1157469511
4 Full 2084356 25-02-15 NO +DATA/V19/DATAFILE/undotbs1.259.1157469525
7 Full 2084356 25-02-15 NO +DATA/V19/DATAFILE/users.260.1157469527

トラブルシューティング:ORAエラーと対処法

エラーコード原因対処法
ORA-19505ファイルが見つからない物理パスが正しいか、OS権限があるか確認してください。
ORA-19809高速リカバリ領域(FRA)の不足カタログ登録により制限値を超える場合、FRA容量を拡張するか古いファイルを削除します。
RMAN-06004カタログDBとの通信エラーRESYNC CATALOG; を実行し、リカバリ・カタログとの同期を確認してください。

運用上の注意点と落とし穴

  • リスクと戻し方: 誤って古い(不整合な)ファイルを登録すると、リカバリ時にそれが選択され、失敗の原因になります。誤登録した場合は CHANGE BACKUPPIECE '...' UNCATALOG; で登録のみを解除できます。
  • セキュリティ: カタログ登録コマンドを実行するには、DBA権限が必要です。バックアップパスワードが設定されている暗号化バックアップの場合、登録はできてもリストアにはパスワードが必要です。
  • パスワードの注意: RMAN接続時のパスワードに @ 記号が含まれると、接続文字列として誤認されるため、ダブルクォーテーションで囲む等の工夫が必要です。

FAQ:よくある質問

Q1. カタログ登録しても LIST BACKUP に出ないのですが?

A. 登録したものが「バックアップ・セット」ではなく「イメージ・コピー」として認識されている可能性があります。LIST COPY; コマンドを試してください。

Q2. 登録したバックアップが破損していないか確認できますか?

A. はい。VALIDATE BACKUPSET <キー番号>; を実行することで、物理的な破損やブロックの不整合をチェックできます。

Q3. リカバリ・カタログ(外部DB)を使っていない場合も有効ですか?

A. 有効です。その場合、情報はターゲットDBの「制御ファイル」に書き込まれます。


まとめ

  • 削除されたバックアップCATALOG START WITH で簡単に復活できる。
  • OSコピーしたファイルCATALOG コマンドでRMANの管理下に置ける。
  • 登録後は必ず LIST BACKUPVALIDATE有効性を確認する。
  • 運用時は CROSSCHECK を併用し、カタログと実体の整合性を保つ。

[!IMPORTANT]

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


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

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

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

コメント

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