处于暂停模式的备用集群无法从已清除的 DCS 中恢复
作者: mbanck-cd创建于 2025年2月12日更新于 2026年9月16日
标签bug
如果主集群处于维护模式,并且 DCS 已被清除(例如,因为有人决定从 etcd 迁移到 etcd3),则在下一次 HA 循环中,它会重新写入 /leader、/initialize 和 /config 关键字到 DCS(与 /members 关键字一起),并重新获取领导锁:
Feb 12 10:34:27 pg2 patroni@15-example_cluster[6738]: 2025-02-12 10:34:27,500 INFO: PAUSE: no action. I am (pg2), the leader with the lock
Feb 12 10:34:29 pg2 systemd[1]: Stopping patroni@15-example_cluster.service - Patroni instance 15-example_cluster...
Feb 12 10:34:30 pg2 patroni@15-example_cluster[6738]: 2025-02-12 10:34:30,167 INFO: Leader key is not deleted and PostgreSQL is not stopped due paused state
Feb 12 10:34:30 pg2 systemd[1]: patroni@15-example_cluster.service: Deactivated successfully.
[...]
Feb 12 10:34:30 pg2 systemd[1]: Started patroni@15-example_cluster.service - Patroni instance 15-example_cluster.
Feb 12 10:34:30 pg2 patroni@15-example_cluster[10747]: 2025-02-12 10:34:30,586 INFO: Selected new etcd server http://10.0.3.51:2379
Feb 12 10:34:30 pg2 patroni@15-example_cluster[10747]: 2025-02-12 10:34:30,598 INFO: No PostgreSQL configuration items changed, nothing to reload.
Feb 12 10:34:30 pg2 patroni@15-example_cluster[10753]: /var/run/PostgreSQL/:5432 - accepting connections
Feb 12 10:34:30 pg2 patroni@15-example_cluster[10747]: 2025-02-12 10:34:30,615 INFO: establishing a new patroni heartbeat connection to postgres
Feb 12 10:34:30 pg2 patroni@15-example_cluster[10747]: 2025-02-12 10:34:30,623 INFO: Changed archive_mode from 'on' to 'True' (restart might be required)
Feb 12 10:34:30 pg2 patroni@15-example_cluster[10747]: 2025-02-12 10:34:30,632 INFO: Reloading PostgreSQL configuration.
Feb 12 10:34:30 pg2 patroni@15-example_cluster[10757]: server signaled
Feb 12 10:34:31 pg2 patroni@15-example_cluster[10747]: 2025-02-12 10:34:31,797 INFO: PAUSE: acquired session lock as a leader
Feb 12 10:34:41 pg2 patroni@15-example_cluster[10747]: 2025-02-12 10:34:41,842 INFO: PAUSE: no action. I am (pg2), the leader with the lockpatronictl:
root@pg2:~# patronictl -c /etc/patroni/15-example_cluster.yml list
+ Cluster: 15-example_cluster (7470460811060857477) ---------+
| Member | Host | Role | State | TL | Lag in MB |
+--------+------------+---------+-----------+----+-----------+
| pg1 | 10.0.3.229 | Replica | streaming | 1 | 0 |
| pg2 | 10.0.3.192 | Leader | running | 1 | |
+--------+------------+---------+-----------+----+-----------+
维护模式: on
etcdctl 输出:
/PostgreSQL-common/15-example_cluster/config {"ttl":30,"loop_wait":10,"retry_timeout":10,"maximum_lag_on_failover":1048576,"slots":{"standby_cluster" :{"cluster_type":"primary","type":"physical"}},"PostgreSQL":{"create_replica_methods":["pgbackrest","pg_ clonecluster"],"use_pg_rewind":true,"pgbackrest":{"command":"/usr/bin/pgbackrest --stanza=15-example_clu ster --log-level-file=info --delta …
内容来源: patroni/patroni