我们是否需要在集群中的每个节点上运行nodetool修复?

时间:2018-04-04 08:41:36

标签: cassandra nosql

是nodetool repair命令需要在所有集群节点上运行吗?

我知道此命令在具有其他副本的节点上修复副本,我们需要在所有节点上运行它以获得高一致性。

1 个答案:

答案 0 :(得分:2)

单节点上的“nodetool repair”仅触发与其集群中其他节点的令牌范围的修复。您需要它按顺序在每个节点中运行,以便修复集群中的完整数据。

另一个好的选择/建议是使用“nodetool repair -pr”。 “-pr”选项表示仅修复给定节点中的主要范围的令牌。但同样需要在集群的每个DC中的每个节点上运行。

  

repair命令仅修复节点上的令牌范围   修复后,它不会修复整个集群。默认情况下,修复将对正在运行修复的节点复制的所有令牌范围进行操作,如果在每个节点上运行它,将导致重复工作。 -pr标志仅修复节点上的“主”范围,因此您可以通过在单个数据中心的每个节点上运行nodetool repair -pr来修复整个集群。 Reference