PostgreSQL15 ストリーミングレプリケーションの設定方法
環境
Ubuntu 23.04
PostgreSQL 15
操作方法
1.プライマリー側ノードの設定を行います
# vi /etc/postgresql/15/main/postgresql.conf
1) 60行目 コメント解除して変更 listen_addresses = '*' 2) 205行目 コメント解除 wal_level = replica
3) 210行目 コメント解除 synchronous_commit = on 4) 308行目 コメント解除 (レプリケーションリクエストを受ける接続最大値) max_wal_senders = 10 5).322行目 コメント解除して変更 synchronous_standby_names = '*'
2.接続許可の設定を行います
1).host replication [レプリケーションユーザー] [接続許可IP] [認証方式]
host replication rep_user 10.0.0.31/32 scram-sha-256 host replication rep_user 10.0.0.51/32 scram-sha-256
3. レプリケーション用ユーザーを作成する
# su - postgres $ createuser --replication -P rep_user Enter password for new role: # 任意のパスワード設定 Enter it again: $ exit
postgresqlを再起動します
# systemctl restart postgresql
4.レプリカ側ノードの設定を行います
1). サービスを停止して既存データは削除
root@node01:~# systemctl stop postgresql root@node01:~# rm -rf /var/lib/postgresql/15/main/*
2).プライマリー側のデータバックアップを取得する
root@node01:~# su - postgres postgres@node01:~$ pg_basebackup -R -h www.arkgame.com -U rep_user -D /var/lib/postgresql/15/main -P Password: # レプリケーション用ユーザーのパスワード postgres@node01:~$ exit
# vi /etc/postgresql/15/main/postgresql.conf
# 60行目 : コメント解除して変更 listen_addresses = '*' # 335行目 : コメント解除 hot_standby = on
# systemctl start postgresql
5.プライマリー側で SQL 実行します。 プライマリー側データベースを作成する等してレプリケーションが行われています
$ psql -c "select usename, application_name, client_addr, state, sync_priority, sync_state from pg_stat_replication;"