Oracle Globally Distributed Databaseアーキテクチャのコンポーネント
次の図は、次のトピックで説明するOracle Globally Distributed Databaseの主要なアーキテクチャ・コンポーネントを示しています。
図2-1 Oracle Globally Distributed Databaseのアーキテクチャ

「図2-1 Oracle Globally Distributed Databaseアーキテクチャ」の説明
シャード・データベースとシャード
シャード・データベースはシャードの集まりです。
シャード・データベースとは、ハードウェアまたはソフトウェアを共有しない物理Oracleデータベース(シャード)のプールで水平にパーティション化された単一の論理Oracle Databaseです。
シャード・データベース内の各シャードは、シャード・データベースのデータのサブセットをホストする独立したOracle Databaseインスタンスです。シャード間で共有記憶域は必要ありません。
シャードは、Oracleデータベースをホストできる場所であればどこでもホストできます。Oracle Globally Distributed Databaseは、オンプレミス、任意のクラウド・プラットフォーム、Oracle Exadata Database Machine、仮想マシンなど、単一インスタンスまたはクラスタ化されたOracle Databaseで予想されるシャードのすべてのデプロイ選択をサポートしています。
各シャードは、1つのリージョンに配置するか、別々のリージョンに配置できます。Oracle Globally Distributed Databaseのコンテキストでのリージョンは、1つのデータ・センターまたはネットワーク上で近接している複数のデータ・センターを表します。
シャードは、Oracle Globally Distributed Databaseのネイティブ・レプリケーション(Raftベース)またはOracle Data Guardを使用して、高可用性および障害時リカバリのためにレプリケートできます。
シャード・カタログ
シャード・カタログは、自動的なシャードのデプロイ、Oracle Globally Distributed Databaseのシャード・データベースの集中管理、およびマルチシャード問合せをサポートするOracle Databaseです。
シャード・カタログは次の目的を果たします。
-
シャード・データベース全体の管理サーバーとして機能します。
-
データベース・スキーマのゴールド・コピーを格納します
-
マルチシャード問合せコーディネータを使用したマルチシャード問合せの管理
-
重複表データのゴールド・コピーを格納します
シャード・カタログは特殊な目的のOracle Databaseであり、シャード・データベース構成データの永続的なストアとなり、シャード・データベースの集中管理で主要な役割を果たします。すべての構成の変更(シャードやグローバル・サービスの追加、削除など)は、シャード・カタログで開始されます。シャード・データベースのすべてのDDLは、シャード・カタログに接続することによって処理されます。
シャード・カタログには、シャード・データベースのすべての重複表のプライマリ・コピーも含まれています。シャード・カタログは、マテリアライズド・ビューを使用して、すべてのシャードの重複表に変更を自動的にレプリケートします。シャード・カタログは、マルチシャード問合せ、およびシャーディング・キーを指定しない問合せを処理するための問合せコーディネータとしても機能します。
複数のシャード・カタログを高可用性のためにデプロイできます。シャード・カタログの高可用性のためにOracle Data Guardを使用することをベスト・プラクティスとしてお薦めします。
実行時に、アプリケーションがキーベースの問合せを使用しないかぎり、シャードに問合せを送信するにはシャード・カタログが必要です。シャーディング・キーベースのトランザクションは引き続きシャード・データベースにルーティングされて処理され、カタログの停止の影響を受けません。
スタンバイ・シャード・カタログへの自動フェイルオーバーを完了するために必要な短期の停止時間は、メンテナンス操作の実行、スキーマの変更、重複表の更新、マルチシャード問合せの実行、トポロジの変更を引き起こすシャードの追加やチャンクの移動などのその他の操作の実行に影響します。
シャード・ディレクタ
シャード・ディレクタは、シャーディング・キーに基づいて高パフォーマンスな接続ルーティングを可能にするネットワーク・リスナーです。
Oracle Database 12cでは、グローバル・サービス・マネージャが導入され、データベース・ロール、負荷、レプリケーション・ラグおよびローカル性に基づいて接続がルーティングされます。Oracle Globally Distributed Databaseをサポートするために、グローバル・サービス・マネージャはデータの場所に基づいた接続のルーティングをサポートします。グローバル・サービス・マネージャは、Oracle Globally Distributed Databaseのコンテキストではシャード・ディレクタと呼ばれます。
シャード・ディレクタは、グローバル・サービス・マネージャの特殊な実装であり、シャード・データベースに接続するクライアントのリージョナル・リスナーとして機能します。シャード・ディレクタはシャード・データベースの現在のトポロジ・マップを維持します。接続リクエスト中に渡されたシャーディング・キーに基づいて、シャード・ディレクタは適切なシャードに接続をルーティングします。
一般的なシャード・データベースの場合、一連のシャード・ディレクタが各リージョンの市販のローエンドの専用サーバーにインストールされます。高可用性とスケーラビリティを実現するには、複数のシャード・ディレクタをデプロイします。特定の領域に最大5つのシャード・ディレクタをデプロイできます。
シャード・ディレクタの主な機能を次に示します。
-
シャード・データベース構成に関する実行時データおよびシャードの可用性の保守
-
配下のリージョンと他のリージョンの間のネットワーク待機時間の測定
-
クライアントがシャード・データベースへの接続に使用するためのリージョナル・リスナーとして機能します
-
グローバル・サービスの管理
-
接続ロード・バランシングの実行
グローバル・サービス
グローバル・サービスは、Oracle Globally Distributed Databaseシャード・データベースのデータへのアクセスに使用されるデータベース・サービスです。
グローバル・サービスは、従来のデータベース・サービスの概念を拡張したものです。グローバル・サービスでは、従来のデータベース・サービスのすべてのプロパティがサポートされます。シャード・データベースでは、グローバル・サービス用の追加のプロパティが設定されます。たとえば、データベース・ロール、レプリケーション・ラグの許容値、クライアントとシャード間のリージョン・アフィニティなどがあります。読取り/書込みトランザクション・ワークロードの場合は、シャード・データベースのプライマリ・シャードのデータにアクセスするために、単一のグローバル・サービスが作成されます。Oracle Active Data Guardを使用した高可用性シャードの場合は、個別の読取り専用グローバル・サービスが作成されます。
Oracle Globally Distributed Databaseの管理インタフェース
GDSCTLコマンドライン・ユーティリティは、Oracle Globally Distributed Databaseのシャード・データベースを構成、デプロイ、監視および管理するために使用します。Oracle Enterprise Manager Cloud Controlは、監視および管理にも使用できます。
SQL*Plusと同様に、GDSCTL
は、シャード・データベースのライフ・サイクルのすべてのステージを制御できるコマンドライン・ユーティリティです。GDSCTL
を別のサーバーまたはラップトップからリモートで実行してシャード・データベース・トポロジを構成およびデプロイし、シャード・データベースをモチエータおよび管理できます。
GDSCTL
は、シャード・データベースの構成を指定し、そのデプロイメントを自動化する簡単な宣言的方法を提供します。わずかなGDSCTLコマンドを使用するだけで、シャード・データベースを作成できます。
グラフィカル・ユーザー・インタフェースが必要な場合は、シャード・データベースの監視およびライフ・サイクル管理にCloud Controlを使用することもできます。Cloud Controlを使用すると、可用性およびパフォーマンスを監視でき、シャード、サービス、シャード・ディレクタおよびその他のシャーディング・コンポーネントの追加およびデプロイなどのシャーディング構成を変更できます。