微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

patroni启动,提示waiting for leader to bootstrap

patroni集群第一次初始化失败,再次使用原来的配置尝试初始化,查看信息,不同节点都显示一个信息:waiting for leader to bootstrap

#  systemctl status  patroni.service
● patroni.service - Postgresql high-availability manager
   Loaded: loaded (/usr/lib/systemd/system/patroni.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2020-02-22 17:41:50 CST; 11s ago
 Main PID: 3104 (python3.6)
    Tasks: 5
   CGroup: /system.slice/patroni.service
           └─3104 python3.6 /opt/app/patroni/bin/patroni /opt/app/patroni/etc/postgresql.yml

Feb 22 17:41:50 docker02 systemd[1]: Started Postgresql high-availability manager.
Feb 22 17:41:50 docker02 systemd[1]: Starting Postgresql high-availability manager...
Feb 22 17:41:50 docker02 patroni[3104]: 2020-02-22 17:41:50,916 INFO: Selected new etcd server http://11.11.11.250:2379
Feb 22 17:41:50 docker02 patroni[3104]: 2020-02-22 17:41:50,928 INFO: No Postgresql configuration items changed, nothing to reload.
Feb 22 17:41:50 docker02 patroni[3104]: 2020-02-22 17:41:50,935 INFO: Lock owner: None; I am pg01
Feb 22 17:41:50 docker02 patroni[3104]: 2020-02-22 17:41:50,937 INFO: waiting for leader to bootstrap
Feb 22 17:42:00 docker02 patroni[3104]: 2020-02-22 17:42:00,934 INFO: Lock owner: None; I am pg01
Feb 22 17:42:00 docker02 patroni[3104]: 2020-02-22 17:42:00,939 INFO: waiting for leader to bootstrap

  

原因:
etcd保留了集群的初始化信息(键:/service/$CLUSTER_NAME/initialize)。该键存在后,patroni就不会再次执行initdb。而是尝试再次引导已经存在的节点。

 

解决方法
1.使用patronictl手动移除etcd中的/service/$CLUSTER_NAME/initialize
2.设置一个新的cluster name后从新引导

 

以下是手动移除的过程:

# patronictl -c /opt/app/patroni/etc/postgresql.yml  list
+---------+--------+--------------+------+---------+----+-----------+
| Cluster | Member |     Host     | Role |  State  | TL | Lag in MB |
+---------+--------+--------------+------+---------+----+-----------+
|  batman |  pg01  | 11.11.11.111 |      | stopped |    |   unkNown |
+---------+--------+--------------+------+---------+----+-----------+
# patronictl -c /opt/app/patroni/etc/postgresql.yml  remove batman
+---------+--------+--------------+------+---------+----+-----------+
| Cluster | Member |     Host     | Role |  State  | TL | Lag in MB |
+---------+--------+--------------+------+---------+----+-----------+
|  batman |  pg01  | 11.11.11.111 |      | stopped |    |   unkNown |
+---------+--------+--------------+------+---------+----+-----------+
Please confirm the cluster name to remove: batman
You are about to remove all @R_546_4045@ion in DCS for batman, please type: "Yes I am aware": Yes I am aware

  

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐