Oracle RMAN におけるパラレルバックアップの設定と活用

Oracle Master Gold

Oracle Recovery Manager(RMAN)の「パラレルバックアップ」は、複数のチャネルを並列に動作させることでバックアップ時間を劇的に短縮する機能です。大規模なデータベース運用において、限られたバックアップウィンドウ内に処理を完了させるためには、この並列化の理解が欠かせません。

本記事では、手動チャンネル割り当て自動チャンネル割り当ての2つの手法を中心に、メリット・デメリットや具体的な設定例を詳しく解説します。

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

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


結論:どちらの割り当て方式を選ぶべきか?

  • 定例バックアップの運用を簡素化したい自動チャンネル割り当て(CONFIGURE)が最適です。
  • 一時的なメンテナンスや特定環境で細かく制御したい手動チャンネル割り当て(ALLOCATE)を使用します。

1. 手動チャンネル割り当てによるパラレルバックアップ

RUN ブロック内で ALLOCATE CHANNEL コマンドを使用し、その実行時のみ有効なチャンネルを定義する方法です。

メリットとデメリット

メリットデメリット
バックアップ対象ごとに並列数を動的に変更可能スクリプトが長くなり、保守の負担が増える
特定のディスクドライブやパスを個別に指定できる実行するたびにチャンネルの定義を記述する必要がある

実行例

手動割り当てでは、使用後に RELEASE CHANNEL で明示的に解放することが推奨されます(RUNブロック終了時に自動解放もされます)。

# 3つのチャンネルを手動で割り当てて並列バックアップを実行
RMAN> RUN {
  ALLOCATE CHANNEL ch1 DEVICE TYPE DISK;
  ALLOCATE CHANNEL ch2 DEVICE TYPE DISK;
  ALLOCATE CHANNEL ch3 DEVICE TYPE DISK;
  BACKUP DATABASE;
  RELEASE CHANNEL ch1;
  RELEASE CHANNEL ch2;
  RELEASE CHANNEL ch3;
}

ポイント: 各 ALLOCATE CHANNEL が1つのOSプロセス(またはスレッド)に対応し、並列にバックアップピースを作成します。


2. 自動チャンネル割り当てによるパラレルバックアップ

CONFIGURE コマンドを使用して、制御ファイルに並列度の設定を永続的に記録する方法です。

メリットとデメリット

メリットデメリット
一度の設定で、以降のすべてのコマンドに自動適用されるセッションごとに柔軟に並列数を変えるのが難しい
バックアップスクリプトが非常にシンプルになる事前に環境に合わせた設定(CONFIGURE)が必要

実行例

並列度(PARALLELISM)を設定するだけで、RMANが必要な数のチャンネルを自動で生成します。

# 並列度を 3 に設定(永続的な設定)
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 3;

# 設定後はこれだけで 3 並列のバックアップが走る
RMAN> BACKUP DATABASE;

# 現在の設定内容を確認
RMAN> SHOW ALL;

ポイント: 自動割り当てでは、チャンネル名(ORA_DISK_1 など)も自動で付与されます。


3. 手動割り当て vs 自動割り当て:比較まとめ

比較項目手動 (ALLOCATE)自動 (CONFIGURE)
設定コマンドALLOCATE CHANNELCONFIGURE ... PARALLELISM
有効期間RUN ブロック内のみ変更するまで永続的
柔軟性非常に高い(パス指定等も自由)低い(一律の設定)
推奨シナリオスポット的なバックアップ、特殊なパス構成毎日の夜間バックアップ、標準的な運用

4. パフォーマンスチューニングのポイント

並列度を上げるだけではパフォーマンスが頭打ちになることがあります。以下の要素を考慮してください。

  • リソースの考慮: チャンネル数は CPU コア数やディスクの I/O 帯域を超えない範囲で設定してください。増やしすぎると「I/O 待ち」が発生し、逆に遅くなる場合があります。
  • FILESPERSET の調整: 1つのバックアップセットに含めるファイル数を調整し、各チャンネルの負荷を均等にします。
  • MAXPIECESIZE: 1つのバックアップピースの最大サイズを制限し、ファイルシステム側の制限回避や転送効率の向上を図ります。
  • セクション・バックアップ: 巨大なデータファイルがある場合、SECTION SIZE を指定することで、1つのファイルを複数のチャンネルで分担してバックアップできます。

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

  • リソース競合: バックアップの並列度を上げると、オンライン業務の I/O や CPU を圧迫します。業務時間外に実行するか、リソース・マネージャ等での制御を検討してください。
  • 戻し方: 並列設定を解除(デフォルトに戻す)するには、CONFIGURE DEVICE TYPE DISK CLEAR; を実行します。
  • 制限: Standard Edition 2 (SE2) では、RMAN の並列度(チャンネル数)は最大 1 に制限されています。複数のチャンネルを使用するには Enterprise Edition が必要です。

FAQ:よくある質問

Q:PARALLELISM を 10 に設定すれば、10倍速くなりますか?

A:理論上は向上しますが、ストレージの書き込み速度やネットワーク帯域がボトルネックになるため、実測値で最適な数を見極める必要があります。

Q:手動と自動の両方が設定されている場合はどうなりますか?

A:RUN ブロック内で ALLOCATE CHANNEL を使用した場合、そちらが優先され、CONFIGURE で設定した自動チャンネルは使用されません。

Q:テープ(SBT)へのバックアップでもパラレルは有効ですか?

A:有効ですが、テープドライブの物理的な台数以上にチャンネルを割り当てると、テープの競合が発生し効率が極端に落ちるため注意してください。


まとめ

  • 手動割り当ては、特定の作業で詳細な制御が必要な場合に利用する。
  • 自動割り当ては、日常の運用管理をシンプルにするために利用する。
  • 並列度の決定は、ハードウェアリソース(CPU/ディスク)とのバランスが重要。
  • SE2 ライセンスでは並列数に制限があることに留意する。

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


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

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

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

コメント

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