PostgreSQLからAutonomous AI Transaction Processingへのデータ・レプリケート

OCI GoldenGateを使用して、PostgreSQLサーバー・データベースからAutonomous AI Transaction Processingにデータをレプリケートする方法について学習します。

開始する前に

このクイックスタートを正常に完了するには、次が必要です:

環境設定: PostgreSQL

このクイックスタートの環境を設定するには:

  1. 次のコマンドを実行して、PostgreSQLをインストールします。

    1. PostgreSQLサーバーをインストールします。

      sudo yum install postgresql-server
    2. このSQL例外を回避するために、postgresql-contribモジュールをインストールします。

      sudo yum install postgresql-contrib
    3. 新しいPostgreSQLデータベース・クラスタを作成します。

      sudo postgresql-setup --initdb
    4. postgresql.serviceを有効にします。

      sudo systemctl enable postgresql.service
    5. postgresql.serviceを起動します。

      sudo systemctl start postgresql.service
  2. デフォルトでは、PostgreSQLはローカル接続のみを許可します。PostgreSQLへのリモート接続を許可します。

    1. /var/lib/pgsql/data/postgresql.confで、データベースをレプリケーション用に準備します。

    2. listen_addresses = 'localhost'を見つけてコメント解除し、localhostをアスタリスク(`)に変更します。

      listen_addresses = '*'
    3. 次のパラメータを次のように設定します。

      • wal_level = logical

      • max_replication_slots = 1

      • max_wal_senders = 1

      • track_commit_timestamp = on

      ノート:

      /var/lib/pgsql/data/pg_hba.confを構成して、Oracle GoldenGateホストからの接続を許可するようにクライアント認証が設定されていることを確認します。たとえば、次を追加します:

      #Allow connections from remote hosts
      
      host all all 0.0.0.0/0 md5

      詳細は、The pg_hba.conf Fileを参照してください。

      1. PostgreSQLサーバーを再起動します。
      sudo systemctl restart postgresql.service
      1. Oracle Cloud Computeを使用してPostgreSQLをホストする場合は、ポート5432を開きます。
      sudo firewall-cmd --permanent --add-port=5432/tcp
      sudo firewall-cmd --reload
      sudo firewall-cmd --list-all
    4. VCNのセキュリティ・リストでポート5432を開きます。

    5. PostgreSQLへの接続

      > sudo su - postgres
      > psql

      ノート:前述の例が機能しない場合は、sudo su - postgres psqlを入力することもできます。

    6. PostgreSQLを設定します。

      1. seedSRCOCIGGLL_PostgreSQL.sqlをダウンロードして実行し、データベースを設定し、サンプル・データをロードします。

      2. 次のコマンドを実行して、ユーザーを設定します(<password>を実際のパスワードに置き換えます)。

      create user ggadmin with password '<password>';
      alter user ggadmin with SUPERUSER;
      GRANT ALL PRIVILEGES ON DATABASE ociggll TO ggadmin;

環境設定: Autonomous AI Transaction Processing(ATP)

  1. サンプル・データベース・スキーマをダウンロードして解凍します。

  2. GGADMINユーザーをロック解除します。

    1. Oracle Cloudコンソールで、「Autonomous AI Databases」ページからATPインスタンスを選択してその詳細を表示し、データベース・アクションにアクセスします。

    2. 「データベース・アクション」を選択し、「データベース・ユーザー」を選択します。

    3. GGADMINを見つけて、その省略記号メニュー(3つのドット)を選択し、「編集」を選択します。

    4. 「ユーザーの編集」パネルで、GGADMINパスワードを入力し、パスワードを確認して、「アカウントがロックされています」の選択を解除します。

    5. 「変更の適用」を選択します。

  3. ターゲット・サンプル・スキーマおよびデータをロードします。

    1. 「データベース・アクション」メニューから、「SQL」を選択します。

    2. OCIGGLL_OCIGGS_SETUP_USERS_ADW.sqlからスクリプトをコピーしてSQLワークシートに貼り付けます。

    3. 「スクリプトの実行」を選択します。「スクリプト出力」タブに確認メッセージが表示されます。

    4. SQLワークシートをクリアして、OCIGGLL_OCIGGS_SRC_MIRROR_USER_SEED_DATA.sqlからSQLをコピーして貼り付けます。

    5. 表が正常に作成されたことを確認するには、SQLウィンドウを閉じて再度開きます。「ナビゲータ」タブで、SRC_OCIGGLLスキーマを検索し、それぞれのドロップダウンから表を選択します。

タスク1: OCI GoldenGateリソースの作成

このクイックスタートの例では、ソースとターゲットの両方のデプロイメントおよび接続が必要です。

  1. ソースPostgreSQLデータベースのデプロイメントを作成します。

  2. ターゲットAutonomous AI Transaction Processingインスタンスのデプロイメントを作成します。

  3. ソースPostgreSQLデータベースへの接続を作成します

    1. 「タイプ」で、必ず「PostgreSQLサーバー」を選択します。

    2. 「データベース名」に、ociggllと入力します。

    3. 「ホスト」に、PostgreSQLが実行されるコンピュート・インスタンスのパブリックIPを入力します。

    4. 「ポート」に、5432と入力します。

    5. 「ユーザー名」に、ggadminと入力します。

    6. 「パスワード」に、パスワードを入力します。

    7. 「セキュリティ・プロトコル」で、「プレーン」を選択します。

  4. ターゲットAutonomous AI Transaction Processingインスタンスの接続を作成します

  5. GoldenGateへの接続の作成から、この接続をソースPostgreSQLデプロイメントに割り当てます

  6. ソースPostgreSQLデプロイメントにソース接続を割り当てる

  7. ターゲットOracleデプロイメントにターゲット接続を割り当てる

タスク2: サプリメンタル・ログの有効化

サプリメンタル・ロギングの有効化の手順:

  1. PostgreSQL GoldenGateデプロイメント・コンソールを起動します:

    1. 「デプロイメント」ページから、PostgreSQLデプロイメントを選択してその詳細を表示します。

    2. PostgreSQLデプロイメントの詳細ページで、「コンソールの起動」を選択します。

    3. デプロイメント・コンソールのサインイン・ページで、タスク1のステップ1で提供されるGoldenGate管理資格証明を入力します。

      ノート:デプロイメントの作成時にIAMが資格証明ストアとして選択されなかった場合は、サインインが必要です。

  2. デプロイメント・コンソールで、左側のナビゲーションで「DB接続」を選択し、ソースPostgreSQLデータベース、「Trandata」の順に選択します。

  3. 「TRANDATA」ページの「TRANDATA Information」の横にある「Add TRANDATA」(プラス・アイコン)を選択します。

  4. 「Trandata」パネルで、「スキーマ名」src_ociggllと入力し、「送信」を選択します。

    ノート:検索フィールドを使用してsrc_ociggllを検索し、表が追加されたことを確認します。

タスク3: Extractの作成

  1. チェンジ・データ・キャプチャExtractを追加します。

    1. 左側のナビゲーションから、「Extract」を選択します。

    2. 「Extract」ページで、「Extractの追加」(プラス・アイコン)を選択し、次のようにフィールドに入力します。

      • 「Extract Information」ページで、次の手順を実行します。

        1. 「Extractタイプ」で、「Change Data Capture Extract」を選択します。

        2. 「プロセス名」に、Extractの名前(ECDCなど)を入力します。

        3. 「次へ」を選択します。

      • 「抽出オプション」ページで、次の手順を実行します。

        1. ソース資格証明の場合は、「ドメイン」ドロップダウンから「Oracle GoldenGate」を選択します

        2. 「別名」ドロップダウンからソースPostgreSQLデータベースを選択します。

        3. 「Extract Trail Name」に、2文字のトレイル名(C1など)を入力します。

        4. 「次へ」を選択します。

      • 「パラメータ」ページで、MAP *.*, TARGET *.*;を次のように置き換えます:

        TABLE SRC_OCIGGLL.*;
    3. 「作成および実行」を選択します。

  2. 初期ロードExtractの追加:

    1. 「Extract」ページで、「Extractの追加」を選択し、「Extractの追加」フォームに次のように入力します。

      • 「Extract Information」ページで、次の手順を実行します。

        1. 「Extractタイプ」で、「初期ロードExtract」を選択します。

        2. 「プロセス名」に、名前(EILなど)を入力します。

        3. 「次へ」を選択します。

      • 「抽出オプション」ページで、次の手順を実行します。

        1. ソース資格証明の場合は、「ドメイン」ドロップダウンから「Oracle GoldenGate」を選択します。

        2. 「別名」ドロップダウンからPostgreSQLデータベースを選択します。

        3. 「トレイル名の抽出」に、2文字のトレイル名(I1など)を入力します。

        4. 「次へ」を選択します。

      • 「Extractパラメータ」ページで、テキスト領域の内容を次のように置き換えます。

        EXTRACT EIL
        USERIDALIAS PostgreSQL_Compute, DOMAIN OracleGoldenGate
        EXTFILE I1, PURGE
        TABLE src_ociggll.*;

        ノート:移動する前に、必ずUSERIDALIASの前にあるSOURCEDBパラメータを削除してください。

    2. 「作成および実行」を選択します。

「Extract」ページに戻り、Extractの開始を確認できます。

タスク4: 初期ロードExtractの分散パスの作成

  1. 「デプロイメント」ページで、ターゲットOracleデプロイメントを選択します。

  2. デプロイメントの詳細ページで、「コンソールの起動」を選択し、管理ユーザーとしてログインします。

  3. IAM資格証明ストアを使用する場合は、「分散パスの作成」ステップに進みます。GoldenGate資格証明ストアを使用する場合は、ソースGoldenGateがターゲットGoldenGateへの接続に使用するユーザーを作成します。

    1. ナビゲーション・メニューで、「ユーザー管理」を選択します。

    2. 「新規ユーザーの追加」(プラス・アイコン)を選択し、次のようにフィールドに入力します。「送信」を選択します:

      • 「ユーザー名」に、ggsnetと入力します。

      • 「ロール」で、「演算子」を選択します。

      • 確認のためにパスワードを2回入力します。

  4. ソースのPostgreSQLデプロイメント・コンソールで、前のステップで作成したユーザーのパス接続を作成します。

    1. ナビゲーション・メニューで、「パス接続」を選択します。

    2. 「Add Path Connection」(プラス・アイコン)を選択し、次のようにフィールドに入力して「Submit」を選択します。

      • 「資格証明別名」に、dpuserと入力します。

      • 「ユーザーID」に、ggsnetと入力します

      • 「パスワード」に、前のステップで使用したものと同じパスワードを入力します。

  5. 分散パスの作成

    1. サービス・メニュー・バーで、「パス」を選択し、「分散パスの追加」(プラス・アイコン)を選択します。

    2. 「パスの追加」フォームに次のように入力します。

      • 「パス情報」ページで、次の手順を実行します。

        1. 「パス名」に、このパスの名前を入力します。

        2. 「次へ」を選択します。

      • 「ソース・オプション」ページで、次の手順を実行します。

        1. 「ソース抽出」では、空白のままにします。

        2. 「トレイル名」に、初期ロードExtractのトレイル名(I1)を入力します。

        3. 「次へ」を選択します。

      • 「ターゲット・オプション」ページで、次の手順を実行します。

        1. 「ターゲット」で、「wss」を選択します。

        2. 「ターゲット・ホスト」に、ターゲット3デプロイメントURLをhttps://または後続のスラッシュなしで入力します。

        3. 「ポート番号」に、443と入力します。

        4. 「トレイル名」に、I1と入力します。

        5. 「ターゲット認証方式」で、「ユーザーID別名」を選択します。

        6. 「ドメイン」に、前のステップで作成したドメイン名を入力します。

        7. 「別名」に、前のステップで作成した別名を入力します(dpuser)。

        8. 「次へ」を選択します。

    3. 「作成および実行」を選択します。

    「Distribution Service」ページに戻り、作成したパスを確認できます。

  6. ターゲット・デプロイメント・コンソールで、分散パスの結果として作成された受信パスを確認します:

    1. 「パス」を選択します。

    2. パスの詳細を確認します。

タスク5: 初期ロードのためのReplicatの追加

  1. ターゲットのOracleデプロイメントで、チェックポイント表を追加します。

    1. ナビゲーション・メニューで、「DB接続」を選択します

    2. ターゲットAutonomous AI Databaseインスタンスを選択し、チェックポイントを選択します。

    3. 「チェックポイント」ページで、「チェックポイントの追加」(プラス・アイコン)を選択します。

    4. 「チェックポイント」パネルで、「スキーマ表」SRCMIRROR_OCIGGLL.CHECKTABLEと入力します。

    5. 「送信」を選択します。

  2. Replicatを追加します。

    1. ナビゲーション・メニューで、「Replicat」を選択します。

    2. 「Replicat」ページで、「Replicatの追加」(プラス・アイコン)を選択し、「Replicatの追加」フィールドに次のように入力します。

      • 「Replicat情報」ページで、次の手順を実行します。

        1. 「Replicatタイプ」で、「非統合Replicat」を選択します。

        2. 「プロセス名」に、名前(RILなど)を入力します。

        3. 「次へ」を選択します

      • 「Replicatオプション」ページで、次の手順を実行します。
        1. 「Replicatトレイル名」に、タスク2からトレイルの名前(I1)を入力します。

        2. 「ターゲット資格証明」で、Autonomous AI Database接続の「ドメイン」および「別名」を選択します。

        3. 「チェックポイント表」で、ステップ1で作成したチェックポイント表を選択します。

        4. 「次へ」を選択します。

      • 「パラメータ・ファイル」ページで、MAP *.*, TARGET *.*;を次のように置き換えます。

        MAP SRC_OCIGGLL.*, TARGET SRCMIRROR_OCIGGLL.*;
    3. 「作成および実行」を選択します。

    「Replicat」ページに戻り、Replicatの詳細を確認できます。

  3. Replicat (RIL)を選択し、その詳細を表示します。

  4. 「統計」を選択し、挿入の数を確認します。ページをリフレッシュします。

    • 挿入の数が変更されない場合、初期ロードのすべてのレコードがロードされており、Replicat (RIL)を停止できます

    • 挿入の数が増加し続ける場合、初期ロードのレコードがすべてロードされるまでページをリフレッシュしてから続行してください。

  5. 初期ロードを確認します。

    1. Oracle CloudコンソールのAutonomous AI Databaseの詳細ページで、「データベース・アクション」「SQL」の順に選択します。

    2. SQLツールで、次の各文をワークシートに入力し、「文の実行」を選択します:

      SELECT * FROM SRCMIRROR_OCIGGLL.SRC_CITY;
      SELECT * FROM SRCMIRROR_OCIGGLL.SRC_CUSTOMER;

      出力では、初期ロードの結果としてターゲット・データベース表にロードされたデータが返されます。

タスク6: 変更データ取得のための分散パスの作成

  1. ソースのPostgreSQLデプロイメント・コンソールで、「分散サービス」を選択します。

  2. 「分散パスの追加」を選択します。

  3. 「パスの追加」フォームに次のように入力します。

    1. 「パス情報」ページで、次の手順を実行します。

      1. 「パス名」に、名前を入力します。

      2. 「次へ」を選択します。

    2. 「ソース・オプション」ページで、次の手順を実行します。

      1. 「ソースExtract」で、チェンジ・データ・キャプチャExtract (ECDC)を選択します。

      2. 「トレイル名」で、変更データ取得のトレイル・ファイル(C1)を選択します。

      3. 「次へ」を選択します。

    3. 「ターゲット・オプション」ページで、次の手順を実行します。

      1. 「ターゲット」で、「wss」を選択します。

      2. 「ターゲット・ホスト」に、ターゲット・デプロイメント・コンソールのURLを入力します(これは、デプロイメントの詳細ページでhttps://または後続のスラッシュなしで確認できます)。

      3. 「ポート番号」に、443と入力します。

      4. 「トレイル名」に、C1と入力します。

      5. 「ターゲット認証方式」で、「ユーザーID別名」を選択します。

      6. 「ドメイン」に、ドメイン名を入力します。

      7. 「別名」に、別名を入力してください。

    4. 「パスの作成」および「実行」を選択します。

  4. ターゲットのOracleデプロイメント・コンソールで、「受信サービス」を選択し、作成された受信パスを確認します。

タスク7: 変更データ取得のためのReplicatの追加

  1. ターゲットのOracleデプロイメント・コンソールで、Replicatを追加します。

    1. 管理サービスのナビゲーション・メニューで、「Replicat」を選択します。

    2. 「Replicat」ページで、「Replicatの追加」(プラス・アイコン)を選択し、「Replicatの追加」フォームに次のように入力します。

      • 「Replicat情報」ページで、次の手順を実行します。

        1. 「Replicatタイプ」で、「非統合Replicat」を選択します。

        2. 「プロセス名」に、名前(RCDCなど)を入力します。

        3. 「次へ」を選択します。

      • 「Replicatオプション」ページで、次の手順を実行します。

        1. 「Replicatトレイル名」に、タスク3からトレイルの名前(C1)を入力します。

        2. 「ターゲット資格証明」で、Autonomous AI Database接続のドメインおよび別名を選択します。

        3. 「チェックポイント表」で、チェックポイント表を選択します。

      • 「Replicatパラメータ」ページで、MAP *.*, TARGET *.*;を次のマッピングに置き換えます。

        MAP SRC_OCIGGLL.*, TARGET SRCMIRROR_OCIGGLL.*;
    3. 「作成」を選択します。Replicatを実行しないでください。

  2. 「Replicat」ページで、初期ロード用のReplicat (RIL)を選択し、その詳細を表示します。

  3. 「統計」を選択し、挿入の数を確認します。ページをリフレッシュします。

    • 挿入の数が変更されない場合、初期ロードのすべてのレコードがロードされており、Replicat (RIL)を停止できます

    • 挿入の数が増加し続ける場合、初期ロードのレコードがすべてロードされるまでページをリフレッシュしてから続行してください。

      ノート:挿入が表示されない場合は、「パフォーマンス・メトリック・サービス」を選択し、「抽出」「データベース統計」の順に選択します。

  4. 「Replicat」ページに戻り、変更データ取得用のReplicat (RCDC)を起動します。

  5. 変更データ取得用のReplicatを起動した後、その詳細および統計を確認して、挿入の数を表示します。

  6. レプリケーションの検証:

    1. 次のスクリプトを実行して、PostgreSQLデータベースへの挿入を実行します。

      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1000,'Houston',20,743113);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1001,'Dallas',20,822416);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1002,'San Francisco',21,157574);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1003,'Los Angeles',21,743878);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1004,'San Diego',21,840689);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1005,'Chicago',23,616472);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1006,'Memphis',23,580075);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1007,'New York City',22,124434);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1008,'Boston',22,275581);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1009,'Washington D.C.',22,688002);
    2. ソースのPostgreSQLデプロイメント・コンソールで、チェンジ・データ・キャプチャExtract (ECDC)を選択し、「統計」を選択します。src_ociggll.src_cityに10個の挿入があることを確認します。

      ノート: Extractで挿入が行われなかった場合は、ECDC Extractを再起動します。

    3. ターゲットのOracleデプロイメント・コンソールで、Replicat名(RCDC)を選択し、その「詳細」を表示して、「統計」を選択します。SRCMIRROR_OCIGGLL.SRC_CITYに10個の挿入があることを確認します。

タスク8: プロセスのモニターおよびメンテナンス

  1. レプリケーションプロセスをモニターします

  2. トレイル・ファイルの管理