Oracle Database の運用において、RMAN(Recovery Manager)によるバックアップ管理は不可欠です。しかし、デフォルト設定のままではバックアップファイルが意図しないディレクトリに作成されたり、ファイル名の判別が困難になったりすることがあります。
本記事では、Oracle RMAN を使用したバックアップの出力先デバイス、ディレクトリ、および一意のファイル名を決定する FORMAT 句 の指定方法を、19c の仕様に基づき分かりやすく解説します。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
結論:RMAN バックアップ運用の最短手順
特定のディレクトリに一意のファイル名でバックアップを取得するための「やることリスト」です。
- 出力先ディレクトリの作成: OS ユーザー(oracle)に書込権限があることを確認。
- FORMAT 句の活用:
BACKUPコマンド実行時にパスとプレースホルダーを指定。 - 定常設定(任意):
CONFIGURE CHANNELでデフォルトの出力先を固定。 - 自動バックアップ設定: 制御ファイルと SPFILE の出力先も併せて確認。
背景と基礎:なぜ出力先の指定が必要か
RMAN はデフォルトで 高速リカバリ領域(FRA: Fast Recovery Area) またはプラットフォーム固有のデフォルト場所($ORACLE_HOME/dbs など)にバックアップを作成します。
しかし、ディスク容量の管理や、バックアップファイルを外部ストレージへ転送する運用では、明示的なディレクトリ指定と、一目で内容がわかるファイル名(プレースホルダー)の設定が強く推奨されます。
手順・実装:出力先とファイル名の指定方法
1. 出力先デバイスの指定(DISK または SBT)
RMAN では、バックアップ先を「ディスク」か「テープ(SBT)」から選択します。
- DISK: ローカルディスクや NFS 等のファイルシステム。
- SBT: メディア管理ライブラリ(MML)を介したテープ装置やクラウドストレージ。
2. 出力先ディレクトリとファイル名の規則
FORMAT 句の中でプレースホルダー(変数の代わりとなる記号)を使用することで、一意のファイル名を生成できます。
| プレースホルダー | 説明 |
| %U | 推奨。 システムが生成する一意の識別子(8文字以上)を含む。 |
| %d | データベース名(DB_NAME)。 |
| %T | 年月日(YYYYMMDD)。 |
| %t | バックアップ・セットのタイムスタンプ。 |
| %s | バックアップ・セットの順序番号。 |
| %p | バックアップ・セット内のピース番号。 |
実行例:コピー&ペーストで使える RMAN コマンド
以下の例では、Linux 環境の /u01/app/oracle/backup/ ディレクトリを使用します。
※実行には SYSBACKUP または SYSDBA 権限が必要です。
特定のディレクトリへバックアップを取得する
%U を使用して、重複のないファイル名でバックアップを取得する最も標準的な例です。
-- 事前に OS 上でディレクトリ作成と権限付与が必要です
-- mkdir -p /u01/app/oracle/backup/
-- chown oracle:oinstall /u01/app/oracle/backup/
BACKUP DATABASE FORMAT '/u01/app/oracle/backup/%U';
実行ログと結果の確認:
RMAN> BACKUP DATABASE FORMAT '/u01/app/oracle/backup/%U'; ★
backupを25-02-04で開始しています
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=96 デバイス・タイプ=DISK
チャネルORA_DISK_1: フル・データファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
入力データファイル ファイル番号=00001 名前=/u01/app/oracle/oradata/V19/system01.dbf
入力データファイル ファイル番号=00003 名前=/u01/app/oracle/oradata/V19/sysaux01.dbf
入力データファイル ファイル番号=00004 名前=/u01/app/oracle/oradata/V19/undotbs01.dbf
入力データファイル ファイル番号=00007 名前=/u01/app/oracle/oradata/V19/users01.dbf
チャネルORA_DISK_1: ピース1 (25-02-04)を起動します
チャネルORA_DISK_1: ピース1 (25-02-04)が完了しました
ピース・ハンドル=/u01/app/oracle/backup/013h020j_1_1_1 タグ=TAG20250204T234938 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:25
backupを25-02-04で終了しました
Control File and SPFILE Autobackupを25-02-04で開始しています
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20250204-00 コメント=NONE
Control File and SPFILE Autobackupを25-02-04で終了しました
RMAN> list backup;
バックアップ・セットのリスト
===================
BS Key Type LV Size Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ --------
1 Full 2.26G DISK 00:00:23 25-02-04
BPキー: 1 ステータス: AVAILABLE 圧縮: NO タグ: TAG20250204T234938
ピース名: /u01/app/oracle/backup/013h020j_1_1_1 ★
バックアップ・セット1のデータファイルのリスト
File LV Type Ckp SCN Ckp時間 Abs Fuz SCN Sparse Name
---- -- ---- ---------- -------- ----------- ------ ----
1 Full 2274274 25-02-04 NO /u01/app/oracle/oradata/V19/system01.dbf
3 Full 2274274 25-02-04 NO /u01/app/oracle/oradata/V19/sysaux01.dbf
4 Full 2274274 25-02-04 NO /u01/app/oracle/oradata/V19/undotbs01.dbf
7 Full 2274274 25-02-04 NO /u01/app/oracle/oradata/V19/users01.dbf
BS Key Type LV Size Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ --------
2 Full 10.20M DISK 00:00:00 25-02-04
BPキー: 2 ステータス: AVAILABLE 圧縮: NO タグ: TAG20250204T235004
ピース名: /u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20250204-00
SPFILEも含まれます: 修正時間: 25-02-04
SPFILE db_unique_name: V19
含まれている制御ファイル: Ckp SCN: 2274294 Ckp時間: 25-02-04
補足: 指定したディレクトリに
013h020j_1_1_1という形式のファイルが生成されます。実行結果の「ピース・ハンドル」が実際のファイルパスです。
複数のディレクトリに分散して出力する(マルチ・チャネル)
データ量が多い場合、複数のチャネルを割り当てて書き込み先を分散させることでパフォーマンスを向上させます。
RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE DISK FORMAT '/u01/app/oracle/backup1/%U';
ALLOCATE CHANNEL c2 DEVICE TYPE DISK FORMAT '/u02/app/oracle/backup2/%U';
BACKUP DATABASE;
}
トラブルシューティング:よくあるエラーと対処法
| エラーコード | 原因 | 確認・対処方法 |
| ORA-19504 | ファイル作成失敗 | OS ディレクトリの存在と oracle ユーザーの権限を確認。 |
| ORA-19505 | デバイス識別エラー | 指定したパスが正しいか、ディスクがマウントされているか確認。 |
| ORA-27040 | I/Oエラー | ディレクトリ容量が不足していないか確認。 |
運用上の注意:制御ファイルの「自動バックアップ」に注意
BACKUP DATABASE コマンドで FORMAT を指定しても、制御ファイルと SPFILE の自動バックアップ(Autobackup) の出力先は変わりません。これらはデフォルトで FRA または $ORACLE_HOME/dbs に出力されます。
一貫性を保つには、あらかじめ以下の設定を行っておくことを推奨します。
-- 自動バックアップの出力先も統一する場合
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/app/oracle/backup/conf_%F';
RMAN のバックアップ指定に関する FAQ
Q: FORMAT 句を指定しなかった場合、どこに保存されますか?
A: DB_RECOVERY_FILE_DEST(高速リカバリ領域)が設定されていればそこへ、設定がなければプラットフォーム既定の場所(例:$ORACLE_HOME/dbs)に保存されます。
Q: ファイル名に日本語(マルチバイト文字)は使えますか?
A: OS レベルでの予期せぬ動作を防ぐため、RMAN のパスやファイル名には半角英数字とアンダースコアのみを使用してください。
Q: バックアップ先のディスクがいっぱいになったらどうなりますか?
A: RMAN はエラーを出力して停止します。定期的に DELETE OBSOLETE コマンドで古いバックアップを削除する運用を組み込んでください。
まとめ
- FORMAT 句 を使うことで、バックアップの保存先とファイル名を自由にカスタマイズ可能。
- 一意性を確保するために %U プレースホルダーを必ず含める。
- 複数ディレクトリへの分散には ALLOCATE CHANNEL を活用する。
- 制御ファイルの自動バックアップ先は別途 CONFIGURE で設定が必要。
本記事は Oracle Database 19c を対象に解説します(他バージョンは画面や既定値が異なる場合があります)。
[参考]
Oracle Database バックアップおよびリカバリ・ユーザーズ・ガイド 19c
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?



コメント