我有一台服务器,我现在想要复制并获得更高的可用性。如果是Zookeeper,我的软件堆栈中的一个元素,所以在它上面进行集群配置似乎很自然。
但是,我的单台服务器上有数据,而且找不到任何有关进入群集设置的指南。我尝试设置两个独立的实例,然后进入集群配置,但只保留了当选主服务器上的数据。
那么,如何在不丢失数据的情况下安全地从单个服务器设置转到群集设置?
答案 0 :(得分:2)
如果从1台服务器直接转到3台服务器,您可能会丢失数据,因为2台新服务器足以形成法定人数,并选择其中一台作为领导者,忽略旧服务器,并丢失所有数据那台机器。
如果将群集从1增加到2,则当两台服务器启动时,如果不涉及旧服务器,则无法形成仲裁,并且数据不会丢失。群集完成启动后,所有数据都将同步到两个服务器。
然后,您可以将群集从2增加到3,并且如果没有至少1个具有数据库副本的服务器,则不能再形成仲裁,并且当群集完成启动时,所有数据将再次同步到所有三个服务器