1 Global Data Servicesの概要
この章では、Global Data Servicesのアーキテクチャの概要について説明します。
この章の内容は次のとおりです。
1.1 Global Data Servicesの概要
多くの企業が、ビジネス効率を改善するために独自の情報テクノロジ・インフラストラクチャを統合しています。データベースの統合は、このプロセスの重要な部分です。ただし、ほとんどの組織では、次のような理由から依然としてデータベースのローカル・レプリカおよびリモート・レプリカを維持する必要があります。
-
ビジネスの継続性と障害時リカバリ
-
高可用性
-
ローカル・クライアントのパフォーマンスの最適化
-
コンテンツのローカライズとキャッシュ
-
現地法の順守
データベース・レプリカのどのセットでも、一部のデータベース・サーバーは高い負荷や長いネットワーク待機時間のために問合せ応答時間が遅くなることがあり、この場合より高速に応答できる他のサーバーはその性能を十分に発揮できません。データベース・レプリカのセット全体で最適な問合せパフォーマンスおよびリソース使用を実現するには、レプリカ全体にクライアント接続およびワークロード・リクエストの動的ロード・バランシングを提供するワークロード管理ソリューションが必要です。
多くの企業が、データベース・レプリカ全体のワークロード管理を行うための社内ソリューションを使用しています。これらのソリューションは、Oracleソフトウェアと完全に統合されていないため、レプリカ間での実行時ロード・バランシングや信頼性の高いデータベース・サービス・フェイルオーバーなどの重要な機能を提供できません。
Oracle Databaseには、データベース・サービスと呼ばれる高性能なワークロード管理機能があります。データベース・サービスとは、1つ以上のデータベース・インスタンスが名前付きで表現されたものです。データベース・サービスによって、データベース・ワークロードをグループ化し、サービスを提供するために最も適したインスタンスにクライアント・リクエストを確実にルーティングし、計画済または計画外のインスタンス停止が発生した場合に残存インスタンスにクライアント接続を透過的にフェイルオーバーすることで高可用性を実現できます。
Oracle Global Data Services (GDS)は、Global Data Services構成と呼ばれる一連のレプリケート・データベース全体にOracle Databaseサービス・モデルを実装します。
Global Data Services構成は、データベース・クライアントには仮想の複数インスタンス・データベースのように認識されます。これによって、単一インスタンス・データベースまたはOracle Real Application Clusters (Oracle RAC)データベースによって提供されるローカル・データベース・サービスに機能的に類似したグローバル・サービスを通じたクライアント・アクセスが可能になります。ローカル・サービスとグローバル・サービスは、両方ともロード・バランシング、高可用性およびリソース管理を提供します。グローバル・サービスとローカル・サービスの本質的な違いは、グローバル・サービスが複数のデータベースのインスタンスを対象とするのに対し、ローカル・サービスは単一のデータベースのインスタンスを対象とするところにあります。
Global Data Services構成とそのグローバル・サービスは、GDSCTLコマンドライン・インタフェースを使用して作成および管理しますが、これはOracle RACデータベースとそのサービスを管理するために使用されるSRVCTL
コマンドライン・インタフェースとほぼ同じです。
Global Data Services構成には、異機種または同機種のサーバー・プラットフォームでホストされる複数インスタンスまたは単一インスタンスのOracle Databaseの任意の組合せを含めることができます。Oracle Data GuardやOracle GoldenGateなどの他のデータベース・レプリケーション・テクノロジを使用して、Global Data Services構成の各データベースを同期化できます。
Global Data Servicesは、一連のレプリケート・データベース全体で自動ワークロード管理を行うための非常に効率的なソリューションであり、広範囲に及ぶ多数の分散データベースおよびクライアントでも、単一のデータベース、ローカル・レプリカおよび少数のクライアントでも使用できます。
注意:
Global Data Servicesは、主にレプリケーション対応のアプリケーション向けです。レプリケーション対応のアプリケーションは、次のいずれかの特徴を持っています。
-
読取り専用グローバル・サービスを排他的に使用します。
-
読取り/書込みグローバル・サービスを使用しますが、それらのサービスが複数のデータベースから同時に提供された場合、更新の競合を解決するようにプログラミングされています。
-
レプリケーション・ラグが原因で失効する可能性のあるレプリケートされたデータを許容できます。
レプリケーション対応ではないアプリケーションでも、Global Data Servicesによって提供される改善された高可用性機能や障害時リカバリ機能のメリットを得ることができます。
関連項目:
-
GDSCTLの詳細は、「Global Data Services制御ユーティリティ(GDSCTL)コマンド・リファレンス」を参照してください
-
データベース・サービスの詳細は、『Oracle Database管理者ガイド』を参照してください
親トピック: Global Data Servicesの概要
1.2 Global Data Servicesのアーキテクチャ
次の図に、Global Data Services (GDS)構成の例と、すべてのGDS構成に存在するGDSコンポーネントを示します。
次の項では、これらのコンポーネントについて説明します。
- Global Data Servicesプール
- Global Data Servicesリージョン
- グローバル・サービス・マネージャ
- Global Data Servicesカタログ
- Oracle Notification Serviceサーバー
親トピック: Global Data Servicesの概要
1.2.1 Global Data Servicesプール
Global Data Servicesプールは、GDS構成内の各データベースの名前付きサブセットであり、一意のグローバル・サービス・セットを提供し、同じ管理ドメインに属しています。GDS構成データベースを各プールにパーティション化すると、サービス管理が簡素化され、かつ、各プールを異なる管理者が管理できることによって、セキュリティが向上します。
データベースは1つのGlobal Data Servicesプールにのみ属することができます。プールのすべてのデータベースで同じグローバル・サービス・セットを提供する必要はありません。ただし、同じグローバル・サービスを提供するデータベースはすべて同じプールに属する必要があります。
親トピック: Global Data Servicesのアーキテクチャ
1.2.2 Global Data Servicesリージョン
Global Data Servicesリージョンは、GDS構成のデータベースおよびデータベース・クライアントの名前付きサブセットであり、通常はあるリージョンのメンバー間のネットワーク待機時間が異なるリージョンのメンバー間のものより小さくなるようにネットワークの近接性を共有します。リージョンは、通常、ローカル・エリア・ネットワークまたはメトロポリタン・エリア・ネットワーク(LANまたはMAN)に対応します。たとえば、データ・センターに地理的に近接する1つ以上のGDS構成データベースおよびデータベース・クライアントをホストするデータ・センターは、同じリージョンに属することができます。
1つのリージョンに複数のGlobal Data Servicesプールを含めることが可能で、これらのプールは複数のリージョンにまたがることができます。
高可用性を実現するため、GDS構成の各リージョンには、バディ・リージョン(ローカル・リージョンのグローバル・サービス・マネージャが使用できなくなった場合にGDS構成への継続的なアクセスを提供するグローバル・サービス・マネージャを含むリージョン)を指定する必要があります。
親トピック: Global Data Servicesのアーキテクチャ
1.2.3 グローバル・サービス・マネージャ
グローバル・サービス・マネージャは、GDS構成のサービスに対してサービス・レベルのロード・バランシング、フェイルオーバーおよび一元的な管理を提供するGlobal Data Servicesのソフトウェア・コンポーネントです。Global Data Servicesクライアントは、グローバル・サービス・マネージャを使用してすべてのGDS構成操作を実行します。
グローバル・サービス・マネージャは、Oracle RACデータベースのリモート・リスナーと似ていますが、グローバル・サービス・マネージャは複数のデータベースに対応する点が異なります。グローバル・サービス・マネージャは次のことを行います。
-
クライアントがグローバル・サービスに接続するために使用するリージョン・リスナーとして機能します。
-
クライアントに接続時ロード・バランシングを提供します。
-
GDS構成のリージョン全体でグローバル・サービスを管理します。
-
GDS構成のデータベースからパフォーマンス・メトリックを収集し、構成のリージョン間のネットワーク待機時間を測定します。
-
実行時ロード・バランシング・アドバイザを作成し、それをクライアント接続プールに公開します。
-
データベース・インスタンスおよびグローバル・サービスの可用性を監視し、それらが停止した場合クライアントに通知します。
1つのグローバル・サービス・マネージャは、1つのGDS構成のみに関連付けられます。GDS構成の各リージョンには、少なくとも1つのグローバル・サービス・マネージャが存在する必要があります。可用性とパフォーマンスを向上するため、各リージョンで複数のグローバル・サービス・マネージャを構成することをお薦めします。GDS構成のすべてのグローバル・サービス・マネージャで、その構成によってサポートされるすべてのグローバル・サービスを管理します。
親トピック: Global Data Servicesのアーキテクチャ
1.2.4 Global Data Servicesカタログ
Global Data Servicesカタログは、Global Data Services構成と、その構成によって提供されるすべてのグローバル・サービスの構成データを格納するリポジトリです。
1つのカタログは、1つのGDS構成のみに関連付けられます。カタログは、Oracle Database 12c以上のデータベースに存在する必要がありますが、そのデータベースは関連するGDS構成の内部にあっても外部にあってもかまいません。大規模なGDS構成の場合、GDSカタログはGDS構成のデータベースの外部でホストすることをお薦めします。GDSカタログは、RMANまたはOracle Enterprise Managerのカタログと同時にホストできます。
Global Data Servicesカタログが存在するデータベースの可用性を向上するため、Oracle RAC、Oracle Data Guard、Oracle Clusterwareなどの高可用性テクノロジを使用することを強くお薦めします。
親トピック: Global Data Servicesのアーキテクチャ
1.2.5 Oracle Notification Serviceサーバー
GDSクライアントは、Oracle Notification Service (ONS)を使用して、グローバル・サービス・マネージャか実行時ロード・バランシング・アドバイザおよび高可用性イベントを受信します。
Oracle Notification Service (ONS)サーバーは、各グローバル・サービス・マネージャと同じ場所にあります。リージョン内のこのようなONSサーバーは、すべて相互接続されます。グローバル・サービスのクライアントは、リージョンとそのバディ・リージョン内のONSサーバー・ネットワークにサブスクライブし、それらのONSサーバー・ネットワークからFAN通知を受信します。
注意:
Global Data Services構成のOracle RACデータベースには、クラスタ・ノードで実行中のONSサーバーも含まれることがあります。これらのONSサーバーは、ローカル・サービスに関連するFAN通知を生成し、GDSリージョンのONSサーバー・ネットワークには接続されません。
親トピック: Global Data Servicesのアーキテクチャ
1.3 グローバル・サービスの概要
データベース・クライアントにとって、Global Data Services構成は、グローバル・サービスのセットによって表現されます。Global Data Services構成に対応するグローバル・サービス・マネージャは、構成によって提供されるすべてのグローバル・サービスを認識し、データベース・クライアントと構成内のデータベースの仲介者として機能します。クライアント・プログラムはリージョナル・グローバル・サービス・マネージャに接続し、グローバル・サービスへの接続を要求します。クライアントはデータベースまたはインスタンスを指定する必要はありません。グローバル・サービス・マネージャは、クライアント・リクエストを、グローバル・サービスを提供する構成内の最も適切なインスタンスに転送します。グローバル・サービスを共有するデータベース・クライアントには同じサービス・レベルの要件が必要です。
1つのデータベースによって提供される従来型のデータベース・サービスとして定義されるローカル・サービスの機能は、グローバル・サービスによって変更されません。Oracle Database 12cは、ローカル・サービスおよびグローバル・サービスを同時に提供できます。クライアント・アプリケーションもグローバル・サービスおよびローカル・サービスと同時に連携できます。
注意:
Oracle Database 12cより前のバージョンのデータベースではローカル・サービスは提供できますが、グローバル・サービスを提供できるのはOracle Database 12c以降のみです。
グローバル・サービスの構成および実行時ステータスは、Global Data Servicesカタログに格納されます。グローバル・サービスを提供する各データベースも、それらのサービスに関する情報を、ローカル・サービスに関するデータとともにローカル・リポジトリ(システム・ディクショナリやOracle Cluster Registryなど)に保持します。ローカル・リポジトリに格納されているグローバル・サービスにはフラグが付けられ、これらのグローバル・サービスが従来型のローカル・サービスと区別されます。
特定のデータベースにローカルに接続している場合、そのデータベースにより提供されるグローバル・サービスのデータを問い合せることができます。グローバル・サービスの構成、変更、開始または停止は、Global Data Servicesカタログに接続している場合、Global Data Services制御ユーティリティ(GDSCTL)を使用して行えます。これによって、グローバル・サービスの一元化された協調管理が保証されます。サーバー制御ユーティリティ(SRVCTL)またはOracle Clusterware制御ユーティリティ(CRSCTL)のいずれを使用しても、グローバル・サービスの構成、変更、開始または停止は行えません。
注意:
特定の状況(データベースやクラスタウェア・ソフトウェアへのパッチ適用など)では、SRVCTLで適切なコマンドに-force
オプションを指定してグローバル・サービスを停止したり、起動できます。適切なシステム権限が必要です。
Global Data Services構成のグローバル・サービスを構成すると、グローバル・サービス・マネージャによって、サービスの作成時に指定したサービス・プロパティに基づいてGDS構成データベースのグローバル・サービスが管理されます。
データベースは、構成に追加されたり、停止後に再起動すると、構成のすべてのグローバル・サービス・マネージャに登録されます。登録リクエストの受信後、いずれかのグローバル・サービス・マネージャが、GDSカタログを問い合せ、そのデータベースが提供する予定のすべてのグローバル・サービスがそこで作成され、適切な属性を持っているかどうかを確認します。カタログとデータベースの情報間に差異がある場合、グローバル・サービス・マネージャは、データベースのグローバル・サービスを作成、削除または変更するか、カタログの情報と同期するように属性を変更します。その後、グローバル・サービス・マネージャは、データベースで実行する必要のあるグローバル・サービスを決定し、必要に応じてそれらを起動します。
グローバル・サービス・マネージャは、データベースのグローバル・サービスを起動または停止できます。ただし、Oracle RACデータベースの場合、グローバル・サービス・マネージャは、サービスを提供するデータベース内の特定のインスタンスを制御できません。これは、Oracle RACデータベースのクラスタウェアおよび管理者によって制御されます。
Global Data Services構成のデータベース・インスタンスに障害が発生すると、構成内のすべてのグローバル・サービス・マネージャが障害に関する通知を受け、そのインスタンスに対するリクエストの転送を停止します。このインスタンスが非クラスタ・データベースに属する場合、またはOracle RACデータベースで使用可能な最後のインスタンスだった場合、構成によっては、グローバル・サービス・マネージャによってサービスが有効なGlobal Data Servicesプール内の別のデータベースでサービスが自動的に起動される場合があります。GDSCTLコマンドを使用してグローバル・サービスをあるデータベースから別のデータベースに手動で移動する場合、グローバル・サービス・マネージャによって対応するデータベースのサービスが停止および起動されます。
- グローバル・サービスの属性
- Oracle RACデータベース内のグローバル・サービス
- Oracle Data Guard Broker構成内のグローバル・サービス
- グローバル・サービスのデータベース配置
- レプリケーション・ラグとグローバル・サービス
- グローバル・サービスと分散トランザクション処理
- マルチテナント・アーキテクチャのグローバル・サービス
親トピック: Global Data Servicesの概要
1.3.1 グローバル・サービスの属性
グローバル・サービスには、グローバル・サービスの起動、グローバル・サービスへの接続のロード・バランシング、それらの接続のフェイルオーバーなどを制御する属性のセットが関連付けられています。ローカル・サービスに適用可能な属性(Oracle RACやOracle Data Guard Broker環境に固有のサービスも含む)はグローバル・サービスにも適用できます。
次の属性はグローバル・サービスに固有のものです。
-
優先または使用可能なデータベース
-
レプリケーション・ラグ
-
リージョン・アフィニティ
グローバル・サービスはローカル・サービスと同様に変更できます。グローバル・サービスは有効にしたり、無効にしたり、別のデータベースに移動したり、プロパティを変更したりできます。
注意:
ローカル・サービスをグローバル・サービスにアップグレードすることはできません。
親トピック: Global Servicesの概要
1.3.2 Oracle RACデータベース内のグローバル・サービス
グローバル・サービスの一部のプロパティは、Oracle RACデータベースにのみ適用され、Global Data Services構成に含まれるOracle RACデータベースごとに固有です。これらのプロパティは、Oracle RACデータベース内のインスタンスでのグローバル・サービスの配置に関連します(サーバー・プールやサービス・カーディナリティを含む)。
ロード・バランシング、ロール、透過アプリケーション・フェイルオーバーのパラメータおよびデータベースのエディションなどの他の既存のグローバル・サービスの属性はすべて、グローバル・サービスを提供するすべてのデータベースで同じである必要があります。これらの属性はグローバル・サービス・レベルで指定します。
注意:
デフォルトでは、Oracle RAC環境で、パラレルで実行されるSQL文はクラスタ内のすべてのノードで実行できます。ノード間パラレル実行は、GDSロード・バランシングでの使用を意図していません。GDS構成のOracle RACデータベースでは、PARALLEL_FORCE_LOCAL
初期化パラメータをTRUE
に設定して、パラレル実行の有効範囲をOracle RACノードに制限することをお薦めします。
親トピック: Global Servicesの概要
1.3.3 Oracle Data Guard Broker構成内のグローバル・サービス
Oracle Data Guard brokerでは、プライマリ・データベースが最大30のスタンバイ・データベースを持つことが許可されます。Oracle Data Guard Brokerでは、プライマリ・データベースとスタンバイ・データベースが、統合ユニットとして管理および監視できるようにブローカ構成として論理的にグループ化されます。GDS構成にブローカ構成を含める場合、ブローカ構成は一体として管理します。GDSプールに含まれる(または削除される)のは、全体として1つのブローカ構成のみであり、ブローカ構成は複数のプールにまたがることはできません。
ブローカ構成に属するデータベースを、GDSプールを対象に追加または削除しようとすると、エラーが発生します。GDSプールにデータベースを追加できるのは、Oracle Data Guardのコマンドライン・インタフェースであるDGMGRLを使用してブローカ構成にデータベースを追加する場合のみです。ブローカ構成にデータベースを追加したら、gdsctl sync brokerconfig
コマンドを実行してGDSとOracle Data Guardを同期化する必要があります。
GDSプールには、特定のData Guard Broker構成のデータベースのセットを含めることができます。異なるData Guard Broker構成に属するデータベースは、異なるGDSプールにマップする必要があります。Data Guard構成を含むプールに、その構成に属していないデータベースを割り当てることはできません。
関連項目:
このコマンドの詳細は、「sync brokerconfig (synchronize brokerconfig)」を参照してください
反対に、ブローカ構成からデータベースを削除すると、そのデータベースはそのブローカ構成が属しているGDSプールから削除されます。gdsctl sync brokerconfig
コマンドは、データベースの削除後に実行する必要があります。これが、ブローカ構成を含むプールからデータベースを削除する唯一の方法です。
ロール属性を持つグローバル・サービスを、プライマリ・データベースや物理スタンバイ・データベースのロールなどの特定のデータベース・ロールでアクティブになるよう構成できます。ファスト・スタート・フェイルオーバーが有効な場合、プライマリ・データベースに障害が発生すると、Oracle Data Guard Brokerはスタンバイ・データベースに自動的にフェイルオーバーします。Oracle Data Guard Brokerと協働するよう構成されているグローバル・サービス・マネージャでは、適切なデータベース・サービスがアクティブになり、ロールが変更されると適切な高速アプリケーション通知(FAN)イベントが発行されます。これらのFANイベントによって、GDS構成内の適切なデータベース・インスタンスに対するクライアント接続の高速接続フェイルオーバー(FCF)が可能になります。
Global Data Servicesフレームワークでは、次のOracle Data Guard Broker構成がサポートされます。
-
Global Data Servicesプール内のデータベースのセットは、1つのブローカ構成に属するデータベースのセットか、ブローカ構成に属さないデータベースのセットのいずれかです。ブローカ構成は空のGlobal Data Servicesプールにのみ追加できます。GDSプールにすでにブローカ構成が含まれている場合、データベースをプールに追加するには、プールに含まれているブローカ構成にデータベースを追加する必要があります。
-
ロールベースのグローバル・サービスは、ブローカ構成を含むデータベース・プールについてのみサポートされます。
関連項目:
ブローカ構成の詳細は、『Oracle Data Guard Broker』を参照してください
親トピック: Global Servicesの概要
1.3.4 グローバル・サービスのデータベース配置
グローバル・サービスをサポートするデータベースを指定できます。これらのデータベースは、優先データベースと呼ばれます。グローバル・サービス・マネージャは、サービスが指定されたすべての優先データベースでグローバル・サービスが実行されるようにします。優先データベースの数は、グローバル・サービスのデータベース・カーディナリティと呼ばれます。グローバル・サービスに対して最低1つの優先データベースを指定する必要があります。
注意:
データベースでサポートするサービスに対してpreferred_all
を設定した場合、優先データベースや使用可能なデータベースを明示的に指定する必要はありません。preferred_all
設定は、プール内のすべてのデータベースが優先データベースであることを示します。
グローバル・サービスを追加または変更する際、このグローバル・サービスに対して使用可能なデータベースのリストを指定できます。いずれかの優先データベースでグローバル・サービスを提供できなくなると、グローバル・サービス・マネージャは使用可能なデータベースにサービスを再配置し、そのサービスに対して指定されたデータベース・カーディナリティを維持します。
Oracle Data Guard Broker構成を含むGlobal Data Servicesプールでは、ロールベースのグローバル・サービスは、データベースがサービスの優先データベースまたは使用可能なデータベースとしてリストされ、データベースのrole
属性がサービスに指定されたrole
属性に対応する場合にのみそのデータベースで起動されます。たとえば、ブローカ構成内の任意のデータベース(データベースのrole
属性がprimary
に設定されている場合)で実行可能なグローバル・サービスでは、そのrole
属性にprimary
が指定され、ブローカ構成内の他のすべてのデータベースのrole
属性がpreferred
に設定されている必要があります。
注意:
グローバル・サービスのデータベース・カーディナリティとインスタンス・カーディナリティを混同しないでください。インスタンス・カーディナリティはOracle RACデータベースごとに指定され、別々に維持されます。Global Data Servicesプールのデータベースをまたがっては維持されません。
たとえば、グローバル・サービスを提供するOracle RACデータベースのインスタンスがあまりなく、インスタンスの1つに障害が発生したが、グローバル・サービスを起動する使用可能なインスタンスがない場合を考えてみます。この場合、サービスは別のOracle RACデータベースの使用可能なデータベース・インスタンスで起動されません。ただし、障害の発生したインスタンスがサービスを提供するデータベース内の最後のインスタンスだった場合、このサービスに対して使用可能とリストされている別のデータベースでサービスは起動できます。
親トピック: Global Servicesの概要
1.3.5 レプリケーション・ラグとグローバル・サービス
パフォーマンス上の理由から、分散データベース・システムではデータベース間のデータのレプリケーションに非同期レプリケーションが使用されることが多くあります。このことは、プライマリ・データベースでのデータの更新とこの更新のレプリカへの反映に遅延の可能性があることを意味します。これが起こると、レプリカ・データベースはプライマリ・データベースより遅れます。
Global Data Servicesによって、リアルタイム・データを提供するグローバル・サービスと、レプリケーション・ラグが理由で古いデータを返す可能性のあるサービスをアプリケーションで区別できます。ある程度のラグがあってもかまわないアプリケーションの場合、最大許容ラグ値を構成します。
レプリケーション・ラグを許容できないアプリケーションの場合、グローバル・サービスのラグ時間をゼロに設定します。このグローバル・サービスに対するリクエストは、プライマリ・データベースまたはプライマリ・データベースと同期のとれているレプリカ・データベースにのみ転送されます。
関連項目:
詳細は、「Global Data Services構成の管理」を参照してください
注意:
Oracle Data Guardスタンバイ・データベースは必要に応じてプライマリ・データベースと同期をとることができるため、リアルタイムの読取り専用サービスをプライマリ・データベースおよび同期の取れているスタンバイ・データベースの両方で有効にできます。
多くのアプリケーションでは、データの一貫性が維持されているかぎり、古いデータの読取りは許容されます。そのようなアプリケーションでは、レプリケーション・ラグ時間の長さに関係なく、任意のデータベース・レプリカで実行されているグローバル・サービスを使用できます。
サービスのラグ時間をゼロ以外の値に構成した場合、クライアント・リクエストは、プライマリ・データベースからの遅延がサービスに対して構成されているラグ時間以内のレプリカ・データベースにのみ転送されます。そのようなデータベースがない場合、接続リクエストは失敗します。
注意:
最大レプリケーション・ラグの指定は、Active Data Guard構成でのみサポートされます。
現在実行されているサービスが指定された最大ラグを超え始めると、現在のリクエストがすべて完了した後、サービスが停止されます。サービスに対する新しいリクエストは、サービスに対して構成されているラグ値に適合するデータベースに転送されます。
注意:
Oracle Active Data Guardオプションを追加してOracle Data Guardを使用している場合、STANDBY_MAX_DATA_DELAY
セッション・パラメータを使用してセッション固有のラグ許容値を指定できます。このパラメータをゼロ以外の値に設定すると、アプリケーション・ラグ時間がSTANDBY_MAX_DATA_DELAY
パラメータ値以下の場合にのみ、物理スタンバイ・データベースに発行された問合せが実行されます。それ以外の場合、データベースは、ラグ時間が長すぎることをクライアントに通知するエラーを返します。セッション・レベルとサービス・レベルのパラメータが両方とも設定され、STANDBY_MAX_DATA_DELAY
パラメータ値がサービス・レベルのパラメータ値より小さい場合、クライアントはデータベースへの接続を維持しますが、問合せではエラーが返されます。
注意:
データベースに障害が発生すると、グローバル・サービス・マネージャは、サービスに対して指定されている最大ラグ値に適合する別のデータベース(障害が発生したデータベースより遅れていることもある)にクライアント接続を転送します。ただし、このソリューションによって一部のアプリケーションでデータの整合性の問題が発生する可能性があります。
関連項目:
STANDBY_MAX_DATA_DELAY
セッション・パラメータの詳細は、『Oracle Data Guard概要および管理』を参照してください
親トピック: Global Servicesの概要
1.3.6 グローバル・サービスと分散トランザクション処理
GDS構成に対してXA (分散)トランザクションを実行する場合、XAトランザクションの密結合ブランチは同じデータベースに送信される必要があります。これを実現するには、分散トランザクションで使用される各グローバル・サービスが、一度に必ず1つのデータベースで実行されることを確認します。分散トランザクションで使用されるグローバル・サービスのプロパティを構成および管理する責任者は、GDSプール管理者です。
XAトランザクションで使用されるグローバル・サービスが複数インスタンスのOracle RACデータベースで実行される場合、XAトランザクションの密結合ブランチは、デフォルトで個別のデータベース・インスタンスに送信できます。これにより、パフォーマンスが低下する可能性があります。この場合にパフォーマンスが低下することを避けるため、Oracle RACデータベースで実行が可能なXAトランザクションによって使用されるすべてのサービスでDTPパラメータ(-dtp)
をTRUEに設定することを強くお薦めします。パラメータを設定することで、サービスを通じて実行されるすべての分散トランザクションで、密結合ブランチが単一のOracle RACインスタンスで実行されることが保証されます。
注意:
グローバル・サービスのDTPパラメータは、そのサービスを提供するOracle RACデータベースのXAトランザクションの処理にのみ影響します。グローバル・サービスのデータベース・カーディナリティには影響しません。分散トランザクションで使用されるグローバル・サービスは、一度に1つのデータベース上でアクティブになるように手動で構成する必要があります。
親トピック: Global Servicesの概要
1.3.7 マルチテナント・アーキテクチャのグローバル・サービス
マルチテナント・コンテナ・データベース(CDB)は、GDS構成の一部にすることができます。グローバル・サービスはCDBのルート・レベル(CDB$ROOT)またはプラガブル・データベース(PDB)レベルで定義できます。PDBで実行されるグローバル・サービスを作成するには、作成時にPDBプロパティをPDB名に設定します。サービスの作成後は、グローバル・サービスのPDBプロパティは変更できません。PDBプロパティが設定されていない場合、サービスはCDBルート・レベル(CDB$ROOT)で作成されます。
サービスがPDBレベルで作成された場合、サービスのすべての優先データベースと使用可能なデータベースに、サービスが属するPDBが含まれます。PDBレベルで定義されたグローバル・サービスは、他のレベルで定義されたサービスと同じ操作およびルールで管理されます。
親トピック: Global Servicesの概要
1.4 グローバル接続ロード・バランシング
サービスを使用してクライアントがOracle RACデータベースに接続する場合、クライアントはOracle Net接続ロード・バランシング機能を使用して、サービスをサポートしているすべてのインスタンスにユーザー接続を分散できます。同様に、Global Data Services構成でグローバル・サービスに接続するクライアントは、必要に応じて、異なるデータベースおよびリージョン全体でロード・バランシングされます。
1.4.1 クライアント側のロード・バランシング
クライアント側のロード・バランシングは、グローバル・サービス・マネージャ全体で接続リクエストを調整します。接続フェイルオーバーもサポートされます。接続フェイルオーバーを使用すると、選択したグローバル・サービス・マネージャからエラーが返された場合にOracle Net Servicesによってアドレス・リストにある次のアドレスが試され、これは接続に成功するか、Oracle Net Servicesによってアドレス・リストにあるすべてのアドレスが試されるまで続けられます。
Global Data Services構成でのクライアント側のロード・バランシングおよびフェイルオーバーは、Oracle RACデータベースのものとほぼ同じです。ただし、Global Data Services構成では、Global Data Servicesリージョンのクライアントは、最初にそのローカル・リージョンのいずれかのグローバル・サービス・マネージャに接続しようとします。ローカル・リージョンのグローバル・サービス・マネージャが応答しない場合、クライアントは別のリージョンのグローバル・サービス・マネージャを試します。
Global Data Services構成の複数のリージョン全体でクライアント側のロード・バランシングおよびフェイルオーバーを有効にするには、ロード・バランシングおよびリージョン内フェイルオーバー用のローカル・リージョン・グローバル・サービス・マネージャのアドレス・リストを1つと、リージョン間フェイルオーバー用のリモート・リージョン・グローバル・サービス・マネージャのアドレス・リストを1つ以上含むOracle Net接続記述子をクライアントで使用する必要があります。リージョンが指定されていない場合、デフォルトであるクライアントの接続先のグローバル・サービス・マネージャのリージョン名に設定されます。各リストにタイムアウトと再試行回数を構成して、リスト内の別のグローバル・サービス・マネージャに移る前に現在のグローバル・サービス・マネージャへの接続を複数回試行することもできます。
関連項目:
詳細は、「データベース・クライアントの構成」を参照してください
親トピック: グローバル接続ロード・バランシング
1.4.2 サーバー側のロード・バランシング
Oracle RACデータベースに対するサーバー側のロード・バランシングでは、最適なOracle RACデータベース・インスタンスに接続リクエストを転送するリスナーが使用されます。長時間の接続を使用するアプリケーションもあれば、短時間の接続を使用するアプリケーションもあります。
グローバル・サービスの場合、サーバー側のロード・バランシングは同じように動作しますが、ワークロードは1つのデータベースに制限されず、Global Data Services構成の複数のデータベース全体で調整される点が異なります。ほとんどの場合、グローバル・サービス・マネージャは、すべてのローカル・サーバーに負荷がかかりすぎていたり、リモート・サーバーが非常に質のよいサービスを提供できる場合以外、グローバル・サービスに対するクライアント・リクエストを同じリージョン内のデータベース・サーバーに転送します。
ローカル・サーバーのデータ・キャッシュを利用するために、リクエストをローカル・リージョンに転送することができます。Global Data Servicesによって、グローバル・サービスのクライアント/サーバー・アフィニティの目的のレベルを指定できます。
親トピック: グローバル接続ロード・バランシング
1.4.3 グローバル・サービスのリージョン・アフィニティ
グローバル・サービスは、特定のリージョン内またはGlobal Data Services構成の任意のリージョン内で動作するように構成できます。これは、リージョン・アフィニティと呼ばれます。
1.4.3.1 任意リージョン・アフィニティ
グローバル・サービスの任意リージョン・アフィニティ(デフォルト)では、クライアントの接続リクエストは、リージョンとは関係なく、Global Data Services構成内で要求されたサービスの接続ロード・バランシングの目的を満たすのに最も適したデータベースにルーティングされます。データベースの選択は、パフォーマンスと、クライアントおよびデータベースを含むリージョン間のネットワーク待機時間に基づきます。このポリシーでは、異なるリージョンのデータベースの負荷が同じ場合、ローカル・リージョンが優先されます。リージョン間のデータベース・パフォーマンスの差がネットワーク待機時間にまさる場合にのみ、リージョン間接続が行われます。
任意リージョン・アフィニティのグローバル・サービスに優先データベースと使用可能なデータベースを指定した場合、サービスのカーディナリティはGlobal Data Servicesプール・レベルで維持されます。サービスは、優先データベースで停止すると、Global Data Servicesプールの使用可能な任意のデータベースで起動されるため、プール内のサービス・プロバイダの数は同一となります。使用可能なデータベースでサービスを起動する際、サービスが失敗したリージョンのデータベースが優先されます。このサービスに対して使用可能なデータベースがローカル・リージョンにない場合、近接するリージョンから使用可能なデータベースが選択されます。
親トピック: Global Servicesのリージョン・アフィニティ
1.4.3.2 ローカル・リージョン・アフィニティ
グローバル・サービスのローカルGlobal Data Servicesリージョン・アフィニティでは、要求されたサービスの接続ロード・バランシングの目標に合うクライアントのリージョン内の最適なデータベースにクライアント接続リクエストを転送します。グローバル・サービス・マネージャは、データベースのパフォーマンスのみに基づいてデータベースを選択します。ローカル・リージョン・アフィニティのグローバル・サービスは、同時に複数のGlobal Data Servicesリージョンで提供されることはありますが、あるリージョンのクライアントが別のリージョンのデータベースに接続されることはありません。
ローカル・リージョン・アフィニティのグローバル・サービスに優先データベースまたは使用可能なデータベースを指定した場合、サービスのカーディナリティはリージョン・レベルで維持されます。サービスが優先データベースで失敗すると、同じリージョン内の使用可能なデータベースでサービスが起動され、リージョン内のサービス・プロバイダの数は変わりません。このグローバル・サービスに対して使用可能なデータベースがローカル・リージョンにない場合、何のアクションもとられず、サービスのカーディナリティが減少します。ローカル・リージョンにグローバル・サービスを提供するデータベースがない場合、クライアント接続リクエストは拒否されます。ローカル・リージョン・アフィニティのグローバル・サービスの場合、サービスのデータベース・カーディナリティは各リージョンで個々に維持されます。
親トピック: Global Servicesのリージョン・アフィニティ
1.4.3.3 リージョン間フェイルオーバー付きローカル・リージョン・アフィニティ
このタイプのアフィニティは、ローカルGlobal Data Servicesリージョン・アフィニティと似ていますが、ローカル・リージョンにグローバル・サービスを提供するデータベースがない場合、クライアント・リクエストを拒否するかわりに、要求されたグローバル・サービスが実行されている別のリージョンの最適なデータベースにリクエストが転送されます。ローカル・リージョン・アフィニティでは、データベース・カーディナリティは、リージョンごとに独立して維持され、別のリージョンでのサービスの失敗が原因で変化することはないため、このサービス・フェイルオーバーによって別のリージョンの使用可能なデータベースでサービスが起動されることはありません。リージョン間フェイルオーバーによってリージョンのデータベースに負荷がかかりすぎている場合、サービスに対する優先データベースを手動で追加できます。
親トピック: Global Servicesのリージョン・アフィニティ
1.5 グローバル実行時接続ロード・バランシング
グローバル実行時接続ロード・バランシングでは、クライアントの作業リクエストが、データベースからのロード・バランシング情報に基づいてOracle RACデータベースの複数のインスタンスにまたがる永続接続全体に分散されます。この機能は、ロード・バランシングの推奨を受信できる接続プールでサポートされます。データベースでは、サービスの実行時接続ロード・バランシングの目標およびデータベース・インスタンスの相対パフォーマンスを使用して、サービス・リクエストの送信先に関する推奨を生成します。
ランタイム接続のロード・バランシングにおけるサービス・レベルの目標値には、次の2つのタイプがあります。
-
SERVICE_TIME: 応答時間に基づいて、作業要求をインスタンスに割り当てます。ロード・バランシング・データは、サービスで完了した作業の経過時間およびサービスに対して使用可能な帯域幅に基づきます。
-
THROUGHPUT: スループットに基づいて、作業要求をインスタンスに割り当てます。ロード・バランシング・データは、サービスで完了した作業の処理速度およびサービスに対して使用可能な帯域幅に基づきます。
Global Data Servicesフレームワークでは、グローバル・サービスに対する実行時の作業リクエストの調整もサポートされます。Global Data Servicesフレームワークで、リクエストは、複数データベースのインスタンスへの接続に分散されます。作業は、システム全体で最適なサービス時間が実現されるようにルーティングされ、システムの状態変化に透過的に対応します。
グローバル実行時接続ロード・バランシングを提供するため、グローバル・サービス・マネージャは、Global Data Services構成のすべてのデータベース・インスタンスから各サービスのパフォーマンス・データを受信します。グローバル・サービス・マネージャは、他のGlobal Data Servicesリージョンのグローバル・サービス・マネージャと定期的にメッセージを交換することで、ネットワーク待機時間の測定も行います。
グローバル・サービスのロード・バランシングの目標がSERVICE_TIME
に設定されている場合、作業リクエストの分散方法を決める際、リージョン間ネットワーク待機時間とインスタンスのパフォーマンス・データが確認されます。たとえば、リージョンAのクライアントは、リージョンAに対して重み付けされた実行時ロード・バランシング・メトリックを使用し、リージョンBのクライアントは、リージョンBに対して重み付けされたメトリックを使用します。これは、サービスが同じであっても、異なるリージョンのクライアントは異なる実行時ロード・バランシング・メトリックを受信することを意味します。
グローバル・サービスのロード・バランシングの目標がTHROUGHPUT
に設定されている場合、実行時ロード・バランシング・メトリックは、データベース・インスタンスのパフォーマンスのみに基づいて計算されます。
状況によっては、グローバル・サービス・マネージャは、ローカル・クライアントの実行時ロード・バランシング・メトリックの計算以外に、リモート・リージョンの実行時ロード・バランシング・メトリックを計算して、グローバル・サービス・マネージャのすべてを使用できないリージョンに存在するクライアントにメトリックを公開する必要もあります。
1.5.1 アフィニティ
グローバル・サービス・マネージャは、受信した作業をその作業に最適なサービス品質を提供するGlobal Data Services構成のデータベースに送信する方法についてのアドバイスを行います。ロード・バランシング・アドバイザは、同じデータベースに再接続する必要があるかどうかを(ユニバーサル接続プール(UCP)やODP.NET接続プールなどとして)クライアントやOracle Net Servicesイベントに対するサブスクライバに示す追加のアフィニティ情報も送信します。同じデータベースにセッションを再接続すると、バッファ・キャッシュの効率が高まり、CPU使用率とトランザクション待機時間を低くすることができます。アフィニティ情報は、特定のデータベースでアフィニティがアクティブであるか非アクティブであるかを示します。単一インスタンス・データベースの場合は常に非アクティブで、データベースがOracle RACの場合は、特定のインスタンスに対してアクティブにも非アクティブにもできます。
親トピック: グローバル実行時接続ロード・バランシング
1.5.2 ディスクI/OとCPUのしきい値
ディスクI/OとCPUのしきい値は、データベース管理者が設定できるリソース消費の限度です。ディスクI/Oしきい値は、1ブロックの読取り待機時間上限の設定によって構成され、CPUしきい値は、CPU使用率の上限の設定によって設定されます。グローバル・サービス・マネージャはリソースの使用状況を監視し、I/OとCPUのしきい値に達したかどうかをチェックします。データベースがいずれかのしきい値に達すると、ロード・バランシング・アドバイザリは、受信した作業のこのデータベースへの転送方法に関するアドバイスを再調整します。
親トピック: グローバル実行時接続ロード・バランシング
1.6 グローバル・サービスのフェイルオーバー
グローバル・サービスまたはデータベースが停止すると、データベースで実行されていたグローバル・サービスは、グローバル・サービスが有効化されているがまだ実行されていない別のデータベースにフェイルオーバーされます(データベース・ロールがサービス・ロールに一致する場合)。グローバル・サービス・マネージャは、フェイルオーバーのターゲットとして使用可能なデータベースより優先データベースを優先します。
GDSCTLを使用してグローバル・サービスを停止した場合、サービスは別のデータベースにフェイルオーバーしません。ただし、サービスが停止されたデータベースは、依然としてこのサービスのフェイルオーバー・ターゲットです。サービスが別のデータベースで失敗すると、そのデータベースで起動できます。
グローバル・サービスが使用可能なデータベースにフェイルオーバーした場合、優先データベースが再起動しても、Global Data Servicesフレームワークは次の理由からサービスを優先データベースに戻しません。
-
サービスのカーディナリティが所定のカーディナリティです。
-
現在のインスタンスまたはデータベースでサービスを維持することによって、サービスの可用性が増します。
-
サービスを最初の優先インスタンスまたはデータベースに戻さないことで、2回目の停止が回避されます。
サービスが正常かつアクティブなセッションを終了せずに再起動したら、必要に応じてグローバル・サービスを優先データベースに手動で戻すことができます。
Oracle Data Guard Broker構成を含むGlobal Data Servicesプールでは、Global Data Servicesフレームワークでロールベースのグローバル・サービスがサポートされます。有効なロールはPRIMARY
、PHYSICAL_STANDBY
、LOGICAL_STANDBY
およびSNAPSHOT_STANDBY
です。Global Data Servicesフレームワークは、データベース・ロールがサービスに対して指定されたロールに適合する場合にのみグローバル・サービスを自動的に起動します。
データベースがロールを切り替えたり、データベースに障害が発生した場合、Oracle Data Guard BrokerはGlobal Data Servicesフレームワークにロールの変更または障害について通知し、グローバル・サービス・マネージャはサービスが新しいデータベース・ロールに従って起動されるようにします。
注意:
ローカリティ・パラメータがLOCAL_ONLY
に設定されている場合、グローバル・サービスは、あるGlobal Data Servicesリージョンのデータベースから別のリージョンのデータベースにフェイルオーバーしません。リージョン間フェイルオーバーは無効です。
グローバル・サービスがフェイルオーバーする際、高速接続フェイルオーバーがOracleクライアントで有効な場合、そのグローバル・サービスへの接続のフェイルオーバーが速くなります。Global Data Servicesフレームワークは、Oracle RAC同様、高速アプリケーション通知(FAN)を使用してアプリケーションにサービスの停止について通知します。アプリケーションでデータベースをポーリングして問題を検出するまで待機するかわりに、クライアントはFANイベントを受信して、ただちにアクションを実行します。障害が発生したインスタンスまたはノードへのセッションは終了され、新規接続は、グローバル・サービスを提供する使用可能なインスタンスに転送されます。
すべてのグローバル・サービス・マネージャが、Global Data Services構成のすべてのデータベースでサービス可用性を監視します。グローバル・サービスは、障害のために使用不可能になったことがグローバル・サービス・マネージャによって検出されると、使用可能なデータベースで起動されます。
注意:
グローバル・サービス・マネージャは、Global Data Servicesカタログに接続できない場合、サービスを自動的にフェイルオーバーできません。
注意:
フェイルオーバー用のターゲット・データベースがOracle Clusterwareの制御下にある場合、このデータベースでサービスを起動しようとするグローバル・サービス・マネージャのフェイルオーバー・リクエストは、別のインスタンスを起動するプルアップ・イベントになることがあります。この状況が発生するのは、1つ以上のインスタンスがグローバル・サービス・マネージャ・リスナーに登録されており、グローバル・サービス・マネージャが、データベースが実行中でフェイルオーバー用の有効なターゲットになっているが、サービスがまだデータベース上で実行されていないことを認識できる場合です。登録されたインスタンスが、管理者によって管理されるOracle RACデータベース上で使用できるインスタンスであるため、またはサービスと同じサーバー・プールに存在しないポリシー管理のOracle RACデータベースのインスタンスであるため、サービスのプライマリ・インスタンスまたは有効なインスタンスでない場合に、これが発生する可能性があります。
親トピック: Global Data Servicesの概要
1.7 グローバル・サービス・マネージャ・プロセス・スイートのアーキテクチャ
グローバル・サービス・マネージャ・プロセス・スイートのアーキテクチャは、共有メモリーを使用して通信する複数のプロセスを含むプロセス・スイートです。グローバル・サービス・マネージャには、次のプロセスが含まれます。
-
監視: プロセス・スイート内の他のすべてのプロセスの状態を監視します。他のグローバル・サービス・マネージャ・プロセスの起動、共有メモリー領域の作成、およびグローバル・サービス・マネージャ・プロセスの停止検出後の再生成を担当します。
-
リスナー: 着信クライアント接続リクエストをリスニングし、適切なデータベース・インスタンスにリクエストを転送します。Global Data Services構成の各インスタンスは、すべてのグローバル・サービス・マネージャ・リスナーに対する通信チャネルを確立します。このチャネルは、グローバル・サービスの登録と、リスナーへのパフォーマンス・メトリックの送信に使用されます。これらのメトリックは、後で接続時および実行時のロード・バランシングに使用されます。データベース・インスタンスの停止時を検出します。リスナー・プロセスは、通常のデータベース・リスナーのすべての機能を提供します。したがって、グローバル・サービス・マネージャは、Global Data Services構成ですべてのデータベースのリモート・リスナーの役割を果たします。グローバル・サービス・マネージャ・リスナーは、Oracle RACデータベースのSCANリスナーをバイパスして、ローカル・データベース・リスナーに接続リクエストを直接ルーティングします。
-
pinger: 他のリージョンのグローバル・サービス・マネージャのpingerプロセスとデータを交換して、リージョン間のネットワーク待機時間を測定します。グローバルに分散されたデータベース・クラウドで接続時および実行時のロード・バランシングを行うために測定が必要です。他のグローバル・サービス・マネージャを監視し、その独自のグローバル・サービス・マネージャがリージョンまたはマスター・グローバル・サービス・マネージャになる必要がある時期を通知します。
-
OCIプロセス: Global Data Servicesデータベース(サービスの管理用)とGlobal Data Servicesカタログ(Global Data Services構成の管理用)に対するSQLNET接続の確立を担当します。
-
ONSサーバー: RLBおよびHA FANイベントを、クライアントがそのイベントにサブスクライブできるようにリージョンONSネットワークにパブリッシュします。
-
ONSクライアント: Global Data Services構成のOracle RACデータベースによってパブリッシュされるHAイベントへのサブスクライブを担当します。
図1-2に、内部プロセスのアーキテクチャと、プロセス・スイートに出入りする情報フローを示します。
親トピック: Global Data Servicesの概要
1.8 Global Data Servicesの使用例
次に、Oracle Global Data Servicesの使用例をいくつか示します。
- レプリケート・データベースのロード・バランシング
- レプリケート・データベースのサービス・フェイルオーバー
- Oracle GoldenGateマルチマスターのリージョン・アフィニティ
- Oracle GoldenGateマルチマスターのロード・バランシング
- Oracle Active Data GuardとOracle GoldenGateリーダー・ファームの調整
親トピック: Global Data Servicesの概要
1.8.1 レプリケート・データベースのロード・バランシング
Global Data Servicesは、Oracle RACスタイルの(データ・センター内部および相互の)接続時および実行時ロード・バランシング機能をレプリケート・データベースのセットに拡張します。アルゴリズムでは、負荷メトリック、リージョン・アフィニティ、ネットワーク待機時間およびロード・バランシングの目標が考慮されます。これにより、Active Data GuardでGlobal Data Servicesが有効化されることで、パフォーマンスが最大化され、効率的なリソース使用が実現します。
図1-3に、Global Data Services構成でのローカルとリモート両方のレプリケート・データベース間のロード・バランシングを示します。読取り/書込みサービスは、プライマリ(またはマスター)データベースで実行されます。読取り専用サービスは、2つのスタンバイ(またはレプリカ)データベースで実行されます。クライアント接続は、2つのデータ・センターに存在するスタンバイ・データベースで実行される読取り専用サービス間でロード・バランシングされます。
親トピック: Global Data Servicesの使用例
1.8.2 レプリケート・データベースのサービス・フェイルオーバー
Global Data Servicesは、Oracle RACスタイルの(データ・センター内部および相互の)サービス・フェイルオーバーおよび管理機能をレプリケート・データベースに拡張します(サービス配置ポリシーが考慮されます)。これにより、Active Data GuardおよびOracle GoldenGateでGlobal Data Servicesが有効化されることで、可用性が向上し、管理性が改善されます。
図1-4に、Global Data Services構成において2つのデータ・センター間でレプリケートされたデータベースを示します。読取り/書込みサービスは、プライマリ(またはマスター)データベースで実行されます。読取り専用サービスは、2つのスタンバイ(またはレプリカ)データベース間でロード・バランシングされます。
図1-4は、データ・センター1でのスタンバイの障害を示しています。図1-5で、Global Data Servicesは、読取り専用サービスを別の使用可能なデータベース(この場合はプライマリ)にフェイルオーバーし、それをデータ・センター2のリモート・スタンバイで実行されている読取り専用サービスを使用してロード・バランシングしています。
親トピック: Global Data Servicesの使用例
1.8.3 Oracle GoldenGateマルチマスターのリージョン・アフィニティ
図1-6は、Global Data Services構成でのOracle GoldenGateマルチマスター・レプリカを示しています。この使用例では、アプリケーションは、マルチマスターの読取り/書き込みの競合を避ける必要があり、Global Data Servicesは、すべてのワークロードをクライアントのリージョン内で最も近くにある最適なレプリカにルーティングできます。
GDSCTL>add service –service reporting_srvc –gdspool sales –preferred_all –locality LOCAL_ONLY –region_failover GDSCTL>add service –service order_entry_srvc –gdspool sales –preferred_all –locality LOCAL_ONLY –region_failover
この使用例の特徴は次のとおりです。
-
アプリケーションは、マルチマスターの競合解消を処理します。
-
読取り/書込みおよび読取り専用のグローバル・サービスが両方のレプリカ上で実行されています。
-
クライアント接続は、要求された受注およびレポート・グローバル・サービスの接続ロード・バランシングの目標に合うクライアントのリージョン内で最も近くにある最適なレプリカ・データベースにルーティングされます。
-
負荷メトリック、リージョン・アフィニティおよびロード・バランシングの目標が考慮されます。
-
Global Data Servicesにより、Oracle GoldenGateマルチマスター構成用として、読取り専用および読取り/書込みサービスのワークロード・ルーティングが提供されます。
-
Oracle GoldenGateマルチマスター構成でGlobal Data Servicesを有効化することで、最も近いデータ・センターにすべてのデータベース・ワークロードがルーティングされます。
親トピック: Global Data Servicesの使用例
1.8.4 Oracle GoldenGateマルチマスターのロード・バランシング
図1-7は、Global Data Services構成でのOracle GoldenGateマルチマスター・レプリカを示しています。この使用例では、アプリケーションは、マルチマスターの競合解消を処理する必要があり、Global Data Servicesは、すべての作業リクエストに対して(データ・センター内部および相互の)接続時および実行時のロード・バランシングを提供します。
GDSCTL>add service -service order_entry_srvc -gdspool sales –preferred_all -clbgoal LONG GDSCTL>add service -service reporting_srvc -gdspool sales –preferred_all -clbgoal LONG
この使用例の特徴は次のとおりです。
-
アプリケーションは、マルチマスターの競合解消を処理します。
-
読取り/書込みおよび読取り専用のグローバル・サービスが両方のレプリカ上で実行されています。
-
クライアント接続は、データ・センターをまたいで存在する2つのマスターで実行される読取り/書込みグローバル・サービス間でロード・バランシングされます。これは、読取り専用サービスでも同じです。
-
負荷メトリック、リージョン・アフィニティ、ネットワーク待機時間およびロード・バランシングの目標が考慮されます。
-
Oracle GoldenGateマルチマスター構成でGDSを有効化することで、すべてのワークロードがロード・バランシングされます。
-
親トピック: Global Data Servicesの使用例
1.8.5 Oracle Active Data GuardとOracle GoldenGateリーダー・ファームの調整
図1-8は、ローカルとリモート両方のデータ・センターにフィジカル・スタンバイ/レプリカが存在するOracle Active Data GuardまたはOracle GoldenGateリーダー・ファームに対して有効化されたGlobal Data Servicesを示しています。Global Data Servicesのこの使用例では、読取り/書込みワークロードをプライマリ/マスターにルーティングし、リーダー・ファームの読取り専用ワークロードを調整することで、読取りワークロードのリソース使用率の向上と高度なスケーラビリティの実現を期待できます。
この使用例の特徴は次のとおりです。
-
読取り/書込みグローバル・サービスは、プライマリ/マスター・データベースで実行されます。
-
読取り専用グローバル・サービスは、リーダー・ファームで実行されます。
-
クライアント接続は、データ・センターをまたいで存在するリーダー・ファームで実行される読取り専用グローバル・サービス間でロード・バランシングされます。
-
Global Data Servicesは、リーダー・ファームで(データ・センター内部および相互の)接続時および実行時ロード・バランシングを提供し、Oracle Active Data GuardまたはOracle GoldenGateリーダー・ファームの読取り専用ワークロードを調整することで、リソース使用率の向上と高度なスケーラビリティを実現します。
図1-8 Oracle Active Data GuardとOracle GoldenGateリーダー・ファームの調整
![図1-8の説明が続きます。 図1-8の説明が続きます。](img/gsmug_vm_012.png)
「図1-8 Oracle Active Data GuardとOracle GoldenGateリーダー・ファームの調整」の説明
例1-1 Oracle GoldenGate
GDSCTL>add service -service reporting_srvc -gdspool sales –preferred DB02, DB03, DB04 -clbgoal LONG –rlbgoal SERVICE_TIME
親トピック: Global Data Servicesの使用例