9.5 グローバル・データ・サービス

この項では、ユニバーサル接続プールで使用できる新しいグローバル・データ・サービス(GDS)機能について説明します。

9.5.1 Global Data Servicesの概要

グローバル・データ・サービス(GDS)は、Oracle Database 12cリリース1 (12.1)に導入された新しい機能です。この機能により、Oracle RACでのみ使用できた高速接続フェイルオーバー機能、実行時接続ロード・バランシング機能および接続アフィニティ機能は、共通サービスを提供する一連の複製データベースにまで拡張されています。

一連のデータベースには、Data Guard、GoldenGate、他のレプリケーション・テクノロジによって相互接続されたOracle RACデータベースや単一インスタンスのOracleデータベースが含まれます。複数のデータベースによって提供できるデータベース・サービスは、グローバル・サービスと呼ばれるため、単一データベースによってのみ提供できる従来のサービスとは区別できます。この組合せにより、このグローバルに分散された構成内の任意の場所にサービスをデプロイできるため、ロード・バランシング、高可用性、データベース・アフィニティなどがサポートされます。

9.5.2 GDSを使用するためのアプリケーションの構成

UCPは、Oracle RACのローカル・サービスに接続するのと同じ方法でグローバル・データ・サービスに接続します。接続文字列のサービス名は、グローバル・サービスの名前である必要があります。エンドポイントは、データベースのローカル・リスナー、リモート・リスナーまたはSCANリスナーのエンドポイントではなく、GDSリスナーのエンドポイントである必要があります。

クライアントは、接続文字列のREGIONパラメータでリージョンを指定する必要があります。これは、新しいGDSに関する要件です。GDSの場合、実行時ロード・バランシング・アドバイザが特定のリージョン用にカスタマイズされるため、リージョン名は必須です。一般的な接続文字列の例を次に示します。

(DESCRIPTION=
  (ADDRESS=(GDS_protocol_address_information))
  (CONNECT_DATA=
   (SERVICE_NAME=global_service_name)
   (REGION=region_name)))

ローカル・サービスと同様、UCPは、リスナー・フェイルオーバーまたはロード・バランシング(あるいはその両方)用に複数のGDSリスナーを同じ接続文字列に指定できます。

注意:

SCANはGDSリスナーに対してサポートされていないため、各リスナーのエンドポイントを指定する必要があります。

(DESCRIPTION=
  (ADDRESS_LIST=
    (LOAD_BALANCE=ON)
    (FAILOVER=ON)
    (ADDRESS=(GDS_protocol_address_information))
    (ADDRESS=(GDS_protocol_address_information)))
  (CONNECT_DATA=
   (SERVICE_NAME=global_service_name)
   (REGION=region_name)))

ローカル・リージョンのグローバル・サービス・マネージャのみがクライアント接続文字列に指定されている場合、REGIONパラメータはオプションです。これは、GDS構成に1つのリージョンのみが存在する場合か、または複数のリージョンがある場合に該当する可能性があります。ただし、単一データベースで動作するよう設計されている既存のクライアントの接続文字列を変更することはできません。REGIONパラメータが指定されていない場合、クライアントのリージョンは、グローバル・サービスに接続するために使用されるグローバル・サービス・マネージャのリージョンであると想定されます。

注意:

REGIONパラメータが接続文字列に指定されないかぎり、単一のリージョンを持つGDS構成とともに12c以前のシンJDBCクライアントのみ使用できます。

前の例のGDSリスナーはすべて、UCPが実行されている同じリージョン(ローカル・リージョン)に属しています。高可用性を提供するため、ローカル・リージョンのすべてのGDSを使用できない場合、追加のADDRESS_LIST記述子のバディ・リージョンのGDSリスナーを指定できます。

(DESCRIPTION=
  (FAILOVER=on)
  (ADDRESS_LIST=
    (LOAD_BALANCE=ON)
    (ADDRESS=(global_protocol_address_information))
    (ADDRESS=(global_protocol_address_information)))
  (ADDRESS_LIST=
    (LOAD_BALANCE=ON)
    (ADDRESS=(global_protocol_address_information))
    (ADDRESS=(global_protocol_address_information)))
  (CONNECT_DATA=
   (SERVICE_NAME=global_service_name)
   (REGION=region_name)))

UCPリージョン用に最適にカスタマイズされるONS接続情報をUCPがGDSから自動的に取得するため、手動ONS構成は必要ありません。

注意:

  • GDSに対して自動ONS構成を有効にするには、UCPで高速接続フェイルオーバー(FCF)を有効にする必要があります。

  • 自動ONS構成は、Oracle GDSおよびOracle RACでのみ動作します。単一インスタンスのOracle Databaseで動作しません。

    自動ONS構成は、ONSウォレットまたはキーストア・パラメータをサポートしません。アプリケーションがこれらのパラメータのいずれかを必要とする場合、次のいずれかの方法で明示的にONSを構成する必要があります。

    • PoolDataSource.setONSConfiguration(String)メソッドのコール

    • ローカルのONS構成ファイルのONSウォレットまたはキーストア・パラメータの追加