Cassandra 恢复失效的数据中心:修复还是重建

Cassandra 恢复失效的数据中心:修复还是重建,cassandra,Cassandra,我让Cassandra集群运行在两个数据中心之间,出于某种原因,一个数据中心被关闭了一段时间,现在我正计划将其恢复。我在考虑两种方法: 一个是启动该数据中心的所有Cassandra节点,并在每个节点上逐个运行“nodetool修复”。但“修复”似乎需要很长时间。以前我有在一个节点上修复6GB数据的经验,在一个节点(3个节点群集)上花了我5个小时。我现在在集群上有更多的数据,无法想象需要多长时间。 所以我在想我是否可以运行重建而不是修复。我可以删除此数据中心上的所有旧数据,并将其重建为添加新的数据

我让Cassandra集群运行在两个数据中心之间,出于某种原因,一个数据中心被关闭了一段时间,现在我正计划将其恢复。我在考虑两种方法: 一个是启动该数据中心的所有Cassandra节点,并在每个节点上逐个运行“nodetool修复”。但“修复”似乎需要很长时间。以前我有在一个节点上修复6GB数据的经验,在一个节点(3个节点群集)上花了我5个小时。我现在在集群上有更多的数据,无法想象需要多长时间。 所以我在想我是否可以运行重建而不是修复。我可以删除此数据中心上的所有旧数据,并将其重建为添加新的数据中心。但不确定它是否有效以及性能如何


有什么想法吗?如有任何建议,将不胜感激。提前谢谢

如果数据中心停机超过10天,则重建是唯一的选择。这与我们的计划有关。我不能100%确定这在不同的数据中心中是如何工作的,但是如果您的服务器停机超过10天,那么在live server中删除的任何数据都会被删除并保留10天,然后完全删除。如果所有被关闭的服务器突然从睡眠中唤醒,并且所有被删除的数据都没有被删除,那么它将通过读修复或常规修复操作重新填充回环路

另一件要考虑的事情是,自从数据中心宕机以来,有多少数据已经改变/删除了。如果很多,那么重建工作显然就少了。如果没有,那么维修速度可能会更快

您可以创建另一个数据中心,使用
auto_bootstrap:false向其中添加节点,然后运行
nodetool rebuild


祝你好运

嗨,Roman,我也遇到了同样的问题,我运行了rebuild命令,但同步数据的速度太慢了,有没有办法更快地同步数据。因为我在每个节点上都有大约50GB的数据(3节点集群,带有R.F.2)。我已经停止插入新数据,但同步速度太慢。