PostgreSQL は、データのバックアップ、障害回復、負荷分散に使用できるさまざまなマスター/スレーブ レプリケーション スキームをサポートしています。以下は一般的なマスター/スレーブ レプリケーション スキームであり、ニーズに応じて適切な方法を選択できます。
メインデータベースを構成します:
メインデータベースの設定ファイルpostgresql.confを編集し、レプリケーション機能を有効にします。次のパラメータを設定します:
wal_level = レプリカマックス_wal_senders = 10
pg_hba.conf ファイルを編集して、スレーブ サーバーがマスター サーバーに接続できるようにします。次の行を追加します:
ホスト レプリケーション <スレーブ サーバー IP アドレス> trust
スレーブデータベースの作成:
セカンダリ データベースの構成ファイル postgresql.conf で、レプリケーション機能を有効にします。次のパラメータを設定します:
wal_level = レプリカ
スレーブ データベースの pg_hba.conf ファイルに次の行を追加して、スレーブ サーバーがスレーブ サーバーに接続できるようにします。
ホスト レプリケーション <マスター サーバー IP アドレス> トラスト
CREATE ROLE replicator REPLICATION LOGIN CONNECTION LIMIT 10 ENCRYPTED PASSWORD 'password';
SELECT * FROM pg_create_physical_replication_slot('replication_slot_name');
ホスト レプリケーション レプリケーター <スレーブ サーバー IP アドレス> トラスト
pg_basebackup -h <マスターサーバーの IP アドレス> -U replicator -p 5432 -D /path/to/data_directory -P -R -X stream -c fast
「<マスター サーバー IP アドレス>」は実際のマスター サーバーの IP アドレスに置き換えられ、「/path/to/data_directory」はスレーブ データベースのデータ ディレクトリ パスに置き換えられることに注意してください。
primary_conninfo = 'host=<プライマリサーバーのIPアドレス> port=5432 user=replicatorpassword=password'primary_slot_name = 'replication_slot_name'
「<マスターサーバー IP アドレス>」、「パスワード」、および「replication_slot_name」を実際の値に置き換えることに注意してください。
上記の手順を完了すると、マスター/スレーブ レプリケーションが開始されます
###走る。マスター データベース上のデータ変更はスレーブ データベースに自動的にレプリケートされ、スレーブ データベースはマスター データベースとの一貫性を維持します。監視ツールを使用してマスター/スレーブ レプリケーションのステータスを監視し、正しく機能していることを確認できます。上記はマスター/スレーブ レプリケーション ソリューションの概要にすぎず、実際の実装は特定の環境やニーズに応じて調整する必要がある場合があることに注意してください。より詳細なガイダンスと手順については、PostgreSQL の公式ドキュメントやその他の信頼できるリソースを参照することをお勧めします。
以上がPostgreSQL マスター/スレーブ レプリケーション ソリューションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。