【参考】
https://github.com/citusdata/pg_auto_failover
https://zhuanlan.zhihu.com/p/337259025
【环境】
paf1:189
paf2:204
paf3:202
【主要流程】
hostnamectl set-hostname paf11
curl https://install.citusdata.com/community/rpm.sh | sudo bash
sudo yum install -y pg-auto-failover14_13
export PGDATA=/var/lib/pgsql/13/data
export PGHOME=/usr/pgsql-13
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/pgsql-13/bin
paf1
pg_autoctl create monitor --pgdata /var/lib/pgsql/13/data --pgport 5432 --hostname paf1 --auth trust --ssl-self-signed --run
修改pg_hba.conf
kill -3 pg进程,会自动拉起
host all autoctl_node 192.168.3.0/24 trust
paf2
pg_autoctl create postgres --hostname paf2 --auth trust --ssl-self-signed --monitor 'postgres://autoctl_node@paf1:5432/pg_auto_failover?sslmode=require' --run
paf3
pg_autoctl create postgres --hostname paf3 --auth trust --ssl-self-signed --monitor 'postgres://autoctl_node@paf1:5432/pg_auto_failover?sslmode=require' --run
杀主之后,备升为主
踩的坑
paf3用paf2复制的虚拟机,在paf3上抓包能抓到paf2的包,且到paf1抓包出不去