Couchbase 3.0重新平衡卡滞

Couchbase 3.0重新平衡卡滞,couchbase,Couchbase,我有一个4节点的couchbase集群,其中3个bucket,每个bucket有一个副本。但是,当我的一个节点关闭时,数据集的一部分变得不可访问。我想这可能是因为我有偶数个节点,即4个,而不是3或5个,因此我在1个节点上失败了。然后,我继续重新平衡集群,在这一点上,它被卡住了。我能在日志中找到的唯一一件事是Bucket staging再平衡似乎不是交换再平衡。你知道如何从中恢复过来吗 在绝望中,我还尝试更改不同存储桶的副本,然后执行重新平衡。什么都没用。这种情况以前也发生过一次,当时我不得不将整

我有一个4节点的couchbase集群,其中3个bucket,每个bucket有一个副本。但是,当我的一个节点关闭时,数据集的一部分变得不可访问。我想这可能是因为我有偶数个节点,即4个,而不是3或5个,因此我在1个节点上失败了。然后,我继续重新平衡集群,在这一点上,它被卡住了。我能在日志中找到的唯一一件事是Bucket staging再平衡似乎不是交换再平衡。你知道如何从中恢复过来吗


在绝望中,我还尝试更改不同存储桶的副本,然后执行重新平衡。什么都没用。这种情况以前也发生过一次,当时我不得不将整个数据库转储到一个全新的集群中,因为我甚至无法备份数据库。这一次,该路径不是一个选项,因为数据至关重要,正常运行时间也很重要。

Couchbase支持指出了一个错误,即如果存在空vbuckets,则重新平衡可能会挂起。根据他们的说法,这在2.0中是固定的,但事实并非如此!!!!。 变通解决方案是使用最少2048个短生存时间TTL>=每次升级10分钟+2个重新平衡时间x数量节点项来填充存储桶,以便所有VBucket中都有一些内容。然后,我们成功地填充了所有存储桶,并能够重新启动重新平衡过程,该过程完成得很好

这适用于Couchbase 3.0


参考资料:

首先,不需要奇数或偶数个节点,3是建议的最小值,但对拓扑没有实际约束。在尝试重新平衡以重新添加故障转移节点之前,您是否尝试过在移除故障转移节点的情况下使用3个节点重新平衡集群?实际上,我就是这么做的。我删除了第4个节点,并在3个节点之间重新平衡。这是它卡住的时候。然后我做了很多徒劳的尝试,试图把它解开。这包括更改副本计数以及添加回故障节点。他们都没有工作。我考虑过但没有尝试的唯一组合是禁用所有副本,然后重新平衡,然后添加更多副本,然后再次重新平衡。我担心可能会丢失数据,所以我还没有尝试过。听起来你需要向Couchbase团队提出一个问题。转到听起来您需要与Caouchbase核心团队记录缺陷。转到并记录缺陷以获取版本。3.你所描述的应该是有效的…所以他们最好设法解决这个问题。我创建了一个由单个节点组成的新集群,然后执行XCDR将所有现有集群数据传输到新节点。之后,我重新启动了我的应用程序以使用新集群,然后我从旧集群中逐个删除了每个节点,并将其添加到新集群中。我设法做到了,没有停机。我还将在couchbase的问题跟踪器上提出一个关于这种行为的问题。