5 Oracle Data Guardを使用したシャード・レベルのレプリケーション

Oracle Globally Distributed Databaseは、シャード・レベルのレプリケーションを提供するOracle Data Guardと緊密に統合されています。

分散データベースの可用性は、1つ以上のシャードが停止したり、処理速度が低下しても影響されません。Oracle Active Data Guardのレプリケーションは、個別のシャードレベルの高可用性を提供するために使用されます。レプリケーションは分散データベースが作成されると自動的に構成およびデプロイされます。

ノート:

シャードに加えて、シャード・カタログ・データベースでData Guardの高可用性およびデータ保護を個別に構成できます。詳細は、シャード・カタログ・スタンバイの作成を参照してください。

分散データベースでのOracle Data Guardの使用

Oracle Data Guardのレプリケーションは、高可用性およびデータ保護のために、シャード(プライマリ)の1つ以上の同期されたコピー(スタンバイ)を維持します。スタンバイはローカルまたはリモートにデプロイでき、Oracle Active Data Guardを使用する場合は、読取り専用アクセスでオープンすることもできます。

Oracle Data Guardは、システム管理、ユーザー定義またはコンポジットのシャーディング方法を使用する分散データベースのレプリケーション・テクノロジとして使用できます。

システム管理の分散データベースでのOracle Data Guardの使用

システム管理またはコンポジットのシャーディングの場合、レプリケーションの論理単位はシャードグループと呼ばれるシャードのグループです。システム管理のシャーディングでは、シャードグループには分散データベースに格納されているすべてのデータが含まれます。データはシャードグループを構成するシャード間で、均一なハッシュによってシャードされます。シャードグループに属するシャードは通常、同じデータ・センターにあります。シャードグループ全体を、同じまたは異なるデータ・センターの1つ以上のシャードグループに完全にレプリケートできます。

次の図は、システム管理シャーディングとともにData Guardレプリケーションが使用される方法を示しています。図に示す例には、プライマリ・シャードグループのShardgroup 1、および2つのスタンバイ・シャードグループのShardgroup 2とShardgroup 3があります。Shardgroup 1はData Guardプライマリ・データベース(シャード1-3)から構成されます。Shardgroup 2は、同じデータ・センターに存在し、同期レプリケーション用に構成されたローカル・スタンバイ・データベース(シャード4-6)から構成されます。Shardgroup 3は、異なるデータ・センターに存在し、非同期レプリケーション用に構成されたリモート・スタンバイ(シャード7-9)から構成されます。この構成ではOracle Active Data Guardが有効なため、各スタンバイが読取り専用でオープンされています。

図5-1 Data Guardレプリケーションを使用するシステム管理のシャーディング

図5-1の説明が続きます
「図5-1 Data Guardレプリケーションを使用するシステム管理シャーディング」の説明

レプリケーションの論理単位としてのシャードグループという概念によって、レプリケーションの実装の詳細がユーザーには隠されています。Data Guardの場合、レプリケーションはシャード(データベース)のレベルで実行されます。前の図の分散データベースは、レプリケートされた3つのシャードのセット({1, 4, 7}、{2, 5, 8}および{3, 6, 9})で構成されています。レプリケートされたシャードの各セットは、ファスト・スタート・フェイルオーバー(FSFO)が有効なData Guard Broker構成として管理されます。

レプリケーションをデプロイするには、シャードグループのプロパティ(リージョン、ロールなど)を指定し、そこにシャードを追加します。Oracle Globally Distributed DatabaseによってData Guardが自動的に構成され、レプリケートされたシャードの各セットに対してFSFOオブザーバが起動されます。さらに、読取り専用ワークロード、ロール・ベースのグローバル・サービス、レプリケーション・ラグのロード・バランシング、および地域ベースのルーティングが提供されます。

高可用性のためには、プライマリ・シャードが配置されているリージョンと同じリージョンに、Data Guardスタンバイ・シャードを配置できます。障害時リカバリのためには、スタンバイ・シャードを別のリージョンに配置できます。

次のGDSCTLコマンドを実行して、前の図に示されている構成例をデプロイします。

CREATE SHARDCATALOG –database host00:1521:shardcat –region dc1,dc2

ADD GSM -gsm gsm1 -listener 1571 –catalog host00:1521:shardcat –region dc1
ADD GSM -gsm gsm2 -listener 1571 –catalog host00:1521:shardcat –region dc2
START GSM -gsm gsm1
START GSM -gsm gsm2

ADD SHARDGROUP -shardgroup shardgroup1 -region dc1 -deploy_as primary 
ADD SHARDGROUP -shardgroup shardgroup2 -region dc1 -deploy_as active_standby 
ADD SHARDGROUP -shardgroup shardgroup3 -region dc2 -deploy_as active_standby 

ADD CDB -connect cdb1
ADD CDB -connect cdb2
...
ADD CDB -connect cdb9

ADD SHARD -connect shard1 -CDB cdb1 -shardgroup shardgroup1
ADD SHARD -connect shard2 -CDB cdb2 -shardgroup shardgroup2
...
ADD SHARD -connect shard9 -CDB cdb9 -shardgroup shardgroup3

DEPLOY

ユーザー定義の分散データベースでのOracle Data Guardの使用

ユーザー定義のシャーディングの場合、レプリケーションの論理(および物理)単位はシャードです。シャードはシャードグループに統合されません。各シャードとそのレプリカがシャード領域を構成し、これが1つのData Guard Broker構成に対応します。シャードスペースごとに個別にレプリケーションを構成できます。異なるデータ・センターに存在する異なる数のスタンバイをシャード領域に含めることができます。Data Guardレプリケーションを使用するユーザー定義シャーディングの例を次の図に示します。

図5-2 Data Guardレプリケーションを使用するユーザー定義のシャーディング

図5-2の説明が続きます
「図5-2 Data Guardレプリケーションを使用するユーザー定義シャーディング」の説明

次のGDSCTLコマンドを実行して、前の図に示されている構成例をデプロイします。

CREATE SHARDCATALOG -sharding user –database host00:1521:cat –region dc1,dc2,dc3

ADD GSM -gsm gsm1 -listener 1571 –catalog host00:1521:cat –region dc1
ADD GSM -gsm gsm2 -listener 1571 –catalog host00:1521:cat –region dc2
ADD GSM -gsm gsm3 -listener 1571 –catalog host00:1521:cat –region dc3
START GSM -gsm gsm1
START GSM -gsm gsm2
START GSM -gsm gsm3

ADD SHARDSPACE -shardspace shardspace_a 
ADD SHARDSPACE -shardspace shardspace_b
ADD SHARDSPACE -shardspace shardspace_c

ADD CDB -connect cdb1
ADD CDB -connect cdb2
...
ADD CDB -connect cdb10

ADD SHARD -connect shard1 -CDB cdb1 -shardspace shardspace_a
ADD SHARD -connect shard2 -CDB cdb2 -shardspace shardspace_b
...
ADD SHARD -connect shard10 -CDB cdb10 -shardspace shardspace_c

DEPLOY

コンポジットの分散データベースでのOracle Data Guardの使用

コンポジット・シャーディングの場合、ユーザー定義のシャーディングと同様に分散データベースが複数のシャード領域から構成されます。ただし、各シャード領域には、レプリケートされたシャードではなくレプリケートされたシャードグループが含まれます。

図5-3 複合シャーディングとData Guardレプリケーション

図5-3の説明が続きます
「図5-3 複合シャーディングとData Guardレプリケーション」の説明

次のGDSCTLコマンドを実行して、前の図に示されている構成例をデプロイします。

CREATE SHARDCATALOG -sharding composite –database host00:1521:cat –region dc1,dc2,dc3

ADD GSM -gsm gsm1 -listener 1571 –catalog host00:1521:cat –region dc1
ADD GSM -gsm gsm2 -listener 1571 –catalog host00:1521:cat –region dc2
ADD GSM -gsm gsm3 -listener 1571 –catalog host00:1521:cat –region dc3
START GSM -gsm gsm1
START GSM -gsm gsm2
START GSM -gsm gsm3

ADD SHARDSPACE -shardspace shardspace_a 
ADD SHARDSPACE -shardspace shardspace_b

ADD SHARDGROUP -shardgroup shardgroup_a1 –shardspace shardspace_a -region dc1 
-deploy_as primary 
ADD SHARDGROUP -shardgroup shardgroup_a2 –shardspace shardspace_a -region dc1     
-deploy_as active_standby
ADD SHARDGROUP -shardgroup shardgroup_a3 –shardspace shardspace_a -region dc3     
-deploy_as active_standby 
ADD SHARDGROUP -shardgroup shardgroup_b1 –shardspace shardspace_b -region dc1 
-deploy_as primary 
ADD SHARDGROUP -shardgroup shardgroup_b2 –shardspace shardspace_b -region dc1     
-deploy_as active_standby 
ADD SHARDGROUP -shardgroup shardgroup_b3 –shardspace shardspace_b -region dc2     
-deploy_as active_standby 

ADD CDB -connect cdb1
ADD CDB -connect cdb2
...

ADD SHARD -connect shard1 -cdb cdb1 -shardgroup shardgroup_a1
ADD SHARD -connect shard2 -cdb cdb2 -shardgroup shardgroup_a2
...

DEPLOY

考慮事項と制限

ロール・スイッチバックはユーザー依存です: 単一インスタンスのプライマリがスタンバイにフェイルオーバーした場合、Oracle RACとは異なり、マウント状態でデータベースを起動して、古いプライマリを復帰させるために介入する必要があります。その後、ブローカは復帰を自動的に完了します。

PDBごとの機能はサポートされていません: PDBごとのData Guard統合のデータベース機能は、分散データベース・アーキテクチャではサポートされていません。