如何定期修复集群,-local或-pr逐个

jv4diomz  于 2021-06-15  发布在  Cassandra
关注(0)|答案(1)|浏览(243)

我不知道如何修复Cassandra集群。
下面的命令修复本地数据中心的所有节点? nodetool repair -local -j 4 所以,我不用跑了 nodetool repair -pr -j 4 在所有节点上一个接一个?

dzjeubhm

dzjeubhm1#

跑步 nodetool repair 在单个节点上执行以下操作:节点通过联系其他也负责此数据的节点来修复其持有的所有数据。它不会修复此节点不负责的数据。
没有vnode的一个非常简单的例子是:
假设您有三个节点(a、b和c),最低的复制是两个。如果对a运行修复,它将对a和b有共同点的数据以及a和c有共同点的数据运行修复。但是它不会修复只存储在b和c上的数据。
在本例中,在两个节点上运行修复将确保您已经修复了所有内容。
-pr和-local标志
pr标志进一步改变了这种行为。而不是修复ab和ac。您只修复a主要负责的数据。在这种情况下,您需要分别修理b和c。这样可以确保不会两次修复相同的数据。
-本地将确保修复仅修复同一数据中心中的节点。b在另一个数据中心,它将被忽略,以便进行修复。
我建议在每个节点上逐个运行-pr。这将避免多次修复相同的数据,并将其分解为更小的可消化块。

相关问题