Oracle RMAN マルチセクションバックアップによる大容量ファイルの高速化

Oracle Master Gold

Oracle Recovery Manager(RMAN)の マルチセクションバックアップ(Multisection Backup) は、単一の巨大なデータファイルを仮想的に複数の「セクション」に分割し、複数のチャンネルで並行してバックアップする機能です。

通常、1つのデータファイルは1つのチャンネルでしか処理できませんが、この機能を使用することで、テラバイト級の巨大なデータファイルを持つデータベースでもバックアップ時間を劇的に短縮できます。

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

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


1. マルチセクションバックアップとは?(基本の仕組み)

大きなデータファイルを指定したサイズ(SECTION SIZE)ごとに分割し、それぞれを別々のバックアップピースとして並列に書き出します。

メリット

  • バックアップの高速化: 巨大なファイル(Bigfile表領域など)を複数チャンネルで同時処理できるため、実行時間が短縮されます。
  • リソースの有効活用: 並列処理により、CPUやストレージI/Oの帯域を最大限に活用できます。
  • 負荷分散: 特定のディスクへのI/O集中を避け、スループットを向上させます。

2. 導入の前提条件と制約

マルチセクションバックアップを導入する前に、以下の条件を確認してください。

  • 対応バージョン: Oracle Database 11g Release 2(11.2.0.2)以降。
  • ファイルサイズ: 対象のデータファイルが、指定する SECTION SIZE よりも大きい必要があります。
  • バックアップ形式: バックアップセット(Backupset)形式であること(イメージコピーでも 12c 以降で対応していますが、本記事では標準的なバックアップセットを扱います)。
  • ストレージ: ディスク(DISK)およびテープ(SBT)の両デバイスで使用可能です。

3. マルチセクションバックアップの設定と実行例

実行は非常に簡単で、通常のバックアップコマンドに SECTION SIZE 句を付け加えるだけです。

3.1 データベース全体への適用

データベース内のすべてのファイルを対象に、500MB単位で分割バックアップを試みます。

# 500MBごとにセクションを分割してバックアップ
RMAN> BACKUP AS BACKUPSET DATABASE SECTION SIZE 500M;

3.2 特定の巨大データファイルのみに適用

特定のファイル番号(例:ファイル1)を指定して、1GB単位で分割します。

# データファイル1を1GBのセクションに分割
RMAN> BACKUP AS BACKUPSET DATAFILE 1 SECTION SIZE 1G;

3.3 並列チャンネル(ALLOCATE)との組み合わせ

マルチセクションバックアップの真価を発揮するには、並列チャンネルの設定が不可欠です。

# 2つのチャンネルを手動割り当てして並列実行
RMAN> RUN {
    ALLOCATE CHANNEL ch1 DEVICE TYPE DISK;
    ALLOCATE CHANNEL ch2 DEVICE TYPE DISK;
    BACKUP AS BACKUPSET DATABASE SECTION SIZE 1G;
}

補足: ALLOCATE CHANNEL で指定した数(上記では2)まで同時にセクションが処理されます。


4. バックアップ実行状況の確認

バックアップが意図通りに分割されているかは、RMANコマンドまたは動的パフォーマンスビューで確認できます。

RMANでの確認

# バックアップの概要を表示
RMAN> LIST BACKUP SUMMARY;

SQL(V$ビュー)での詳細確認

セクションごとの詳細な書き出し状況を確認する場合に便利です。

-- バックアップセットの詳細を確認するSQL
SELECT 
    SET_STAMP, 
    SET_COUNT, 
    PIECE#, 
    DEVICE_TYPE, 
    COMPRESSED, 
    SECTION_SIZE 
FROM V$BACKUP_SET_DETAILS 
ORDER BY SET_STAMP DESC;

※実行結果の SECTION_SIZE カラムに値が入っていれば、マルチセクションとして処理されています。


5. 運用上の注意点とベストプラクティス

  • 最適なセクションサイズの設定: 小さすぎるとバックアップピースの数が膨大になり管理負荷(制御ファイルの肥大化)が増えます。逆に大きすぎると並列化の効果が得られません。
  • チャネル数とのバランス: PARALLELISM 設定や ALLOCATE CHANNEL の数以上に分割しても、同時に動ける数はチャンネル数に依存します。
  • 自動スキップ: データファイルが SECTION SIZE より小さい場合、RMANはそのファイルを分割せずに通常通りバックアップします。エラーにはなりません。
  • テープ(SBT)利用時の注意: テープ装置の場合、セクション分割によって多重書き込み(マルチプレキシング)が発生し、リストア速度に影響が出る可能性があるため、事前の検証を推奨します。

FAQ:よくある質問

Q:Standard Edition 2 (SE2) でもマルチセクションバックアップは使えますか? A:機能自体は使えますが、SE2はRMANの並列チャンネル数が「1」に制限されているため、分割しても同時並列処理は行われず、高速化の恩恵は限定的です。

Q:SECTION SIZE を指定したのに分割されません。なぜですか? A:データファイルのサイズが SECTION SIZE 以下であるか、あるいはバックアップ形式が AS COPY(11gの場合)になっていないか確認してください。

Q:リストア時も SECTION SIZE を指定する必要がありますか? A:いいえ。RMANがバックアップメタデータを管理しているため、リストア時は通常の RESTORE コマンドだけで自動的にセクションが統合され復元されます。


まとめ

  • マルチセクションバックアップ は巨大なデータファイルを分割して並列処理する機能。
  • SECTION SIZE 句をバックアップコマンドに追加するだけで利用可能。
  • 並列チャンネル数 を適切に設定することで、バックアップ時間を大幅に短縮できる。
  • 大容量の Bigfile表領域 を運用している環境では必須のテクニック。

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

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

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

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

コメント

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