7 Oracle GoldenGate Classic for PostgreSQL

PostgreSQLプラットフォームのためのOracle GoldenGate Classic Architectureのデプロイ

Marketplace上でOracle GoldenGate Classic Architectureを使用して、単一の場所からデプロイメントをデプロイおよび管理できます。

デプロイメント前に必要な前提条件は次のとおりです。

Oracle Cloud Marketplace内でのOracle GoldenGate for Non-Oracle (PostgreSQL)の検索

Oracle Cloud MarketplaceからOracle GoldenGate for Non-Oracle (PostgreSQL)をデプロイする場合は、次のステップを参考にしてください。
  1. Oracle Cloud Marketplaceにログインします。
  2. Oracle Cloud Marketplaceホーム・ページから、「アプリケーション」の下の検索ボックスを使用し、GoldenGateというキーワードで検索します。
  3. 検索結果から、「Oracle GoldenGate for Non-Oracle」を選択します。

Oracle GoldenGate Classic for Non-Oracle (PostgreSQL)の起動

Oracle Cloud MarketplaceでOracle GoldenGate Classic for Non-Oracle (PostgreSQL)を起動する場合は、次のステップを参考にしてください。
  1. アプリケーション・ページで「Get App」を選択します。
  2. 「OCI Region」を選択するか、OCIアカウントのログイン資格証明を使用してログインします。
    1. OCI Region - 計算ノードをインストールするOCIリージョンを選択します。
    2. 「Sign In」をクリックします。
  3. 「Sign In to the Cloud Tenant」ページで、OCI テナントの詳細情報を入力します。
    アイデンティティ・プロバイダへのサインインを求められる場合があります。
  4. 「Oracle GoldenGate for Non-Oracle (PostgreSQL)」ページで、選択ボックスを見つけて次の情報を入力します。
    1. Select Version – リストで使用可能なバージョンのリストが提供されます。デフォルトで「Oracle GoldenGate for Non-Oracle (PostgreSQL)」に設定されています。
    2. Select Compartment - 計算ノードを構築するコンパートメントを指定します。通常、計算ノードを構築するためのアクセス権を持つ場所です。
    3. Terms of Use – このチェック・ボックスはデフォルトで選択されています。Oracleでは、インスタンスの作成に進む前にライセンスを確認することをお薦めしています。
    4. Launch Stack– OCI環境でスタックを起動します。
  5. 必要なスタック情報を入力します。
    • Name - スタックの名前。これにはデフォルト名があり、日時スタンプが指定されます。必要に応じて、この詳細を編集できます。
    • Description - スタックの作成中に指定する説明。
    • Create In Compartment - デフォルトで、Oracle GoldenGate 19c for Oracleページで選択したコンパートメントに設定されます。
    • Tags (オプション) – タグは追跡メカニズムを割り当てる便利な手段ですが、必須ではありません。簡単に追跡できるよう、任意のタグを割り当てることができます。環境によっては、原価分析目的でタグを割り当てる必要があります。
    • 「Next」をクリックします。
  6. Configure Variables」に必要な詳細を入力します。この情報は、Non-Oracle (PostgreSQL)の計算ノードを構築する際に必要になります。
    1. Name for New Resources -
      • Display name - すべての新規OCIリソースの識別に使用される表示名。
      • Host DNS Name - 新しい計算ノードのドメイン名サービス。
    2. Network Settings -
      • Create New Network - 新規ネットワーク・リソースを作成する場合は、このチェック・ボックスを選択します。

        このチェック・ボックスを選択した場合は、「Create New Network」ウィザードが表示され、次のような新しいネットワーク情報を追加および編集できます。

        • ネットワーク・コンパートメント
        • 新規VCN DNS名
        • 新規VCN CIDR
        • 新規サブネットDNS名
        • 新規サブネットCIDR

        このチェック・ボックスを選択しない場合は、「Create New Network」ウィザードは表示されず、VCN内の既存のネットワーク・オプションを使用して計算ノードが作成されます。

      • Network Compartment (オプション)- 新規または既存のネットワーク・リソースの区分。
      • VCN (オプション)- 新規ネットワークを作成していない場合に、新規作成されたインスタンスに使用する既存のVCN。
      • Subnet (オプション)- 新規ネットワークを作成していない場合に、新規作成されたインスタンスに使用する既存のサブネット。選択したサブネットは、「Instance Settings」で設定したものと同じ可用性ドメインに一致する必要があります。
    3. Instance Settings -
      • Availability Domain - 新規に作成されたOracle GoldenGateインスタンスの可用性ドメインを指定します。「Use Existing Network」設定で選択したサブネットと一致する必要があります。
      • Compute Shape - 新規計算インスタンスのシェイプ。サポートされているシェイプは、VM.Standard2.4、VM.Standard2.8、VM.Standard2.16およびVM.Standard2.24です。
      • Assign Public IP - 新しいVMにパブリックIPアドレスが必要かどうかを示します。
      • Custom Volume Sizes - 新しいブロック記憶域ボリュームのサイズをカスタマイズするには、このチェック・ボックスを選択します。
    4. SSH Public Key -「opc」ユーザーとしてのSSHアクセスを許可するための公開キー。
  7. 「Next」をクリックします。
  8. 「Review」ページで、入力した情報を確認してから、「Create」をクリックします。
  9. 「Create」をクリックした後、「Stacks」ページに移動します。このページを使用して、計算ノードの作成を監視できます。
  10. 完了すると、「Compute」「Instances」の下でOracle GoldenGate for Non-Oracle (PostgreSQL)計算ノードを確認できます。

Oracle GoldenGate Classic for Non-Oracle (PostgreSQL)計算ノードへの接続

新しいOracle GoldenGateデプロイメントにアクセスするには、計算ノードにログインし、Oracle GoldenGate Software Command Interface (GGSCI)にアクセスします。そのためには、Oracle GoldenGate Classicが実行されている計算ノードのパブリックIPアドレスを識別する必要があります。そのパブリックIPアドレスを識別するためのステップを次に示します。
  1. Oracle Cloudコンソールにログインします。
  2. 「Compute」 -> 「Instances」を選択します。
  3. 計算ノードのハイパーリンク名を選択します。パブリックIPアドレスは、「Primary VNIC Information」の下にリストされます。
  4. Oracle GoldenGateが実行されている計算ノードにアクセスするには、SSHを使用してopcアカウントとして接続します。opcアカウントを使用してノードにアクセスする方法の詳細は、インスタンスへの接続を参照してください。
公開SSHキーはデプロイメント・プロセスの一環として指定されます。Oracle GoldenGateインスタンスに接続しているときには秘密キーを使用できます。次の例は、Oracle GoldenGate計算ノードへの接続方法を示しています。
ssh -i <private-key-filename> opc@<public-id-address>

Oracle GoldenGate Classic for Non-Oracle (PostgreSQL)の操作

Oracle Cloud MarketplaceにOracle GoldenGate Classic for Non-Oracle (PostgreSQL)をデプロイすると、Oracle GoldenGate Classic for Non-Oracle (PostgreSQL)の最新リリースにアクセスできます。

Oracle GoldenGate Classic for Non-Oracle (PostgreSQL)の使用開始前に、いくつかのタスクを実行して、対象の環境がデータをレプリケートするための準備を完全に整えていることを確認する必要があります。データ・レプリケーションを開始する前に、次のタスクを実行する必要があります。

トピック:

接続の確立

Oracle Cloud MarketplaceのOracle GoldenGate Classic for Non-Oracle (PostgreSQL)計算ノードは、ソースおよびターゲットのPostgreSQLデータベースへの接続を管理できるハブとして機能します。Oracle GoldenGate Classic for Non-Oracle (PostgreSQL)計算ノードからオンプレミスのPostgreSQLデータベースへの接続を確立するには、次のオプションを使用します。

  • IPSec VPN
  • FastConnect

OCIとのIPSec VPNを設定する場合は、IPSec VPNのドキュメントを参照してください。FastConnect接続の確立については、FastConnectのドキュメントを参照してください。

Oracle GoldenGate for PostgreSQLの要件

データのレプリケートを開始する前に、PostgreSQLデータベースについて、インスタンス、データベース、LD_LIBRARY_PATHおよびユーザーの要件を確認します。

データをレプリケートするには、次の手順を実行します。
  1. Oracle GoldenGate for PostgreSQLでは、データをレプリケートするために特定のPostgreSQLクライアント・ライブラリが必要であるため、最小限のPostgreSQLクライアント・ライブラリをインストールする必要があります。Oracle GoldenGateのインストール・ガイドPostgreSQLのインストールおよび異種データベースのためのOracle GoldenGateの使用Oracle GoldenGate for PostgreSQLの使用の章を参照してください。該当する項には、データベースの要件とサポートされる機能に関する重要な情報が記載されています。
    1. PostgreSQLクライアントをインストールするには、sudo yum install postgresql-clientを実行します。

      ノート:

      PostgreSQLクライアントまたはプラグインのインストール時に、PostgreSQLデータベース・バージョンがPostgreSQLクライアントおよびプラグインと一致していることを確認します。
      • データベース・バージョンがPostgreSQL 11の場合は、sudo yum install postgresql11-contribです。
      • データベース・バージョンがPostgreSQL 10の場合は、sudo yum install postgresql10-contribです。
  2. PostgreSQLクライアント・ライブラリ(LIBPQ)が存在するかどうかを確認します。
  3. インストールが完了したら、LD_LIBRARY_PATHを追加します。PostgreSQLクライアント・ライブラリ・パスが-/opt/pg/libで、Oracle GoldenGateホーム・ディレクトリ・パスが/opt/ogg/postgresqlの場合は、LD_LIBRARY_PATHexport LD_LIBRARY_PATH= /opt/pg/lib:/opt/ogg/postgresql/lib:$LD_LIBRARY_PATHとして設定します。

データベース・ユーザーとスキーマの作成

データベース・ユーザーおよびスキーマを作成するには、次の手順を実行します。
  1. データベース・ユーザーogg1をパスワードogg1で作成します。PostgreSQL 12のドキュメント - ユーザーの作成を参照してください。
  2. スキーマを作成します。PostgreSQL 12のドキュメント - スキーマの作成を参照してください。
  3. データベースを作成します。PostgreSQL 12のドキュメント - データベースの作成を参照してください。
  4. より多くの権限を持つロール権限をユーザーに付与します。PostgreSQL12のドキュメント - ロールの付与を参照してください。
create user ogg1 with password 'ogg1';
CREATE SCHEMA dbo;
CREATE DATABASE qadb;
GRANT replication ON DATABASE qadb TO ogg1;

odbc.iniファイルの設定および構成

odbc.iniおよびLD_LIBRARY_PATHの設定の詳細は、Oracle GoldenGateのインストール・ガイドのPostgreSQLのデータベース要件を参照してください。

GGSCIの起動

Oracle GoldenGate Classic for Non-Oracle (PostgreSQL)を使用すると、GoldenGate Serviceコマンド・インタフェース(GGCSI)にすぐにアクセスできます。また、Managerプロセスが実行されている状態で事前定義されています。計算ノードにログインすると、GGCSIpostgresディレクトリ(/home/opc/postgres)にあることが確認できます。

GGSCIを起動するには、次の手順を実行します。
  1. 次のコマンドを実行します。
    export LD_LIBRARY_PATH=/home/opc/postgres/lib:/opt/PostgreSQl/pg11/lib:$LD_LIBRARY_PATH
  2. GGSCIを開始するには、次のコマンドを実行します。
    $ ./ggsci

レプリケーション・スロットの登録

Oracle GoldenGateで、Extractをデータベース・レプリケーション・スロットに登録する必要があります。

Extractを登録する前に、DBLOGINがソース・データベースに接続されていることを確認します。
たとえば、Extractグループ名がextrの場合、GGSCIから次のコマンドを実行してExtractを登録します。
GGSCI> register extract extr with <dbname>

ソースPostgreSQLデータベースのサプリメンタル・ロギングの有効化

ソースPostgreSQLデータベースからトランザクション・データをキャプチャするには、PostgreSQLチェンジ・データ・キャプチャの表のサプリメンタル・ロギングを有効にする必要があります。次のステップを実行して、表レベルのチェンジ・データ・キャプチャを有効にします。

ソースPostgreSQLのサプリメンタル・ロギングを有効にするには、次の手順を実行します。

  1. GGSCIから、PostgreSQLログインでソース・データベースに接続します。
    GGSCI> DBLOGIN sourcedb <DSN> USERID <oggsourceuser> PASSWORD <Pwd>
    GGSCI > ADD TRANDATA dbo.table1
    GGSCI > ADD TRANDATA dbo.table2

PostgreSQLのためのリモートExtractの構成および作成

ソースPostgreSQLデータベースからトランザクション・データをキャプチャするには、Extractと呼ばれるキャプチャ・プロセスを構成する必要があります。Extractを作成するには、Oracle GoldenGate for Non-Oracleで次のステップを実行します。

リモート・キャプチャおよび適用への接続の詳細は、異種データベースのためのOracle GoldenGateの使用ガイドのPostgreSQLのリモート・キャプチャおよび適用の接続方法を参照してください。
  1. Extractパラメータ・ファイルを作成します。
    GGSCI> EDIT PARAMS extsql

    次に、Extractパラメータ・ファイルの例を示します。

    EXTRACT extsql
    DBLOGIN sourcedb <DSN> USERID <oggsourceuser> PASSWORD <Pwd>
    EXTTRAIL ./dirdat/et
    TABLE dbo.table1;
    TABLE dbo.table2;

    ファイルを保存して閉じます。

  2. ExtractとExtractのローカル証跡を追加します。
    GGSCI> ADD EXTRACT extsql, TRANLOG, BEGIN NOW
    GGSCI> ADD EXTTRAIL ./dirdat/et, EXTRACT extsql
  3. PostgreSQLソース・データベースへの接続を確認して、Extractを起動します。
    GGSCI> DBLOGIN sourcedb <DSN> USERID <oggsourceuser> PASSWORD <Pwd>
    GGSCI> START EXTRACT extsql

PostgreSQLのためのリモートReplicatの構成および作成

Replicatと呼ばれるレプリケーションの適用プロセスは、ターゲット・データベースにデータを配信するために使用されます。Replicatを作成するには、Oracle GoldenGate for Non-Oracleを使用して次のステップを実行します。
  1. GGSCIから、ターゲット・データベースにログインしてチェックポイント表を作成します。
    GGSCI> DBLOGIN sourcedb <DSN> USERID <oggsourceuser> PASSWORD <Pwd>
    GGSCI> ADD CHECKPOINTTABLE oggtargetschema.oggcheck
  2. Replicatパラメータ・ファイルを作成します。
    GGSCI > EDIT PARAMS repsql

    次に、Replicatパラメータ・ファイルの例を示します。

    REPLICAT repsql
    TARGETDB <DSN> USERID <oggtargetuser> PASSWORD <Pwd>
    MAP dbo.table1, TARGET dbo.table1;
    MAP dbo.table2, TARGET dbo.table2;

    ファイルを保存して閉じます。

  3. Replicatを追加して起動します。
    GGSCI> ADD REPLICAT repsql, EXTTRAIL ./dirdat/et, CHECKPOINTTABLE oggtargetschema.oggcheck
    GGSCI> START REPLICAT repsql