这个问题适用于Cassandra 2.2
我很尴尬地说,我仍然不明白我什么时候应该运行一个nodetool repair,或者更准确地说哪个节点.
到目前为止,我知道为了确保正确处理删除,我应该以低于的频率运行修复GC_GRACE_SECONDS.所以这很酷.
问:如果我有一个9个节点的集群,复制因子为3,我运行什么类型的修复?更重要的是,我是在每个节点上运行修复,还是只在一个节点上运行?
问:如果我有多个数据中心,这是否会改变我运行维修的方式.我是否必须在每个DC中运行它们,还是可以从一个DC中的一个节点进行协调?
我希望这是一个微不足道的问题,有人可以告诉它是怎么回事.
如果未指定节点,则可以在指定节点或所有节点上运行nodetool repair命令。启动修复的节点成为操作的协调器节点。
如果未指定节点,它将在负责该分区范围的所有节点上运行。
nodetool repair -pr在群集中的每个节点上运行以修复所有数据。否则,某些范围的数据将无法修复
该nodetool repair -pr选件非常适合跨多个数据中心进行维修。
注意:对于Cassandra 2.2及更高版本,建议使用跨数据中心进行修复的选项:使用-dcpar或--dc-parallel并行修复数据中心。