Fedora 39 PostgreSQL 15 ストリーミングレプリケーションの設定方法

環境
Fedora release 39 (Thirty Nine)
PostgreSQL 15.4

操作方法
1.プライマリー側ノードの設定方法
# vi /var/lib/pgsql/data/postgresql.conf

# 60行目 : コメント解除して変更
listen_addresses = '*'
# 205行目 : コメント解除
wal_level = replica
# 210行目 : コメント解除
synchronous_commit = on
# 308行目 : コメント解除 (レプリケーションリクエストを受ける接続最大値)
max_wal_senders = 10
# 322行目 : コメント解除して変更する
synchronous_standby_names = '*'

2.接続許可の設定を行います
# vi /var/lib/pgsql/data/pg_hba.conf

最終行に追記 (接続許可の設定)

# host replication [レプリケーションユーザー] [接続許可IP] [認証方式]
host replication rep_user 10.0.0.51/32 scram-sha-256
host replication rep_user 10.0.0.52/32 scram-sha-256

3.レプリケーション用ユーザーを作成する

postgres@localhost ~]$ createuser --replication -P rep_user
新しいロールのためのパスワード:
もう一度入力してください:
$ exit
ログアウト
# systemctl restart postgresql

4.レプリカ側ノードの設定を行います
サービスを停止して既存データを削除する

# systemctl stop postgresql
# rm -rf /var/lib/pgsql/data/*

プライマリー側のデータバックアップを取得する

# su - postgres
$ pg_basebackup -R -h www.arkgame.com -U rep_user -D /var/lib/pgsql/data -P
Password: # レプリケーション用ユーザーのパスワード
$ exit

hot_standbyを有効にする
# vi /var/lib/pgsql/data/postgresql.conf

# 60行目 : コメント解除して変更
listen_addresses = '*'
# 335行目 : コメント解除
hot_standby = on

postgresqlを再起動します

# systemctl start postgresql

5.全ノードで、Firewalld を有効にしている場合は、サービスを許可します

# firewall-cmd --add-service=postgresql
success
# firewall-cmd --runtime-to-permanent
success

6.プライマリー側で SQL 実行し、以下の結果を返します

$ psql -c "select usename, application_name, client_addr, state, sync_priority, sync_state from pg_stat_replication;"

 

Fedora 39

Posted by arkgame