数据中心出现故障后修复Cassandra

时间:2019-04-10 08:34:19

标签: cassandra

我有一个在AWS中运行的Cassandra数据库(版本3.11.2),有2个数据中心-每个都在另一个AWS区域中,每个中有3个节点。

所有键空间上的复制因子均为3,因此每个节点上的数据都将完全复制。每个节点的数据大小约为10GB。 我们所有的写操作都在LOCAL_QUORUM中针对一个DC(称为DC1)进行。基本上,另一个DC仅用于一种备份和灾难恢复,如果DC1的AWS区域不可用,我们会将流量重定向到DC2。

我的问题是两个DC之间的网络断开了几个小时,几天后,我们注意到DC2中缺少数据。这一切都是有道理的,因为DC分开的时间大于“提示切换”窗口(3小时)。因此,我们需要进行维修,以使DC2恢复与DC1的同步。

我查看了cassandra文档,并阅读了无数的SO答案,对于我的一生,我不知道该怎么做才是正确的维修方法... 我是否只需要从一个节点发出“ nodetool repair --full --sequential”?我是否需要在集群中的每个节点上运行它?也许最好运行“ nodetool rebuild”?

1 个答案:

答案 0 :(得分:0)

在datacenter2上的节点上执行nodetool cleanup应该能够调出要同步的数据,但是根据受影响的数据大小,这可能需要花费时间和资源。如果datacenter2仅用作灾难恢复的备份,则备份当前的dc1群集并将其还原到第二个数据中心中可能会更加轻松快捷(更多信息https://repl.it/repls/GlassNotedPayware