ノート:
- このチュートリアルでは、Oracle Cloudへのアクセス権が必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了したら、これらの値をクラウド環境に固有の値に置き換えてください。
フィジカル・スタンバイ・レプリケーションを使用したVMでのPostgreSQLデータベースのクロス・リージョン・ディザスタ・リカバリの実装
イントロダクション
pg_basebackup
は、実行中のPostgreSQLデータベース・クラスタの全体バックアップを実行するためにPostgreSQLによって提供されるコマンドライン・ユーティリティです。データベース・クラスタのバイナリ・コピーを作成するように設計されています。このコピーは、レプリケーションまたはリカバリに使用できます。
pg_basebackup
は、実行中のPostgreSQLデータベース・クラスタの全体バックアップを実行するためにPostgreSQLによって提供されるコマンドライン・ユーティリティです。データベース・クラスタのバイナリ・コピーを作成するように設計されています。このコピーは、レプリケーションまたはリカバリに使用できます。
pg_basebackup
ユーティリティの主な利点の1つは、データベースが存在するファイル・システムにアクセスすることなく動作することです。かわりに、ストリーミング・レプリケーション・プロトコルを使用してPostgreSQLサーバーに接続し、サーバーの実行中でも安全で使いやすいようにします。
通常、pg_basebackup
ユーティリティは、先読みロギング(WAL)アーカイブと組み合せて使用され、ストリーミング・レプリケーションの設定、および仮想マシン(VM)で実行されているPostgreSQL環境の高可用性およびディザスタ・リカバリの確保において重要な役割を果たします。
基本的な特徴:
-
スタンバイ・サーバーの設定に簡単に使用できます。
-
パラレル・バックアップをサポートし、パフォーマンスを向上させます。
-
バックアップの圧縮を許可します。
-
Point-in-Timeリカバリ用のWALファイルを含めることができます。
このチュートリアルでは、コンピュート・仮想マシンでホストされている2つのPostgreSQLデータベース間でリージョン間ストリーミング・レプリケーションを設定するタスクの概要を示します。
目的
- DRリージョンのフィジカル・スタンバイ・データベースを使用して、VM上のPostgreSQLデータベースのクロスリージョン・ディザスタ・リカバリ(DR)を設定します。
前提条件
リージョン全体でVCNピアリングを作成します。複数のリージョンにわたってコンピュート・仮想マシンに接続するには、VCNピアリングを設定する必要があります。詳細は、次の各トピックを参照してください:
-
VCNピアリングの実装: Dynamic Routing Gatewayを使用した異なるリージョンでのOCI VCNsのピアリング。
-
Dynamic Routing Gateways (DRG)の管理: Dynamic Routing Gateways。
異なるリージョン内のデータベース間のシームレスな接続を確立するために、VCNピアリングが正しく構成されていることを確認します。
タスク1: プライマリPostgreSQLデータベースの設定
-
プライマリPostgreSQLデータベースに
replicator
という名前のユーザーを作成します。CREATE USER replicator WITH REPLICATION ENCRYPTED PASSWORD '*********';
-
ロール/ユーザーを検証します。
postgres=# \du List of roles Role name | Attributes | Member of ----------------+------------------------------------------------------------+----------- admin | Superuser | {} guest | | {} mytestdb | | {} postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} replicator | Replication
-
次の詳細で
postgresql.conf
ファイルを更新します。listen_addresses = '*'
-
pg_hba.conf
ファイルを更新します。スタンバイ・データベースのIPアドレスを使用します。host replication replicator Standby_DB_IP/32 md5
-
PostgreSQL サービスを再起動します。
sudo systemctl restart PostgreSQL
タスク2: スタンバイPostgreSQLデータベースの設定
-
PostgreSQLサービスを停止します。
sudo systemctl stop PostgreSQL
-
既存のバイナリを削除します。
cp -R /var/lib/postgresql/13/main /var/lib/postgresql/13/main_old rm -rf /var/lib/postgresql/13/main
-
pg_basebackup
コマンドを実行して、ストリーミング・レプリケーションを設定します。pg_basebackup -h PrimaryDB_IP -D /var/lib/postgresql/13/main -U replicator -P -v -R -X stream -C -S slaveslot1
-
PostgreSQLサービスを起動します。
sudo systemctl start PostgreSQL
タスク3: プライマリPostgreSQLデータベースでのストリーミング・レプリケーションの確認
プライマリPostgreSQLデータベースで次のコマンドを実行して、プライマリ・データベースとDRデータベース間の同期ステータスを収集します。
SELECT * FROM pg_replication_slots;
SELECT * FROM pg_stat_replication;
確認
- 著者 - Snehaa Patnaik (リフト実装エキスパート- データベース)
その他の学習リソース
docs.oracle.com/learnで他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Implement Cross Region Disaster Recovery for PostgreSQL Databases on VM Using Physical Standby Replication
G35550-01
Copyright ©2025, Oracle and/or its affiliates.