55 シャード・レベルの高可用性
Oracle Shardingは、シャード・レベルの高可用性と障害回復のためにOracle Databaseレプリケーション・テクノロジに統合されています。
次の各項で、Oracleのレプリケーション・テクノロジを使用してシャード・データベースの高可用性を実現する方法を説明します。
- シャーディングとレプリケーションについて
Oracle ShardingはOracle Data Guardと緊密に統合されています。 - SDBへのOracle Data Guardの使用
Oracle Data Guardのレプリケーションは、高可用性およびデータ保護のために、シャード(プライマリ)の1つ以上の同期されたコピー(スタンバイ)を維持します。スタンバイはローカルまたはリモートにデプロイでき、Oracle Active Data Guardを使用する場合は、読取り専用アクセスでオープンすることもできます。
親トピック: シャード・データベースの管理
55.1 シャーディングとレプリケーションについて
Oracle ShardingはOracle Data Guardと緊密に統合されています。
レプリケーションによって高可用性、障害回復、および読取りのスケーラビリティ向上が実現します。
シャード・データベース(SDB)のレプリケーション・トポロジは、GDSCTLコマンド構文を使用して宣言的に指定します。Oracle Shardingは指定されたレプリケーション・トポロジを自動的にデプロイし、データ・レプリケーションを有効にします。
SDBの可用性は、1つ以上のシャードが停止したり、処理速度が低下しても影響されません。個別のシャードレベルの高可用性(Oracle Active Data Guard)を提供するために、レプリケーションが使用されます。レプリケーションはSDBが作成されると自動的に構成およびデプロイされます。オプションで、シャードレベルの高可用性のために、レプリケーションによって補完されるOracle RACを使用すると、クラスタが停止した場合にシャードレベルのデータの可用性を維持できます。Oracle Shardingは、計画外の停止が発生したときに、データベース接続をシャードからレプリカに自動的にフェイルオーバーします。
親トピック: シャードレベルの高可用性
55.2 SDBへのOracle Data Guardの使用
Oracle Data Guardのレプリケーションは、高可用性およびデータ保護のために、シャード(プライマリ)の1つ以上の同期されたコピー(スタンバイ)を維持します。スタンバイはローカルまたはリモートにデプロイでき、Oracle Active Data Guardを使用する場合は、読取り専用アクセスでオープンすることもできます。
Oracle Data Guardは、シャーディング方法としてシステム管理またはコンポジットを使用するSDBのレプリケーション・テクノロジとして使用できます。
システム管理のSDBへのOracle Data Guardの使用
システム管理またはコンポジットのシャーディングの場合、レプリケーションの論理単位はシャードグループと呼ばれるシャードのグループです。システム管理のシャーディングの場合、SDBに格納されるすべてのデータがシャードグループに含まれます。データはシャードグループを構成するシャード間で、均一なハッシュによってシャードされます。シャードグループに属するシャードは通常、同じデータ・センターにあります。シャードグループ全体を、同じまたは異なるデータ・センターの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が有効なため、各スタンバイが読取り専用でオープンされています。
レプリケーションの論理単位としてのシャードグループという概念によって、レプリケーションの実装の詳細がユーザーには隠されています。Data Guardの場合、レプリケーションはシャード(データベース)のレベルで実行されます。前の図のSDBは、レプリケートされた3つのシャードのセット({1, 4, 7}、{2, 5, 8}および{3, 6, 9})で構成されています。レプリケートされたシャードの各セットは、ファスト・スタート・フェイルオーバー(FSFO)が有効なData Guard Broker構成として管理されます。
レプリケーションをデプロイするには、シャードグループのプロパティ(リージョン、ロールなど)を指定し、そこにシャードを追加します。Oracle ShardingによってData Guardが自動的に構成され、レプリケートされたシャードの各セットに対してFSFOオブザーバが起動されます。さらに、読取り専用ワークロード、ロール・ベースのグローバル・サービス、レプリケーション・ラグのロード・バランシング、および地域ベースのルーティングが提供されます。
次の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
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
CREATE SHARD -shardgroup shardgroup1 -destination host01 -credential oracle_cred
CREATE SHARD -shardgroup shardgroup1 -destination host02 -credential oracle_cred
CREATE SHARD -shardgroup shardgroup1 -destination host03 -credential oracle_cred
...
CREATE SHARD -shardgroup shardgroup3 -destination host09 -credential oracle_cred
DEPLOY
コンポジットSDBへのOracle Data Guardの使用
コンポジット・シャーディングの場合、SDBが複数のシャード領域から構成されます。ただし、各シャード領域には、レプリケートされたシャードではなくレプリケートされたシャードグループが含まれます。
次の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
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
CREATE SHARD -shardgroup shardgroup_a1 -destination host01 –credential orcl_cred
...
CREATE SHARD -shardgroup shardgroup_b3 -destination host09 -credential orcl_cred
DEPLOY
親トピック: シャードレベルの高可用性