- 2021年4月23日
PostgreSQL11 非同期レプリケーション
TL;DR;
Windows Sever 2019でPostreSQLで、非同期レプリケーションを行う方法について説明します。
※ 説明しないこと: PostgreSQLのインストール方法, psqlの使い方
環境
マスタ
- OS: Windows Server 2019
- IP: 192.168.10.100
- DB: PostgreSQL 11
スタンバイ
- OS: Windows Server 2019
- IP: 192.168.10.101
- DB: PostgreSQL 11
手順
マスタサーバの設定
1. psqlにログイン
psql -U postgres
2. レプリケーション用ログインユーザの作成
CREATE ROLE replication_user LOGIN REPLICATION PASSWORD 'xxx'
3. postgresql.confを修正
wal_level = replica max_wal_senders = 10 archive_mode = on archive_command = '' synchronous_commit = off synchronous_standby_names = ''
4. pg_hba.confにreplicationユーザで接続できるように修正
host replication replication_user 192.168.10.0/24 md5
5. PostgreSQLの再起動
pg_ctl restart
ホットスタンバイ側の設定
1. マスタ側のデータベースクラスを取得
pg_basebackup -h 192.168.10.168 -p 5432 -U replication_user -D <データフォルダ> --wal-method=fetch --checkpoint=fast --write-recovery-conf --postgres
2. postgresql.confの修正
hot_stanby = on
レプリケーションの確認
1. psqlで接続
psql -U postgres
2. 手動などでデータの作成を行い、反映されているか確認する。
マスタの切り替え(マスタ ⇔ スタンバイ)
1. 強制的に停止する。(確認用)
pg_ctl stop -m immediate
2. マスタに昇格する。
pg_ctl remote