ノート:

OCI GoldenGateを使用したPostgreSQLを使用したオンプレミスのPostgreSQLデータベースのOCIデータベースへの移行

イントロダクション

PostgreSQLを使用するOracle Cloud Infrastructure Database (OCI Database with PostgreSQL)は、データベース表の作成または削除時にストレージを自動的にスケーリングするフルマネージド・サービスです。これにより、管理が簡素化され、ストレージ・コストが最適化されます。データは、転送中と停止中の両方で暗号化されます。

OCI GoldenGateは、PostgreSQLサービス・データベースを使用したOCIデータベースのシームレスな移行とほぼゼロ・ダウンタイム移行を可能にする論理オンライン移行をサポートしています。この機能では、PostgreSQLサービス・バージョン14、15のデータベースおよび将来のリリースを使用した、VM上のオンプレミスのPostgreSQLデータベースのOCIデータベースへの移行がサポートされます。

このチュートリアルでは、OCI GoldenGateが、VMバージョン14のオンプレミスのPostgreSQLデータベースを、PostgreSQLサービス・データベース・バージョン14のOCIデータベースに容易に移行する方法について説明します。初期ロードは、pg_dump (pg_dumpall)/pg_restoreバックアップ・ユーティリティを使用して実行されます。これにより、ソース・データベースのバックアップまたはスナップショットが作成されます。このバックアップは、ターゲット・システムにリストアされ、その後にOCI GoldenGateチェンジ・データ・キャプチャ(CDC)レプリケーションが続き、ソース(オンプレミスVM PostgreSQLデータベース)およびターゲット(OCI Database with PostgreSQLサービス)を同期します。

次の図は、OCI GoldenGateを使用して、VM上のオンプレミスのPostgreSQLデータベースをPostgreSQLサービスでOCIデータベースに移行するためのアーキテクチャを示しています。

アーキテクチャを示すイメージ

目的

前提条件

ノート:これらの前提条件は、VM (ソース)上のオンプレミスのPostgreSQLデータベース用です。

タスク1: ソース・データベース環境の準備

  1. 次の問合せを実行してレプリケーション・ユーザーを作成します。このユーザーは、OCIコンソールで接続を作成するときに使用する必要があります。

    create user ggadmin with password ‘<<password>>’;
    GRANT ALL PRIVILEGES ON DATABASE campaign TO ggadmin;
    alter user ggadmin replication;
    alter user ggadmin with superuser;
    
  2. 次のパラメータを変更し、wal_levelを変更するためにデータベース・システムを再起動する必要があります。

    ALTER SYSTEM SET wal_level = logical;
    ALTER SYSTEM SET track_commit_timestamp = on;
    

タスク2: OCI GoldenGateのプロビジョニングおよび接続の構成

  1. OCIコンソールにログインし、PostgreSQLデータベース用のOCI GoldenGateのデプロイメントを作成します。

    デプロイメントの作成を示すイメージ

    デプロイメントの作成を示すイメージ

    デプロイメントの作成を示すイメージ

    デプロイメントの作成を示すイメージ

    デプロイメントの作成を示すイメージ

  2. OCI PostgreSQLのOCI GoldenGate接続を作成します。

    1. ソース接続の詳細を入力し、「作成」をクリックします。

      SourceConnectionsの作成を示すイメージ

      SourceConnectionsの作成を示すイメージ

    2. ターゲット接続の詳細を入力し、「作成」をクリックします。

      TargetConnectionsの作成を示すイメージ

      TargetConnectionsの作成を示すイメージ

    ノート: VMの接続が作成される場合、SSLプロトコルは「プレーン」にする必要があり、OCI Database with PostgreSQLサービスの場合、SSLプロトコルは「必須」にする必要があります。

  3. 「作成」をクリックして、接続を作成します。

タスク3: ソース・データベース・レプリケーションの設定

  1. OCI GoldenGateでExtractを作成します。

    スキーマ・トランダタの作成を示す図

    ノート:すべての適格スキーマのソース・データベースにスキーマ・トランダタを追加し、「送信」をクリックします。

    Extractの作成を示すイメージ

    Extractの作成を示すイメージ

    Extractパラメータfile1の作成を示すイメージ

    ノート: 「CREATE」をクリックし、「CREATE and RUN」をクリックしないでください。

  2. ソース・データベースに一時レプリケーション・スロットを作成します。このスロットは、Extractプロセスの開始点の作成およびPostgreSQLスナップショットの配置に使用されます。これは、CREATE_REPLICATION_SLOTコマンドを使用して実行できます。一時レプリケーション・スロットを構成するには、次のステップを実行します。

    1. postgresggadminユーザーなどのレプリケーション・ロールを持つユーザーとしてpsqlを使用して、PostgreSQLデータベースにログインします。

    2. replication=databaseオプションを使用します。

      psql "dbname=pgsource replication=database user=postgres" 
      CREATE_REPLICATION_SLOT tslot TEMPORARY LOGICAL test_decoding EXPORT_SNAPSHOT;
      slot_name | consistent_point | snapshot_name | output_plugin
      ----------+------------------+---------------+--------------------- 
          tslot | 1/4232A6B0 | 00000007-00001142-1 | test_decoding 
      
    3. snapshot_nameおよびconsistent_pointの詳細に注意してください。

      ノート:

      • consistent_pointは、OCI GoldenGate Extractを配置し、Extractを起動してCDCトランザクションを取得するために使用します。
      • snapshot_nameは、pg_dumpおよびpg_restoreを使用したソース・データベースからターゲット・データベースへの初期ロードに使用する必要があります。
  3. OCI Goldengate Extractをconsistent_pointログ順序番号(LSN)に配置します。

    作成されたCDC抽出は停止状態になります。

    Extractポジショニングの作成を示すイメージ

    「アクション」で、「...」アイコンをクリックし、「変更」を選択します。

    Extractポジショニングの作成を示すイメージ

    タスク3.2で取得したLSNの位置をconsistent_pointに変更します。

    Extractポジショニングの作成を示すイメージ

  4. 「送信」をクリックし、抽出プロセスを開始します。

    Extractは実行中状態になり、変更された位置からCDCキャプチャを開始します。

    Extractポジショニングの作成を示すイメージ

タスク4: ソースおよびターゲット・データベースでのバックアップおよびリストアの実行

  1. 次のコマンドを実行して、ソース・プライマリ・データベースをバックアップします。

    nohup /u01/pgsql-14/bin/pg_dump -h <<Sourceip>> -p 5432 -U <<superuser/ggadmin user>> –snapshot=00000007-00001142-1 -F c -b -v -f latestdump.db pgsource &
    
  2. 次のコマンドを実行して、ダンプをターゲット・データベースにリストアします。

    nohup /u01/pgsql-14/bin/pg_restore -h <<Targetip>> -p 5432 -U admin -d pgtarget -v latestdump.db &
    

タスク5: ターゲット・データベース・レプリケーションの設定

  1. OCI GoldenGateターゲット・データベースで使用可能な任意のスキーマにチェックポイント表を作成し、「送信」をクリックします。

    チェックポイント表の作成を示す図

  2. ターゲット・データベース接続を使用してReplicatプロセスを作成し、CDCデータをターゲット・データベースに適用します。

    Replicatの作成を示すイメージ

    Replicatの作成を示すイメージ

    Replicatの作成を示すイメージ

    Replicatパラメータ・ファイルの作成を示す図

  3. 「送信」をクリックし、Replicatを起動します。同期させてください。

    Replicatの作成を示すイメージ

タスク6: 実際の移行の実行

オンプレミスのVM PostgreSQLデータベースから、PostgreSQLサービスでOCIデータベースにカットオーバーします。

タスク7: 移行の検証

PostgreSQLを使用して、OCIデータベースのターゲット・データベース・システムで転送されたデータベース・オブジェクトおよびデータを検証し、移行が成功し、問題や相違がないことを確認します。

承認

その他の学習リソース

docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。

製品ドキュメントについては、Oracle Help Centerを参照してください。