postgresql 高可用 repmgr 的使用之十 1 Primary + 2 Standby 的 auto failover 之后失败节点 rejoin
os:ubunbu 16.04
postgresql:9.6.8
repmgr:4.1.1
192.168.56.101 node1
192.168.56.102 node2
192.168.56.103 node3
手动 rejoin
$ sudo pg_ctlcluster 9.6 main stop
$ repmgr -f /etc/repmgr.conf node rejoin -d 'host=192.168.56.103 user=repmgr dbname=repmgr connect_timeout=2' --force-rewind --dry-run --verbose
$ repmgr -f /etc/repmgr.conf node rejoin -d 'host=192.168.56.103 user=repmgr dbname=repmgr connect_timeout=2' --force-rewind --verbose
中间出错或者搞不定的话,就重新做一次 standby clone。
数据库大、网络带宽、IO不行的话,时间比较长。
$ cd /var/lib/postgresql/9.6/main
$ rm -rf ./*
$ repmgr -h 192.168.56.103 -U repmgr -d repmgr -f /etc/repmgr.conf standby clone --dry-run --verbose
$ repmgr -h 192.168.56.103 -U repmgr -d repmgr -f /etc/repmgr.conf standby clone --verbose
$ sudo pg_ctlcluster 9.6 main start
$ repmgr -f /etc/repmgr.conf standby register --upstream-node-id=3 --force --verbose
最后一步 standby register 时的 –upstream-node-id,设置为当前真实的master。
查看cluster
$ repmgr -f /etc/repmgr.conf cluster show
自动 rejoin
还不知道怎么自动rejoin,有路过哥们知道的话,指点下。