手工切换(switchover)
# switchover
patronictl -d etcd://pg1:2379 switchover etcd-cluster-pg
patronictl -c /etc/patroni/patroni.yml switchover
# 检查
patronictl -c /etc/patroni/patroni.yml list
切换过程输出
[postgres@pg1 ~]$ patronictl -c /etc/patroni/patroni.yml switchover
Master [pgsql12_pg1]: pgsql12_pg1
Candidate ['pgsql12_pg2', 'pgsql12_pg3'] []: pgsql12_pg2
When should the switchover take place (e.g. 2020-08-01T11:42 ) [now]: now
Current cluster topology
+ Cluster: etcd-cluster-pg (6855142739579764998) ------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+-------------+---------------------+--------+---------+----+-----------+
| pgsql12_pg1 | 192.168.10.190:2020 | Leader | running | 8 | |
| pgsql12_pg2 | 192.168.10.191:2020 | | running | 8 | 0 |
| pgsql12_pg3 | 192.168.10.192:2020 | | running | 8 | 0 |
+-------------+---------------------+--------+---------+----+-----------+
Are you sure you want to switchover cluster etcd-cluster-pg, demoting current master pgsql12_pg1? [y/N]: y
2020-08-01 10:42:35.06026 Successfully switched over to "pgsql12_pg2"
+ Cluster: etcd-cluster-pg (6855142739579764998) ------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+-------------+---------------------+--------+---------+----+-----------+
| pgsql12_pg1 | 192.168.10.190:2020 | | stopped | | unknown |
| pgsql12_pg2 | 192.168.10.191:2020 | Leader | running | 8 | |
| pgsql12_pg3 | 192.168.10.192:2020 | | running | 8 | 0 |
+-------------+---------------------+--------+---------+----+-----------+
检查
最后集群状态:
总结
主库切换完成后,所有从库都成功指向新主。