マルチテナントアーキテクチャのバックアップ設計、考え方とNGパターンユーザー目線でチェック! Oracle Database 12cの知りたいところ(3)(2/3 ページ)

» 2013年12月16日 20時14分 公開
[青野友香,株式会社コーソル]

マルチテナントアーキテクチャのバックアップ設計

 マルチテナントアーキテクチャに対して使用できるRMANコマンドは前項で説明した通りですが、実際のバックアップに際しては、どのコマンドをどのような頻度で実行するかを設計する必要があります。そこで、ここからは、RMANを使用したマルチテテナント・アーキテクチャデータベースのバックアップ設計の例を紹介します。実際のバックアップ設計の参考にしていただければと思います。

 なお、マルチテナントアーキテクチャデータベースのバックアップ設計を行う際は、CDBに含まれる全てのコンテナを定期的にバックアップすることが大原則です。以下で紹介するバックアップ設計も、この原則を守る形で設計を行っています。

ケース1:CDB内にある全コンテナのバックアップ

 まず初めにご紹介するのは、CDB内にある全コンテナ(CDB$ROOT、PDB$SEED、PDB)を定期的にバックアップするバックアップ設計です(図2)。

図2 全コンテナのバックアップ

 RMANのBACKUP DATABASEコマンド1つで全コンテナのバックアップを漏れなく取得できますので、障害復旧時に必要なコンテナのバックアップがない、といった事態を防ぐことができます。また、データベース統合以前は、データベースごとに実行していたバックアップのジョブを、1つのジョブに集約できるため運用コストを削減できます。

 バックアップには万が一に備える役目がありますので、バックアップ処理が正常に実行されたことを、毎回チェックする必要がありました。このため、バックアップのジョブを集約できることは、実務的な観点では非常にありがたいのではないでしょうか。手順がシンプルであること、CDB内のコンテナのバックアップ漏れを回避できることから、特に制約がない場合は全コンテナのバックアップを取得することをお勧めします

 ただし、バックアップ出力先の容量にあまり余裕がない場合は、全コンテナのバックアップを定期的に実行することが難しい場合もあるかもしれません。この場合は、増分バックアップ形式でバックアップを取得することもご検討ください。各PDBの更新量が多くないようであれば、毎回全コンテナで増分バックアップを取得しても、ディスクの容量を圧迫せずに運用できるはずです。

ケース2:データ更新量の多いPDBのバックアップ頻度を上げる

 データ更新量の多いデータベースでバックアップの取得間隔を長くした場合、障害からの復旧作業において適用するアーカイブの量が多くなり、復旧作業に多くの時間を要することになります。そのような状況を回避するためには、バックアップの取得間隔を短くする必要がありますが、バックアップ出力先のディスクサイズなどの関係でこれが難しい場合があるかもしれません。

 このようなシステムでは、データ更新量の多いPDBのみ、日次でバックアップを取得するなど、バックアップの取得対象と取得頻度をそれぞれのコンテナのデータ更新量に応じて調整することをお勧めします(図3)。データ更新量の少ないコンテナのバックアップ取得頻度を相対的に少なくできるため、バックアップ保管に必要な領域を削減できます。

 例えば、CDB$ROOT、PDB$SEED、PDB1(更新量が少ない)は週次でバックアップを取得し、PDB2(更新量が多い)は日次でバックアップを取得するとした場合、以下のコマンドを実行することで、各バックアップを取得できます。

週次で以下のコマンドを実行

RMAN> BACKUP PLUGGABLE DATABASE "CDB$ROOT","PDB$SEED",PDB1;

日次で以下のコマンドを実行

RMAN> BACKUP PLUGGABLE DATABASE PDB2;
図3 更新量の多いPDBのバックアップ頻度を上げる

 また、バックアップに要する時間を削減できる点もこのバックアップ設計の利点です。ブロックチェンジトラッキング機能*を使用しない増分バックアップは、ディスクサイズを削減できますが、バックアップに要する時間の短縮にはあまり寄与しないことに注意してください。

* ブロックチェンジトラッキング機能 Oracle Database 10gから搭載されている機能。動作の詳細は「Oracleバックアップ/リカバリ講座(9):バックアップの所要時間を短縮するテクニック」を参照ください。



ケース3:コンテナを複数回に分けてバックアップ

 マルチテナントアーキテクチャでは、1つのCDBに最大252個のPDBを作成できます。多くのPDBを統合したなどの理由でCDBのサイズが非常に大きい場合、定期的に全コンテナをバックアップするケース1、ケース2の運用は難しいかもしれません。そのようなデータベースでは、CDB内の全てのコンテナを複数回に分けてバックアップを取得することをお勧めします(図4)。

図4 コンテナを複数回に分けてバックアップ

 バックアップの取得方法はケース2のパターンと大きく変わりません。RMANに接続し、BACKUP PLUGGABLE DATABASEの後に、バックアップ対象となるコンテナを指定すればOKです。

 このバックアップ方法を選択した場合に注意する点が2つあります。1つはCDB内にある全コンテナを定期的にバックアップすること、もう1つは全コンテナを漏れなくバックアップすることです。特に、新たにPDBを追加した場合は、そのPDBをバックアップ対象に含めることを忘れないでください

 REPORT NEED BACKUPコマンドを実行することで、設定した保存ポリシーを満たしていないファイルを確認できます。バックアップ後にこのコマンドを実行することで、バックアップ対象から漏れているコンテナがないか確認することが有効です。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。