#◆概要
PostgreSQL12.5でDB2台の非同期レプリケーションの設定をする
##前提
2台のサーバにインストール済み。
マスタ:192.168.11.110
スタンバイ:192.168.11.111
#1.マスター側ホストの設定
##postgresql.confの設定
vi /var/lib/pgsql/data /postgresql.conf
59行目:コメント解除して変更
listen_addresses = '*'
193行目:コメント解除 レプリケーションを有効にする
wal_level = replica
198行目:コメント解除 スタンバイサーバーの同期レベルを設定
synchronous_commit = on
286行目:コメント解除 レプリケーションリクエストを受ける接続最大値
max_wal_senders = 10
288行目:コメント解除して変更 アーカイブログのファイルセグメント数の最小値
wal_keep_segments = 10
300行目:コメント解除して変更 同期サーバを指定なし(全て受付)にする。
synchronous_standby_names = '*'
##pg_hba.conf設定
最終行にレプリケーション用サーバの許可を指定する
vi /var/lib/pgsql/data /pg_hba.conf
最終行:既存設定はコメント化して追記 (接続許可の設定) スタンバイサーバのIPとユーザを記載する
# host replication [レプリケーションユーザー] [接続許可IP] [認証方式]
#host replication all 127.0.0.1/32 ident
#host replication all ::1/128 ident
host replication rep_user 192.168.11.111/32 md5
##レプリケーション用ユーザ作成。
スタンバイサーバからログインするユーザ
レプリケーション権限とログイン権限を付与する
su – postgres
psql
CREATE ROLE rep_user replication LOGIN;
\q
exit
##DB再起動
systemctl restart postgresql.service
起動しない場合は、設定ファイルを再確認すること
#2.スレーブ側ホストの設定
・サービス停止
systemctl stop postgresql.service
・既存データを削除。–rf ディレクトリを対象、メッセージ非表示
rm -rf /var/lib/pgsql/data
・マスタからバックアップ取得。実行するユーザに注意
su - postgres
pg_basebackup -R -h 192.168.11.110 -U rep_user -D /var/lib/pgsql/data -P
・スレーブ用ファイルを配置 これが無いとマスタで起動する
touch /var/lib/pgsql/data/standby.signal
##・postgresql.confの設定
vi /var/lib/pgsql/data/postgresql.conf
# 59行目:コメント解除して変更 接続できるアドレス
listen_addresses = '*'
#310行目 スタンバイサーバがプライマリサーバに接続するための接続文字列を指定
primary_conninfo = 'host=192.168.11.110 port=5432 user=rep_user application_name=node01'
# 315行目:コメント解除 ホットスタンバイを有効にする
hot_standby = on
#ホットスタンバイのフィードバックを有効にする。なくてもよさそう
hot_standby_feedback = on
再起動する
systemctl start postgresql-12.service
マスタ側でデータ投入して反映確認する
以上
★更新履歴
21/4/14 新規作成
24/12/31 微修正