Oracle Recovery Manager(RMAN)のバックアップ運用において、パフォーマンスを左右する重要な概念の一つが「多重化(Multiplexing)」です。これは、複数のデータファイルからブロックを並行して読み込み、一つのバックアップピースに混在させて書き込む技術を指します。
本記事では、多重化バックアップセットの基本概念から、設定方法、メリット・デメリット、そしてパフォーマンスを最大化するためのおすすめ設定値までをプロの視点で解説します。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
1. 多重化バックアップセットの仕組み(Multiplexing)
RMANの多重化とは、「1つのチャンネルが、複数のデータファイルを同時に読み込んで1つのバックアップピースに書き出す」ことです。これにより、個々のデータファイルの読み取り速度が遅い場合でも、複数のファイルから同時に読み出すことで書き込み先のデバイス(ディスクやテープ)のスループットを最大限に引き出すことができます。
多重化のイメージ
多重化を行わない場合、ファイルAをすべて書き終えてからファイルBに移りますが、多重化を設定すると各ファイルのブロックが交互に配置されます。
- 多重化なし(通常)
[AAAAA][BBBBB][CCCCC] - 多重化レベル 3
[ABC][ABC][ABC][ABC]
このようにブロックを混在させることで、特定のディスクへのI/O集中を避け、全体のバックアップ時間を短縮します。
2. 多重化バックアップセットの設定方法
多重化のレベルは、FILESPERSET(1つのバックアップセットに含めるファイル数)または MAXOPENFILES(1つのチャンネルが同時に開くファイル数)によって決定されます。
2.1 手動(一時的)に設定する方法
RUN ブロック内で SET BACKUP COPIES を使用すると、バックアップの「二重化(ミラーリング)」を指定できます。
※注:元記事の SET BACKUP COPIES は「同じ内容のファイルを複数作る(Duplicated Backup)」設定です。ブロックの混在度(多重化)を調整するには FILESPERSET を併用します。
# バックアップのコピーを2つ作成し、多重化を適用する例
RMAN> RUN {
ALLOCATE CHANNEL ch1 DEVICE TYPE DISK;
SET BACKUP COPIES 2;
BACKUP DATABASE FILESPERSET 4;
}
2.2 デフォルトの設定(永続的)を変更する方法
CONFIGURE コマンドを使用して、バックアップの出力先を複数定義(多重化コピー)することが可能です。
# 出力先を2つに設定(二重化バックアップの構成)
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup1/%U', '/backup2/%U';
実行結果の確認:
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/u01/app/oracle/backup1/%U', '/u01/app/oracle/backup2/%U';
古いRMAN構成パラメータ:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/u01/app/oracle/backup1/%U', '/u01/app/oracle/backup2/%U';
新しいRMAN構成パラメータ:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/u01/app/oracle/backup1/%U', '/u01/app/oracle/backup2/%U';
新しいRMAN構成パラメータが格納できました
チャネル: ORA_DISK_1がリリースされました
チャネル: ORA_DISK_2がリリースされました
チャネル: ORA_DISK_3がリリースされました
3. 多重化のメリットとデメリット
| 特徴 | 内容 |
| ✅ メリット | バックアップの高速化: 遅いディスクからの読み込みを並列化し、書き込み先スループットを最大化。 |
| I/Oの最適化: 特定のデータファイルへの負荷を分散し、システム全体のボトルネックを解消。 | |
耐障害性の向上: BACKUP COPIES を併用すれば、一方のバックアップが破損しても復旧可能。 | |
| ❌ デメリット | リストア時間の増加: ブロックが混在するため、1つのファイルを戻す際もバックアップピース全体をスキャンする必要がある。 |
| 過剰設定による競合: 多重化レベルが高すぎると、ヘッドシークが発生しパフォーマンスが低下。 |
4. パフォーマンステスト結果(参考値)
多重化レベル(同時に読み込むファイル数)を変えた際のバックアップ時間の推移です。
| 多重化レベル(FILESPERSET) | バックアップ時間(秒) | データサイズ(GB) |
| なし (1) | 120 | 50 |
| 低 (2) | 90 | 50 |
| 中 (4) | 80 | 50 |
| 高 (8以上) | 75 | 50 |
分析: レベルを上げると時間は短縮されますが、ある一定(この例では4〜8)を超えると、I/O競合により短縮幅が小さくなることがわかります。
5. おすすめの設定値と選定基準
環境に合わせた最適な多重化レベル(同時オープンファイル数)の目安は以下の通りです。
- ディスクバックアップ: 2〜4。最近の高速なストレージであれば、並列チャンネル(PARALLELISM)を増やす方を優先します。
- テープ(SBT)バックアップ: 4〜8。テープドライブの書き込み速度を維持(ストリーミング)するために、高めの多重化が有効です。
- クラウドストレージ: 1〜2。多重化よりもチャンネル並列数を増やし、ネットワークセッションを分ける方が効率的です。
まとめ
- 多重化(Multiplexing)は、複数のデータファイルを同時に読み込んで書き込み効率を高める技術。
- バックアップ時間の短縮に寄与するが、やりすぎるとリストアが遅くなる副作用がある。
- SBT(テープ)環境では特に有効。ディスク環境では並列度(PARALLELISM)とのバランスが重要。
- 実環境でテストを行い、ボトルネックが「読み込み」か「書き込み」かを見極めて設定する。
本記事は Oracle Database 19c を対象に解説します(他バージョンは画面や既定値が異なる場合があります)。
[参考]
Oracle Database バックアップおよびリカバリ・ユーザーズ・ガイド 19c
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?



コメント