この記事はLudovico Caldaraによる”Oracle Data Guard per Pluggable Database is available today!“の日本語翻訳版記事です。
翻訳元の記事は2022年に公開されたものです。

2024年3月4日


Oracle Data GuardはOracle DatabaseにDRを実装するソリューションです。フィジカル・スタンバイ構成からはじまり、Data Guardはこれまで今はサポートされていない従来の非CDBアーキテクチャと親和性が高くなるように設計されてきました。

2013年に12cで導入されたOracle Mutitenantは、Oracle Databaseのアーキテクチャを大きく変貌させ、新たな統合機能を解放しデータベースのライフサイクルを簡素化し、長年にわたって新しい操作を可能にするために、進化し続けてきました。これまでの進化の中には、ホット・クローンやリフレッシュ・クローン、オンライン・リロケーションなど様々な機能があります。そして、ついに今日(2022年)、Oracle Data Guard per Pluggable Database (DGPDB)が利用可能になりました。

このマルチテナント・アーキテクチャに特化したData Guardの新機能は、CDB単位だったアーキテクチャに代わるものになります。この機能を利用してお客様は、効率的なCDB毎のData Guardもしくはより柔軟なPDB単位のData Guardを実装できるようになります。

DGPDBは21c(21.7)から利用可能です。

従来のCDB単位アーキテクチャのおさらい

以下の画像は、従来のData Guard環境を表しています。

Traditional Data Guard per CDB with all the PDBs having the same role as the CDB.

CDBが従来の構成の場合、1つのCDBがプライマリになり、もう一つがスタンバイになります。したがって、プライマリCDBにある各PDBもプライマリになり(read-writeでオープン)、スタンバイCDBにある各PDBもスタンバイになります(MOUNTもしくはreal-time applyのread-onlyでオープン)。もし、CDBが新しいロールに変更された場合、全てのPDBも同じようにロール変更をします。

Data Guard per Pluggable Database (DGPDB) とは何か?

Data Guard per Pluggable Database (DGPDB)は名前の通り、Data GuardがCDB全体ではなく個別のPDB単位で実装されるようになります。

つまり、DGPDB構成はプライマリCDBとスタンバイCDBをそれぞれ1つづつ持つ代わりに、2つのプライマリCDBを持つ構成になります。各CDBはread-writeでオープンしているPDB(最終的にはリモートCDB上のターゲットPDBにより保護される)とリモートCDB上の連携されたPDBを保護するMOUNTされたPDBを持つことになります。

With Data Guard per Pluggable Database, each PDB is protected separately and can have a different role from the CDB which is always primary.

Data Guardの保護レベルをPDB単位で持つことで、お客様はそれぞれのPDBをリモート・サイトにスイッチオーバー・フェイルオーバー可能になります。

この構成には2つの大きなメリットがあります。

  1. お客様は、マルチテナント統合の利点を活かしながら、2 つの異なるサイト間でワークロードのバランスを取ることができます。

  2. PDB単位のロール変更はCDB単位よりも速く実行できます。

Data Guard per Pluggable Database(DGPDB)のアーキテクチャ

DGPDBは従来のData Guard同様、REDO転送サービスを提供します。プライマリ・インスタンスではログライター・プロセス(LGWR)がCDB全体の情報をオンラインREDOログ(ORLs)にREDO情報を書き込みます。ASYNC(非同期)転送プロセス(TTnn)はその情報を非同期でターゲットPDBが存在するリモートCDBに送ります。

受信プロセス(RFS)はプライマリから受け取ったREDO情報をスタンバイREDOログ(RFSs)に書き込みます。この地点までで、転送メカニズムは従来のData Guardと変わらず、DGPDBも従来と全く同じギャップ解消メカニズムを提供します。

DGPDBでは、PDBごとに 1つの「適用」プロセス(TTnn)があり、そのPDBに関連するデータをフィルタリングして適用します。 リカバリはPDBレベルで開始および停止できます。

DGPDB leverages the same redo transport services of the traditional Data Guard, but there is one apply process per target PDB.

DGPDB構成は2つのプライマリ・データベースで構成されます。 したがって、REDO転送サービスのプロセスは、次の図に示すように対称的です。

With two primary CDBs in the configuraiton, the redo transport services are bi-directional.

このアーキテクチャはリモートCDBに全てのREDOを転送します。もし、数ある中の数個のPDBのみが保護されている場合、大きなオーバーヘッドが生じる可能性があります。なので、書き込み処理の激しいPDBで保護が必要ないものがある場合、余分なREDO転送を避けるために別のCDBに常駐させる必要があります。

Data Guard per Pluggable Databse(DGPDB)の主な制限事項

初期バージョンのDGPDBは以下のような主な制限事項があります。(2022年時点)

List of limitations of Data Guard per Pluggable Database.

今後、機能拡張にも尽力いたしますので、どうぞご期待ください。

参考情報

公式ドキュメント: Scenarios for Using DGMGRL with a DG PDB Configuration