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