从 Cassandra 的多 DC 集群中删除 DC

Removing DC from multi DC cluster in Cassandra

我有两个数据中心站点(dc1 和 dc2)。我正在写 dc1 上的复制 3 (dc1:3, dc2:3)。 dc2 是不占用流量的备份站点。我将 dc2 的所有节点升级到 C* 版本 3.11.2。 dc1 的节点位于 C* 版本 2.1.16 上。现在由于某些问题,我必须回滚我的升级。我有两个选择

  1. 数据备份还原完整站点(dc1和dc2)-会造成大量数据丢失。

  2. 使用给定的步骤 here.

    从 dc1 中删除 dc2

在混合 C* 版本的情况下删除站点 (dc2) 是否有任何问题?

如果是我,我会:

  1. 从复制中取出 DC2。
  2. 关闭 DC2 上的节点。
  3. 删除 nodes/assassinate 个。
  4. 完全卸载 C*。
  5. 擦除所有data/logs/configuration的节点。
  6. 安装 C* 并重新配置。
  7. 将节点添加到新的 DC。

这意味着不必从备份中恢复就不会丢失数据。干杯!

是的,第二个选项似乎不错,您可以安全地恢复数据。您应该从现有集群中删除 DC2 数据中心。正如你所说的DC2上没有流量,所以可以很容易地进行添加和删除操作。

您需要按照以下步骤操作。

  1. 更改键空间的复制因子。

  2. 停止 DC2 上的 Cassandra 服务。

  3. 如果出现问题,您可以通过 nodetool removenode 命令从现有集群中删除节点,您可以使用 assassinate。

  4. 一旦节点从集群中一个一个地移除,您需要在那里卸载 Cassandra。

  5. 完全删除已删除节点上的现有数据。

  6. 然后,你需要根据之前的配置在那里安装新的 Cassandra,你可以参考现有集群的配置文件,或者你在 2.1.16

    上备份你的配置
  7. 现在,您需要在集群上再次添加您的数据中心。

通过这种方式,您可以轻松快速地获取您的数据中心和数据。

此外,您可以参考此处的文档以解决任何混淆 https://docs.datastax.com/en/dse/5.1/dse-admin/datastax_enterprise/operations/opsAddDCToClusterDesigDC.html