【发布时间】:2018-04-07 04:17:53
【问题描述】:
是否需要在所有集群节点上运行 nodetool 修复命令?
我了解此命令使用其他副本修复节点上的副本,我们需要在所有节点上运行它以获得高一致性。
【问题讨论】:
是否需要在所有集群节点上运行 nodetool 修复命令?
我了解此命令使用其他副本修复节点上的副本,我们需要在所有节点上运行它以获得高一致性。
【问题讨论】:
单个节点上的“nodetool repair”仅触发对其令牌范围与集群中其他节点的修复。您需要它在每个节点中按顺序运行,以便修复集群中的完整数据。
另外一个很好的选择/推荐是使用“nodetool repair -pr”。 “-pr”选项表示仅修复给定节点中的主要令牌范围。但同样,这需要在集群的每个 DC 中的每个节点上运行。
repair 命令仅修复正在运行的节点上的令牌范围 修复后,它不会修复整个集群。默认情况下,修复将对您正在运行修复的节点复制的所有令牌范围进行操作,如果您在每个节点上运行它,这将导致重复工作。 -pr 标志只会修复节点上的“主要”范围,因此您可以通过在单个数据中心中的每个节点上运行 nodetool repair -pr 来修复整个集群。 Reference
【讨论】: