0

我有一个 CouchDB 集群,在 3 个节点(n=3)上运行 9 个分片。我关闭了运行节点的三个实例,并使用新的内部 IP 地址创建了 3 个新实例。在此之后,我收到数据库的“数据库加载失败”错误。

我开始阅读有关移动分片的信息,并且我知道从 2.1.0 到 2.1.1 的变化(如本问题所回答)。

在尝试解决此问题时,我修改了其中一个节点的数据副本以尝试调整 _dbs 元数据。但是,我认为我只是把元数据弄得一团糟。

我在想,为了解决这个问题,我可以:

  1. 更改其中一个节点的 IP 地址以匹配旧 IP 地址。

  2. 仅在此实例上使用数据的原始副本启动集群。

  3. 告诉 CouchDB 从集群中删除关于两个非功能节点的 _membership 信息。

  4. 使用新 IP 地址将两个新节点添加到集群。

...然后集群可能会将分片从一个节点同步到所有三个节点,并且一切都会正常工作?

仍在尝试弄清楚 CouchDB 2.1.1 集群是如何工作的,因此对 CouchDB 文档之外的任何信息表示赞赏。

4

0 回答 0