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;"