uniface.hub

ユニフェイスの開発者ブログ


Title PostgreSQL11 非同期レプリケーション
  • 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

参考文献