如何修复 Cassandra 节点

How to repair cassandra nodes

我有一个带有两个数据中心的 cassandra 集群。 在数据中心 2 中,我有一个复制因子为 3 的键空间。 我想修复数据中心 2 中的所有键空间。 我试过 运行:

nodetool repair --in-local-dc --full -j 4

但是这个命令不会修复所有的键空间。有人知道这是否是预期行为吗? Cassandra 日志没有显示任何问题

所以我在指定源 DC 时也遇到了多 DC 修复的问题。我不知道那些特定于 DC 的修复标志是否有问题,但我发现确保只有特定节点参与修复的最好方法是指定每个节点。

nodetool repair keyspace_name  -hosts 10.6.8.2 -hosts 10.6.8.3 -hosts 10.6.8.1
    -hosts 10.6.8.5 -hosts 10.6.8.4 -hosts 10.1.3.1 -full

请注意,我的目标是 运行 在通过 SSH 进入 10.1.3.1 时进行此修复。您 运行 在 上进行修复的节点必须 也用 -hosts 标志指定。还要确保列出了源 DC 中的每个节点,否则您将收到有关缺少源令牌范围的错误。

尝试一下,看看是否有帮助。