ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了するときに、これらの値をクラウド環境に固有の値に置き換えます。
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データベースに移行するためのアーキテクチャを示しています。
目的
- OCI GoldenGateを使用して、PostgreSQLサービスでOCIデータベースに移行します。
前提条件
ノート:これらの前提条件は、VM (ソース)上のオンプレミスのPostgreSQLデータベース用です。
-
test_decoding
プラグイン: OCI GoldenGateでは、test_decoding
データベース・プラグインをPostgreSQLデータベースにインストールする必要があります。このプラグインは、デフォルトではインストールされない場合があります。 -
PostgreSQL Contribパッケージ:
postgresqlversion#-contrib
パッケージがデータベース・サーバーにインストールされていることを確認します。 -
クライアント・ライブラリの互換性: PostgreSQLクライアント・ライブラリは、データベース・バージョンと一致する必要があります。10未満のクライアント・バージョンはサポートされていません。
sudo yum install postgresql14-contrib (our database is version 14)
タスク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;
-
次のパラメータを変更し、
wal_level
を変更するためにデータベース・システムを再起動する必要があります。ALTER SYSTEM SET wal_level = logical; ALTER SYSTEM SET track_commit_timestamp = on;
タスク2: OCI GoldenGateのプロビジョニングおよび接続の構成
-
OCIコンソールにログインし、PostgreSQLデータベース用のOCI GoldenGateのデプロイメントを作成します。
-
OCI PostgreSQLのOCI GoldenGate接続を作成します。
-
ソース接続の詳細を入力し、「作成」をクリックします。
-
ターゲット接続の詳細を入力し、「作成」をクリックします。
ノート: VMの接続が作成される場合、SSLプロトコルは「プレーン」にする必要があり、OCI Database with PostgreSQLサービスの場合、SSLプロトコルは「必須」にする必要があります。
-
-
「作成」をクリックして、接続を作成します。
タスク3: ソース・データベース・レプリケーションの設定
-
OCI GoldenGateでExtractを作成します。
ノート:すべての適格スキーマのソース・データベースにスキーマ・トランダタを追加し、「送信」をクリックします。
ノート: 「CREATE」をクリックし、「CREATE and RUN」をクリックしないでください。
-
ソース・データベースに一時レプリケーション・スロットを作成します。このスロットは、Extractプロセスの開始点の作成およびPostgreSQLスナップショットの配置に使用されます。これは、
CREATE_REPLICATION_SLOT
コマンドを使用して実行できます。一時レプリケーション・スロットを構成するには、次のステップを実行します。-
postgres
やggadmin
ユーザーなどのレプリケーション・ロールを持つユーザーとしてpsql
を使用して、PostgreSQLデータベースにログインします。 -
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
-
snapshot_name
およびconsistent_point
の詳細に注意してください。ノート:
consistent_point
は、OCI GoldenGate Extractを配置し、Extractを起動してCDCトランザクションを取得するために使用します。snapshot_name
は、pg_dump
およびpg_restore
を使用したソース・データベースからターゲット・データベースへの初期ロードに使用する必要があります。
-
-
OCI Goldengate Extractを
consistent_point
ログ順序番号(LSN)に配置します。作成されたCDC抽出は停止状態になります。
「アクション」で、「...」アイコンをクリックし、「変更」を選択します。
タスク3.2で取得したLSNの位置を
consistent_point
に変更します。 -
「送信」をクリックし、抽出プロセスを開始します。
Extractは実行中状態になり、変更された位置からCDCキャプチャを開始します。
タスク4: ソースおよびターゲット・データベースでのバックアップおよびリストアの実行
-
次のコマンドを実行して、ソース・プライマリ・データベースをバックアップします。
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 &
-
次のコマンドを実行して、ダンプをターゲット・データベースにリストアします。
nohup /u01/pgsql-14/bin/pg_restore -h <<Targetip>> -p 5432 -U admin -d pgtarget -v latestdump.db &
タスク5: ターゲット・データベース・レプリケーションの設定
-
OCI GoldenGateターゲット・データベースで使用可能な任意のスキーマにチェックポイント表を作成し、「送信」をクリックします。
-
ターゲット・データベース接続を使用してReplicatプロセスを作成し、CDCデータをターゲット・データベースに適用します。
-
「送信」をクリックし、Replicatを起動します。同期させてください。
タスク6: 実際の移行の実行
オンプレミスのVM PostgreSQLデータベースから、PostgreSQLサービスでOCIデータベースにカットオーバーします。
-
ソースVMデータベースに接続されたアプリケーション・ランプ・ダウンを実行します。
-
ソースVMデータベースへのデータベース接続がないことを確認します。
-
Extract/Replicatプロセスにラグがないことを確認し、Extract/Replicatプロセスを停止するPostgreSQLサービスを使用して、アプリケーションをターゲットOCIデータベースを指すカットオーバーを実行します。
タスク7: 移行の検証
PostgreSQLを使用して、OCIデータベースのターゲット・データベース・システムで転送されたデータベース・オブジェクトおよびデータを検証し、移行が成功し、問題や相違がないことを確認します。
関連リンク
- OCI GoldenGateを使用して、PostgreSQLを使用してオンプレミスのPostgreSQLデータベースをOCIデータベースにシームレスに移行
- データベースのインポート、エクスポートおよび移行
- pg_dumpを使用したPostgreSQL環境間の正確なインスタンス化
承認
- 著者 - Saravanadurai Rajendran (リフト・インプリメンテーション・スペシャリスト- データベース)
その他の学習リソース
docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Migrate an On-Premises PostgreSQL Database to OCI Database with PostgreSQL using OCI GoldenGate
G29128-01
Copyright ©2025, Oracle and/or its affiliates.