2 Oracle GDSのアーキテクチャと概念

2.1 概要

データベース・クライアントにとって、Global Data Services構成は、グローバル・サービスのセットによって表現されます。Global Data Services構成に対応するグローバル・サービス・マネージャは、構成によって提供されるすべてのグローバル・サービスを認識し、データベース・クライアントと構成内のデータベースの仲介者として機能します。クライアント・プログラムはリージョナル・グローバル・サービス・マネージャに接続し、グローバル・サービスへの接続を要求します。クライアントはデータベースまたはインスタンスを指定する必要はありません。グローバル・サービス・マネージャは、クライアント・リクエストを、グローバル・サービスを提供する構成内の最も適切なインスタンスに転送します。グローバル・サービスを共有するデータベース・クライアントには同じサービス・レベルの要件が必要です。

1つのデータベースによって提供される従来型のデータベース・サービスとして定義されるローカル・サービスの機能は、グローバル・サービスによって変更されません。Oracle Databaseは、ローカル・サービスおよびグローバル・サービスを同時に提供できます。クライアント・アプリケーションもグローバル・サービスおよびローカル・サービスと同時に連携できます。

グローバル・サービスの構成および実行時ステータスは、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コマンドを使用してグローバル・サービスをあるデータベースから別のデータベースに手動で移動する場合、グローバル・サービス・マネージャによって対応するデータベースのサービスが停止および起動されます。

2.2 Global Data Servicesのアーキテクチャ

次の図に、Global Data Services (GDS)構成の例と共通GDSコンポーネントを示します。

図2-1 Global Data Servicesコンポーネント


図2-1の説明が続きます
「図2-1 Global Data Servicesコンポーネント」の説明

2.3 GDSの概念

データベース・サービスは、Oracleデータベースでのワークロードを管理するための論理的な抽象概念です。各サービスは、一般的な属性、サービス・レベルしきい値および優先度でワークロードを表します。グループ化は、作業特性(アプリケーション機能など)に基づいて実行できます。たとえば、Oracle E-Business Suiteでは、アプリケーション・モジュールごと(総勘定元帳、売掛金勘定、受注など)にサービスを定義します。サービスはOracle Databaseに組み込まれており、複数のワークロードに対して単一のシステム・イメージを提供します。サービスを使用すると、管理者が、ワークロードの構成、管理、有効化および無効化を実行でき、そのワークロードを単一エンティティとして測定できます。クライアントは、データベース・サービス名を使用して接続します。

レプリケートされた環境の場合は、GDSにより、"グローバル・サービス"の概念が導入されます。グローバル・サービスは、GDSプールと呼ばれる、特定の管理ドメインに属する、レプリケート・データを含む一連のデータベースにわたり提供されます。GDSプールの例としては、SALESプールやHRプールがあります。GDS構成内の一連のデータベース、およびデータベース・クライアントは、それらがネットワーク近接性を共有する場合には、同じGDSリージョンにあると考えられます。GDSリージョンの例としては、アジア地域、ヨーロッパ地域などがあります。

グローバル・サービスでは、従来のデータベース・サービスのすべての特性がサポートされています。グローバル・サービスでは、従来のデータベース・サービスが追加属性(グローバル・サービス配置、レプリケーション・ラグ(Oracle Active Data GuardおよびOracle GoldenGateは19c以降)、リージョン・アフィニティなど)で拡張されています。

グローバル・サービス配置: グローバル・サービスが作成されると、GDSにより、そのサービスの優先データベースおよび使用可能データベースを指定できるようになります。使用可能データベースでは、優先データベースに障害が発生した場合にグローバル・サービスがサポートされます。また、GDSでは、指定したGDSプールのすべてのレプリカで実行するようにサービスを構成できます。

レプリケーション・ラグ: クライアントを、グローバル・サービスのラグ属性で設定されている許容範囲制限に従って遅延していないOracle Active Data Guardスタンバイにルーティングできます。

リージョン・アフィニティ: グローバル・サービスでは、指定したアプリケーションが接続する必要があるリージョン(アジアやヨーロッパなど)に優先を設定できます。

図2-2 Global Data Servicesによるワークロード・バランシング



2.3.1 Global Data Servicesコンポーネント

次の項では、Oracle GDS構成コンポーネントについて説明します。

2.3.1.1 Global Data Servicesプール

Global Data Servicesプールは、GDS構成内の各データベースの名前付きサブセットであり、一意のグローバル・サービス・セットを提供し、同じ管理ドメインに属しています。GDS構成データベースを各プールにパーティション化すると、サービス管理が簡素化され、かつ、各プールを異なる管理者が管理できることによって、セキュリティが向上します。

データベースは1つのGlobal Data Servicesプールにのみ属することができます。プールのすべてのデータベースで同じグローバル・サービス・セットを提供する必要はありません。ただし、同じグローバル・サービスを提供するデータベースはすべて同じプールに属する必要があります。

2.3.1.2 Global Data Servicesリージョン

Global Data Servicesリージョンは、GDS構成のデータベースおよびデータベース・クライアントの名前付きサブセットであり、通常はあるリージョンのメンバー間のネットワーク待機時間が異なるリージョンのメンバー間のものより小さくなるようにネットワークの近接性を共有します。リージョンは、通常、ローカル・エリア・ネットワークまたはメトロポリタン・エリア・ネットワーク(LANまたはMAN)に対応します。たとえば、データ・センターに地理的に近接する1つ以上のGDS構成データベースおよびデータベース・クライアントをホストするデータ・センターは、同じリージョンに属することができます。

1つのリージョンに複数のGlobal Data Servicesプールを含めることが可能で、これらのプールは複数のリージョンにまたがることができます。

高可用性を実現するため、GDS構成の各リージョンには、バディ・リージョン(ローカル・リージョンのグローバル・サービス・マネージャが使用できなくなった場合にGDS構成への継続的なアクセスを提供するグローバル・サービス・マネージャを含むリージョン)を指定する必要があります。

2.3.1.3 グローバル・サービス・マネージャ

グローバル・サービス・マネージャは、GDS構成のサービスに対してサービス・レベルのロード・バランシング、フェイルオーバーおよび一元的な管理を提供するGlobal Data Servicesのソフトウェア・コンポーネントです。Global Data Servicesクライアントは、グローバル・サービス・マネージャを使用してすべてのGDS構成操作を実行します。

グローバル・サービス・マネージャは、Oracle RACデータベースのリモート・リスナーと似ていますが、グローバル・サービス・マネージャは複数のデータベースに対応する点が異なります。グローバル・サービス・マネージャは次のことを行います。

  • クライアントがグローバル・サービスに接続するために使用するリージョン・リスナーとして機能します。

  • クライアントに接続時ロード・バランシングを提供します。

  • GDS構成のリージョン全体でグローバル・サービスを管理します。

  • GDS構成のデータベースからパフォーマンス・メトリックを収集し、構成のリージョン間のネットワーク待機時間を測定します。

  • 実行時ロード・バランシング・アドバイザを作成し、それをクライアント接続プールに公開します。

  • データベース・インスタンスおよびグローバル・サービスの可用性を監視し、それらが停止した場合クライアントに通知します。

1つのグローバル・サービス・マネージャは、1つのGDS構成のみに関連付けられます。GDS構成の各リージョンには、少なくとも1つのグローバル・サービス・マネージャが存在する必要があります。可用性とパフォーマンスを向上するため、各リージョンで複数のグローバル・サービス・マネージャを構成することをお薦めします。GDS構成のすべてのグローバル・サービス・マネージャで、その構成によってサポートされるすべてのグローバル・サービスを管理します。

ノート:

マスターGSMは、新しいGlobal Data Servicesの追加時や新しいシャードの追加時などに、カタログ・データベースでメタデータを変更します。マスターGSMが停止すると、別のGSMが新しいマスターになります。リージョンに関連付けられたその他のGSMがリージョンGSMです。
2.3.1.4 Global Data Servicesカタログ

Global Data Servicesカタログは、Global Data Services構成と、その構成によって提供されるすべてのグローバル・サービスの構成データを格納するリポジトリです。

1つのカタログは、1つのGDS構成のみに関連付けられます。カタログは、Oracle Databaseに存在する必要がありますが、そのデータベースは関連するGDS構成の内部にあっても外部にあってもかまいません。大規模なGDS構成の場合は、GDSカタログをGDS構成内のデータベースの外部でホストすることをお薦めします。GDSカタログは、RMANまたはOracle Enterprise Managerのカタログとともに共同ホストできます。

Global Data Servicesカタログのデータベースの可用性を改善するため、Oracle RAC、Oracle Data Guard、Oracle Clusterwareなどの高可用性テクノロジを使用することをお薦めします。

2.3.1.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サーバー・ネットワークには接続されません。