8 Oracle GoldenGateシャーディングの使用

Oracle GoldenGateでは、シャーディングされたOracle Databaseに密接に対応するプラットフォームが提供され、様々なシャーディング・データベース・トポロジにまたがるデータ・レプリケーションを実現できます。

事前構成済のOracle GoldenGateレプリケーションがGDSCTL DEPLOYコマンドにおいて提供される他に、シャーディング・データベースのすべての機能が含まれます。

シャーディング・データベースに対するOracle GoldenGate

シャーディングに対応するのは、Oracle Database 12.2.0.1以上でセキュアなMAデプロイメントを使用する場合のみです。

SSL証明書を設定したことを確認してからシャーディングを設定する必要があります。シャーディングされたOracle DatabaseをOracle GoldenGateで構成するには、「Oracle GoldenGateでシャーディングを構成する方法」を参照してください。

Oracle GoldenGateシャーディングのメリット

Oracle GoldenGateでは、シャーディング・データベースに対応する完全なデータ・レプリケーション・プラットフォームが提供されます。

これは次のメリットを備えた強力な機能です。

  • データとワークロードを、ハードウェアまたはソフトウェアを共有しない多数の個別Oracleデータベースに水平にパーティション化します

  • 単一シャード問合せおよびシャード間問合せに対して、自動パーティション化およびレプリケーション、エラスティック・スケーリング、リバランス、データ依存ルーティングを有効にします

  • 次のような新世代の開発者にエンタープライズ規模のデータベース・プラットフォームを提供します。

    • フォルト・トレランスに応じてアプリケーションが直線的に拡張するように明示的に設計

    • JSONを使用してスキーマに柔軟性を付加

    • リレーショナルSQLおよびACIDの性能にメリットがあると認識

  • シャードグループ内およびシャードグループ間でのアクティブなレプリケーション

  • 高可用性に対応する1つのシャードグループと、多様なレプリケーション・ファクタが設定された複数のシャードグループが含まれる、柔軟性の高いデプロイメント

  • 様々なシャードグループで、レプリケーション・ファクタ、シャード数、ハードウェア・プラットフォーム、OSバージョン、データベース・バージョンおよびパッチ・セットが異なっていることが可能です。

Oracle GoldenGateでシャーディングを構成する方法

シャーディングを有効にする場合は、セキュアなデプロイメントを設定する必要があります。

前提条件

シャーディング設定を開始する前に、次の前提条件を満たす必要があります。

  • カタログおよび各シャード・データベースのためのOracle Databaseのインストールを完了します。

  • Oracle GoldenGateクライアント証明書を格納するためのggshd_walletディレクトリを、$ORACLE_BASE/admin ($ORACLE_BASEが定義されている場合)または$ORACLE_HOME/admin ($ORACLE_HOMEが定義されている場合)内に作成します。

  • シャード・カタログまたはシャードが設定されているホストごとに、1つのマイクロサービス・デプロイメントを追加します。

  • Oracle GoldenGate MA サーバーおよびクライアントのウォレットと証明書を生成します。

  • SSL証明書で識別されるシャーディング・クライアントを認可します。

    (推奨)高可用性を実現しシャードのパッチ適用を簡略化するために、各シャードには1つのOracle GoldenGateデプロイメントのみを割り当てます。

セキュリティ証明書を生成する方法の詳細は、「セキュアなデプロイメントおよびセキュアでないデプロイメントの設定」を参照してください。

Oracle GoldenGateでのシャーディング構成

ベスト・プラクティスとして1つのデプロイメントを各シャード専用とすることをお薦めします。こうすることで高可用性が保証されます。Oracle GoldenGateのシャーディングを利用するメリットの詳細は、「シャーディング・データベースに対するOracle GoldenGate」を参照してください。

次の手順は、shardcatalogからのシャードの追加またはシャードの作成の際にシャーディングを構成するために必要です。
  1. Oracle GoldenGate Configuration Assistant (OGGCA)を使用してセキュア・モードでデプロイメントを追加します。「セキュアなデプロイメントとセキュアでないデプロイメントを作成する方法」を参照してください。

  2. クライアント証明書をggshd_walletにインポートします。シャード上でOracle GoldenGate MAサーバーが起動されて実行していることを確認します。

  3. シャーディング・データベースの設定を準備するためにOracle Sharding Coordinator (カタログ・データベース)に接続します。

  4. $OGG_HOME/lib/sql/shardingディレクトリにあるOracle GoldenGateシャーディング・ブートストラップ・スクリプトをロードします。これは1回かぎりのタスクです。

  5. Oracle Sharding Coordinatorで次のコマンドを実行します。

    shardcatalog load (as SYS):

    $OGGHOME/lib/sql/sharding/ggsys_setup.sql
  6. シャードを追加する前に次のコマンドをロードします(as SYS)。

    $OGGHOME/lib/sql/sharding/orashard_setup.sql 
    A <serviceManagerURI>/<OGGDeployName> 
    <ggadmin_password> <shardconnect_string>

    注意:

    このコマンドはシャードを作成するときには必要ありません。

Oracle GoldenGateでシャードを構成するには次の2つの方法があります。

  • シャードの追加: 既存の1インスタンス・データベースをシャードに変換します。ただし、このインスタンスは、ユーザー・データが含まれない空のデータベースであることが必要です。
  • シャードの作成: 実行時に新しいデータベースを設定します。次のコマンドがGDSCTLシェル・インタフェースから発行されます。『Oracle Database Oracle Shardingの使用』ガイドのシャーディング・データベースのデプロイメントに関する項を参照してください。


create shardcatalog -database bpodb12s:1521/sdbcat1 -user gsmcatuser/gsmcatuser -repl OGG -sharding SYSTEM -chunks 36

add gsm -gsm gsm1 -listener 1540 -catalog bpodb12s:1521/sdbcat1 -pwd gsmcatuser

add shardgroup -shardgroup shgrp1 -repfactor 3
add shardgroup -shardgroup shgrp2 -repfactor 2
…
create shard -shardgroup shgrp1 -destination host01 -CREDENTIAL gds_oracle -netparam none 
-gg_service host01:9000/deploy1
-gg_password ggadmin pw
create shard -shardgroup shgrp1 -destination host02 -CREDENTIAL gds_oracle -netparam none 
-gg_service host02:9000/deploy2 -gg_password ggadmin status
configure
add service ...
start service ..