3 インストールおよび構成

概要

Oracle Global Data Services (GDS)フレームワークは、データ・サービスを効率的に設定、管理およびオーケストレーションするために連携するコア、クライアント側およびデータベース側のコンポーネントで構成されます。コアでは、グローバル・サービス・マネージャ(GSM)およびGDSカタログは、インテリジェント・ルーティング、動的ロード・バランシング、サービス・フェイルオーバーを処理し、構成メタデータを格納します。これらのコンポーネントでは、高可用性のために冗長性を使用できます。クライアント側では、Oracle GDSがOracle対応のクライアントおよび接続プールと統合され、高速接続フェイルオーバー(FCF)やインテリジェント接続および作業リクエスト・ルーティングなどの機能がサポートされます。データベース側では、Oracle Notification Service (ONS)はGSMにリアルタイムのイベント通知を提供し、gsmuserスキーマはローカル・サービス・オーケストレーションを有効にします。これらのコンポーネントにより、スケーラブルで回復可能で、最適化されたグローバル・サービス管理フレームワークがまとめて保証されます。

Oracle Databaseをインストールすると、このフレームワークの一部のコンポーネントがインストールされます。他のコンポーネントについては、Global Data Services制御ユーティリティ(GDSCTL)を使用して特定のタスクを実行する必要があります。

3.1 Oracle GDSの容量および要件

アプリケーション・パフォーマンス要件を満たす十分なシステム・リソースがあることを確認するために、容量計画およびサイズ設定はデプロイメント前、およびその後は定期的に実行する必要があります。容量計画では、データベースの増加または統合、追加のアプリケーション・ワークロード、追加のプロセス、または既存のシステム・リソースを損なうあらゆるものに対応する必要があります。次の表に、GDSサイズ設定の容量と要件を示します。

単一のGDSで管理 GDSデータベース
  • 5,000個のGDSプール

  • 10個のGDSリージョン

  • リージョン当たり5つのグローバル・サービス・マネージャ

  • 10,000個のデータベース・インスタンス

  • 10,000個のグローバル・サービス

  • 1,000個の中間層接続プール

  • 単一インスタンスまたはRACにできる

  • CDBまたは非CDBにできる

  • 汎用またはエンジニアド・システム(Oracle Exadata、ODA)で実行可能

  • GDSCTL CLIまたはEnterprise Manager DBプラグインで管理される

3.2 GDSデプロイメントの計画

次のガイドラインを使用して、GDS設定のネットワーク接続を構成します:

  • グローバル・サービス・マネージャ(GSM)リスナーおよびONSポートのアクセシビリティ: すべてのGDSプール・データベースは、すべてのグローバル・サービス・マネージャのリスナー(デフォルト・ポート: 1522)およびONSポート(ローカルONSの場合は6123、リモートONSの場合は6234)と両方向で通信できる必要があります。これらのポートには、アプリケーション/クライアント層、すべてのGDSプール・データベース、GDSカタログ・データベース、デプロイメント内の他のグローバル・サービス・マネージャからもアクセスできる必要があります。
  • プール・データベースのTNSリスナー・ポート構成: すべてのグローバル・サービス・マネージャおよびGDSカタログ・データベースとの通信を有効にするには、各GDSプール・データベースのTNSリスナー・ポート(デフォルト: 1521)を両方向で開いている必要があります。
  • GDSCTL接続: GDSCTLユーティリティが別のマシンから実行されている場合は、このマシンにGDSカタログ・データベースのTNSリスナー・ポート(デフォルト: 1521)への直接双方向ポート・アクセス権があることを確認します。
  • デフォルトのONSポート使用状況: ほとんどのプラットフォームでは、Oracle Notification Service (ONS)のデフォルト・ポートは、ローカルONSの場合は6123、リモートONSの場合は6234です。

Global Data Servicesで必要となるメモリー、物理ストレージ、カーネル・バージョンおよびパッケージの詳細は、Databaseインストレーション・ガイドfor Linuxを参照してください。

3.3 GDSソフトウェアのインストール

グローバル・サービス・マネージャ(GSM)はGlobal Data Servicesフレームワークの中心的なコンポーネントで、個別のメディアを使用してグローバル・サービス・マネージャをインストールする必要があります。グローバル・サービス・マネージャのインストールと実行に、他のOracleソフトウェアは必要ありません。

グローバル・サービス・マネージャは他のOracle製品がインストールされているシステムにインストールできますが、別のOracleホーム・ディレクトリにインストールする必要があります。1つのシステムに複数のグローバル・サービス・マネージャをインストールできますが、各グローバル・サービス・マネージャのOracleホーム・ディレクトリは別である必要があります。パフォーマンス上の理由から、Global Data Services構成のデータベースの数によっては、専用ホストにグローバル・サービス・マネージャをデプロイできます。

Global Data Servicesリージョンごとに最低1つのグローバル・サービス・マネージャをインストールする必要があります。グローバル・サービス・マネージャは、物理環境または仮想環境でホストできます。高可用性の点から、個別のホストで実行されているリージョンごとに複数(通常は3個)のグローバル・サービス・マネージャをインストールすることをお薦めします。

Oracle Universal Installerでは、複数ホストでのソフトウェアのインストールは現在サポートされていません。各グローバル・サービス・マネージャをそれぞれのホストにインストールする必要があります。

Global Data Services管理者がグローバル・サービス・マネージャをインストールします。Global Data Services管理者の職務は次のとおりです。

  • グローバル・サービス・マネージャの管理

  • Global Data Servicesカタログの管理

  • リージョンおよびデータベース・プールの管理

Global Data Services管理者は、グローバル・サービス・マネージャをデプロイするすべてのホストにオペレーティング・システム・ユーザー・アカウントを持っている必要があります。インストールはそのユーザー・アカウントで実行する必要があります。インストールは、rootユーザーでは実行しないでください。

3.3.1 グローバル・サービス・マネージャのインストール

グローバル・サービス・マネージャのインストールに関する必知事項

グローバル・サービス・マネージャはGlobal Data Servicesフレームワークの中心的なコンポーネントで、個別のメディアを使用してグローバル・サービス・マネージャをインストールする必要があります。グローバル・サービス・マネージャのインストールと実行に、他のOracleソフトウェアは必要ありません。

グローバル・サービス・マネージャは他のOracle製品がインストールされているシステムにインストールできますが、別のOracleホーム・ディレクトリにインストールする必要があります。1つのシステムに複数のグローバル・サービス・マネージャをインストールできますが、各グローバル・サービス・マネージャのOracleホーム・ディレクトリは別である必要があります。パフォーマンス上の理由から、Global Data Services構成のデータベースの数によっては、専用ホストにグローバル・サービス・マネージャをデプロイできます。

Global Data Servicesリージョンごとに最低1つのグローバル・サービス・マネージャをインストールする必要があります。グローバル・サービス・マネージャは、物理環境または仮想環境でホストできます。高可用性の点から、個別のホストで実行されているリージョンごとに複数(通常は3個)のグローバル・サービス・マネージャをインストールすることをお薦めします。

Global Data Services管理者がグローバル・サービス・マネージャをインストールします。Global Data Services管理者の職務は次のとおりです。

  • グローバル・サービス・マネージャの管理

  • Global Data Servicesカタログの管理

  • リージョンおよびデータベース・プールの管理

ノート:

Global Data Services管理者は、グローバル・サービス・マネージャをデプロイするすべてのホストにオペレーティング・システム・ユーザー・アカウントを持っている必要があります。インストールはそのユーザー・アカウントで実行する必要があります。インストールは、rootユーザーでは実行しないでください。

グローバル・サービス・マネージャのインストール:

  1. edelivery.oracle.comからグローバル・サービス・マネージャ・ソフトウェアをダウンロードし解凍します。

    図3-1 Oracle Software Delivery Cloud

    edelivery.com
  2. ソフトウェア・メディアのルート・ディレクトリからOracle Universal Installerを起動し、プロンプトに従います。

    インストールが完了すると、グローバル・サービス・マネージャのホーム・ディレクトリにグローバル・サービス・マネージャとグローバル・サービス・マネージャ制御ユーティリティ(GDSCTL)の実行に必要なバイナリが含まれています。

  3. ORACLE_HOME環境変数をインストール時に指定したディレクトリに設定します。
  4. グローバル・サービス・マネージャ用に作成された$ORACLE_HOME/binディレクトリをPATH環境変数に追加します。
  5. TNS_ADMIN環境変数を$ORACLE_HOME/network/adminに設定します。

ノート:

Global Data Servicesソフトウェアをインストールした後には、そのインストールを最新のOracle Databaseリリースに更新することをお薦めします。

3.4 GDSカタログ・データベースおよびGDSカタログの設定

GDSカタログの作成に関する必知事項

すべてのGlobal Data Services構成には、Global Data Servicesカタログが含まれる必要があります。Global Data Servicesカタログは、GDS構成データベースと同じホストに配置できますが、このシナリオは大規模構成では推奨されません。Oracle Real Application Clusters (Oracle RAC)やOracle Data Guardなどの高可用性機能を使用して、Global Data Servicesカタログが停止しないようにすることをお薦めします。

Global Data Servicesカタログの要件

  • Global Data Servicesカタログは、サーバー・パラメータ・ファイル(SPFILE)を使用するOracle Databaseに配置される必要があります。

    Oracle RACデータベースにGlobal Data Servicesカタログを作成する場合、そのデータベースに単一クライアント・アクセス名(SCAN)を設定することをお薦めします。

  • Global Data Servicesカタログは、高可用性および障害時リカバリに対応するように保護される必要があります。

ノート:

Global Data Services管理者はカタログ・データベースにユーザー・アカウントを持っていますが、カタログ・データベースに直接接続しないようお薦めします。Global Data Services管理者は、GDSCTLユーティリティを使用して、Global Data Servicesを管理できます。GDSCTLコマンドを実行するときに、Global Data Services管理者が指定する資格証明を使用して、GDSCTLはGlobal Data Servicesカタログに接続します。

たとえば:

GDSCTL> create gdscatalog -database serv1:1521:catdb.example.com 
    -user gsm_admin

前述の例で、serv1:1521:catdb.example.comは、データベースに接続するために使用されるリスナーのホスト名とポート番号を含む簡易接続文字列で、catdb.example.comは、Global Data Servicesカタログ・データベースのサービス名です。

1つのデータベースを、Global Data Servicesカタログのプライマリ・リポジトリとして指定します。Oracle RAC、Oracle Data Guard、Oracle Clusterwareなどの既存の高可用性テクノロジを使用して、Global Data Servicesカタログを保護できます。

Oracle GoldenGateを使用する場合、Global Data Servicesカタログがセカンダリ・データベースにレプリケートされていることを確認します。

関連項目:

使用方法の詳細は、「create gdscatalog」を参照してください

3.5 グローバル・データ・サービス構成

Oracle Global Data Services (GDS)は、Global Data Services構成と呼ばれる一連のレプリケート・データベース全体にOracle Databaseサービス・モデルを実装します。

3.5.1 Oracle GDSのデプロイメント・ステップ

次に、グローバル・データ・サービスを実装するための基本的な手順を示します。

  1. Oracle GDSグローバル・サービス・マネージャ・ソフトウェアをグローバル・サービス・マネージャ・サーバーにインストールします。
    • リージョンごとに少なくとも1つのグローバル・サービス・マネージャ
    • リージョンごとに3つのグローバル・サービス・マネージャを推奨
  2. Oracle GDSカタログ・データベースを事前作成します。
  3. Oracle GDS管理者アカウントおよび権限を設定します。
  4. Oracle GDSを構成します。
    • GDSカタログおよびスタンバイ・データベースを作成します。
    • グローバル・サービス・マネージャ、リージョン、プール、データベースおよびグローバル・サービスを追加します。
  5. クライアント接続を設定します。

3.5.2 GDS構成の例

次の手順では、グローバル・データ・サービスを実装する方法を説明します。

グローバル・データ・サービス(GDS)のこの構成例では、管理者管理Oracle RACデータベースを使用します。管理者管理デプロイメントとは、優先および使用可能の指定を使用して、特定のデータベースに属する特定のインスタンスで実行されるようにデータベース・サービスを構成することを意味します。

ポリシー管理デプロイメントはサーバー・プールに基づいています。この場合、データベース・サービスは、サーバー・プール内でシングルトンまたは均一として、サーバー・プール内のすべてのサーバーにわたり実行されます。データベースは1つ以上のサーバー・プールにデプロイされます。サーバー・プールのサイズによって、デプロイメント内のデータベース・インスタンスの数が決まります。

  1. GDSカタログ・データベースを作成し準備します。

    GDSでは、カタログ・データベースを使用して、GDS構成のレイアウトおよびステータスに関連するメタデータが格納されます。可用性を最大限に高めるために、GDSカタログ・データベースを個別にデプロイし、Oracleの高可用性機能(Oracle Real Application Clusters (Oracle RAC)やOracle Data Guardなど)を使用して、カタログ・データベースを停止から保護することをお薦めします。

  2. GSM_ADMINユーザーを作成し、そのユーザーにGSMADMIN_ROLEを割り当てます。

    デフォルトではGSM_ADMINGSMUSERおよびGSMCATUSERのすべてのパスワードは180日後に期限切れになることに注意してください。

    SQL> create user gsm_admin identified by password;
    
    User created.
    
    SQL> grant gsmadmin_role to gsm_admin;
    
    Grant succeeded.
    
    SQL> exit
  3. グローバル・サービス・マネージャ・ホーム用に構成された環境で、GDSCTLを使用して、自動VNCRを無効にしてGDSカタログ・データベースを作成します(自動VNCRによってOracle RACデプロイメントで問題が発生する可能性がある)。
    GDSCTL> create gdscatalog -database gdscat -user gsm_admin -autovncr OFF
  4. カタログ・データベースに接続し、GSMCATUSERユーザーのロックを解除し、パスワードを設定します。
    SQL> alter user gsmcatuser account unlock;
    
    User altered.
    
    SQL> alter user gsmcatuser identified by password;
    
    User altered.
  5. グローバル・サービス・マネージャ・ホーム用に構成された環境で、GDSCTLを使用して接続し、グローバル・サービス・マネージャ・リスナーを作成し起動します。
    ベスト・プラクティスとして、グローバル・サービス・マネージャ・リスナーは、GDS構成において、Oracle Databasesをホストしているのとは別のハードウェアに存在する必要があります。グローバル・サービス・マネージャ・リスナーの実行に必要なハードウェアのリソース要件は軽量であり、仮想マシンを使用して簡単に対応できます。
    GDSCTL> add gsm -gsm gsm1 -listener 1522 -catalog gdscat
    
    "gsmcatuser" password:
    
    Create credential oracle.security.client.connect_string1
    
    GSM successfully added
    
    GDSCTL>start gsm -gsm gsm1
    
    GSM is started successfully
    
    GDSCTL>status
    
    Alias GSM1
    Version 19.17.0.3.0
    Start Date 13-APR-2023 09:40:59
    Trace Level off
    Listener Log File
     /u01/app/oracle/diag/gsm/hostname/gsm1/alert/log.xml
    Listener Trace File
     /u01/app/oracle/diag/gsm/hostname/gsm1/trace/ora_64863_139739749930432.trc
    Endpoint summary
    (ADDRESS=(HOST=hostname.example.com)(PORT=1522)(PROTOCOL=tcp))
    GSMOCI Version 0.6.11
    Mastership Y
    Connected to GDS catalog Y
    Process Id 64883
    Number of reconnections 0
    Pending tasks. Total 0
    Tasks in process. Total 0
    Regional Mastership TRUE
    Total messages published 0
    Time Zone -04:00
    Orphaned Buddy Regions: None
    GDS region regionora
  6. グローバル・サービス・マネージャ・ホーム用に構成された環境で、GDSCTLを使用してデフォルトのGDSプールおよびデフォルト・リージョンを作成します。
    GDSCTL> add gdspool -gdspool sales
    
    GDSCTL> add region -region slc
    
    GDSCTL> add region -region sca
  7. 問題を回避するためにGDSカタログの作成中に自動VNCRを無効にした状態で、GDSCTLにより、ホスト名またはIPアドレスを適切に指定してadd invitednodeコマンドを実行しホストを追加します。
    GDSCTL> add invitednode 192.0.2.1
    
    GDSCTL> add invitednode host1.example.com
  8. GSMUSERアカウントのロックを解除します。
    データベースをプールに追加する前に、次の例で示すように、データベース管理者がGSMUSERアカウントのロックを解除し、GDSプール管理者にパスワードを与える必要があります。
    SQL> alter user gsmuser account unlock;
    
    User altered.
    
    SQL> alter user gsmuser identified by password;
    
    User altered.
  9. GDSプールにデータベースを追加します。

    GDSプールに含めるには、データベースでサーバー・パラメータ・ファイル(SPFILE)が使用されている必要があります。Oracle RACデータベースにはSCAN設定も必要です。

    データベースを追加するには、GDSプールまたはGDS管理者資格証明を使用してGDSカタログに接続します。たとえば、Data Guardがない場合は、次のadd databaseコマンドを使用できます。

    ノート:

    Oracle Active Data GuardをGDSとともに使用する場合は、add database のかわりにadd brokerconfigを使用してから、modify databaseを使用してスタンバイ・データベースを構成します(add brokerconfigを参照)。これらのコマンドの構文は、次のようになります:
    GDSCTL> add brokerconfig -connect <primary_db> -gdspool <dbpool> -region <dc> -pwd <gsmuser_pwd>
    
    GDSCTL> modify database -database <standby_db> -connect <dc> -gdspool <dbpool> -region <dc> -pwd <gsmuser_pwd>

    データベース・インスタンスのグローバル・サービス・マネージャでの登録は、リクエストが有効なノードからの場合にのみ成功します。データベースが存在するホストに複数のネットワーク・インタフェースが含まれている場合は、自動構成によって正しくない一連のIPアドレスが登録されて、データベース登録が拒否される可能性があります。

  10. 拒否された登録を修正し、すべてのデータベース・インスタンスを適切に検出します。

    グローバル・サービス・マネージャ間にファイアウォールが存在し、データベースとポートがオープンされていない場合、登録は失敗します。グローバル・サービス・マネージャのアラート・ログで、次のようなエントリが表示されます。

    Listener(VNCR option 1) rejected Registration request from destination
    
    192.0.2.2
    
    Listener(VNCR option 1) rejected Registration request from destination
    
    192.0.2.3

    データベース・オブジェクトがGDSカタログに存在するが特定のホストに関連付けられているインスタンスの一部またはすべてが欠落していることがわかります。

    GDSCTL> databases
    
    Database: "mts" Registered: Y State: Ok ONS: Y. Role: PRIMARY
    
    Instances: 1 Region: slc
    
    Registered instances:
    
    sales%1

    拒否された登録を修正し、すべてのデータベース・インスタンスを正しく検出するには、グローバル・サービス・マネージャのアラート・ログにリストされている拒否されたIPアドレスを使用してadd invitednodeを実行します。

  11. グローバル・サービス・マネージャとデータベースの間にファイアウォールがある場合は、それらのポートを開きtnspingを使用して検証した後、次に示すようにadd invitenodeコマンドを発行します。
    GDSCTL> add invitednode 192.0.2.3
    
    GDSCTL>databases
    
    Database: "mts" Registered: Y State: Ok ONS: Y. Role: PRIMARY
    
    Instances: 2 Region: slc
    
    Registered instances:
    
    sales%1
    
    sales%2
  12. GDSプールのデータベースにサービスを作成します。

    GDSCTLのadd serviceコマンドでは、GDSプールのデータベースにサービスが作成されます。

    GDSCTL> add service -service sales_sb -preferred_all -gdspool sales -notification TRUE

    これが、複数のインスタンスとともに追加されるOracle RACデータベースである場合は、サービスを変更してそれらのデータベース・インスタンスを追加する必要があります。

    GDSCTL> modify service -gdspool sales -service sales_sb -database mts -add_instances -preferred mts1,mts2
    
    GDSCTL> modify service -gdspool sales -service sales_sb -database stm -add_instances -preferred stm1,stm2
    
    GDSCTL> start service -service sales_sb -gdspool sales
  13. グローバル・サービスが実行されていることを確認します。
    GDSCTL> services
    
    Service "sales_sb.sales.oradbcloud" has 2 instance(s). Affinity: ANYWHERE
    
    Instance "sales%1", name: "mts1", db: "mts", region: "slc", status: ready.
    
    Instance "sales%2", name: "mts2", db: "mts", region: "slc", status: ready.

3.5.3 GDS構成のベスト・プラクティス

Oracle MAAでは、グローバル・データ・サービスを実装するための次のベスト・プラクティスをお薦めしています。

  • 各クライアントは、UCP、OCI、ODP.NETなどのOracle統合接続プールを使用して通信します。接続プールは、高速アプリケーション通知イベントを使用してサービス・フェイルオーバーおよびロード・バランシング・アドバイザ通知について知らされます。

  • 各リージョンで3つのグローバル・サービス・マネージャを実行します。各リージョンに3つのグローバル・サービス・マネージャを作成して、1つのグローバル・サービス・マネージャが停止した場合に、冗長性を確保するために2つのグローバル・サービス・マネージャが残るようにします。各グローバル・サービス・マネージャは別々のハードウェアに配置する必要があります。グローバル・サービス・マネージャにより、レプリケートされたデータベース間の接続ルーティングが可能になります。グローバル・サービス・マネージャは、GDSカタログからメタデータを再移入できる、ステートレスで軽量かつインテリジェントなリスナーです。

  • Oracle Data GuardでGDSカタログ・データベースを保護します。GDSカタログは、GDS構成、リージョン、グローバル・サービス・マネージャ、グローバル・サービス、データベースなどのメタデータをホストする小規模(100 GB未満)なリポジトリです。MAAでは、最大可用性データベース保護モード、Data Guardファスト・スタート・フェイルオーバーおよびリモート・フィジカル・スタンバイ・データベースで構成されたローカルData Guardスタンバイ・データベースを設定することをお薦めしています。GDSカタログのすべてのスタンバイ・データベースは、最適なデータ保護のためにOracle Active Data Guardが使用され、別々ハードウェアおよびストレージに配置される必要があります。