我有一个4节点的couchbase集群,其中3个桶各有1个副本。但是当我的一个节点在我的数据集的一部分变得无法访问时。我认为这可能是因为我有一个偶数个节点,即4(而不是说3或5),所以我失败超过1个节点。然后我继续重新平衡群集,此时它被卡住了。我在日志中唯一能找到的是Bucket "staging" rebalance does not seem to be swap rebalance
。知道如何从中恢复吗?
在我的绝望中,我也尝试更改不同存储桶的副本然后执行重新平衡。没有任何效果。这也发生过一次,那时我不得不将整个数据库转储出来并将其加载到一个全新的集群中,因为我甚至无法备份我的数据库。这次该路径不是一个选项,因为数据很关键,正常运行时间也很重要。
答案 0 :(得分:0)
Couchbase支持指出了一个错误,如果有空的vbuckets,重新平衡可能会挂起。根据他们的说法,这是固定在2.0但这不是!!!!。
解决方案的解决方案是在最短2048的短时间内生成存储桶(TTL> =(每次升级10分钟+(2 x rebalance_time))x num_nodes)项目,因此所有vbuckets都有其中的内容。然后我们成功填充了所有存储桶,并且能够重新启动完全正常的重新平衡过程。
适用于Couchbase 3.0。
参考:http://www.pythian.com/blog/couchbase-rebalance-freeze-issue/