【问题标题】:Do we need to run the nodetool repair on every node in the cluster ?我们需要在集群中的每个节点上运行 nodetool repair 吗?
【发布时间】:2018-04-07 04:17:53
【问题描述】:

是否需要在所有集群节点上运行 nodetool 修复命令?

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

【问题讨论】:

    标签: cassandra nosql


    【解决方案1】:

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

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

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

    【讨论】:

    • 还请注意,您不能同时在多个节点上运行修复。您需要在集群中的所有节点上按顺序运行修复。
    猜你喜欢
    • 2019-03-18
    • 2018-12-10
    • 2017-12-09
    • 1970-01-01
    • 2022-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    相关资源
    最近更新 更多