这个问题适用于Cassandra 2.2
我很不好意思地说,我仍然不明白什么时候应该运行nodetool repair
,或者更准确地说是在哪个节点上。
到目前为止,我知道为了确保正确处理删除,我应该以低于的频率运行一个GC_GRACE_SECONDS
修复。所以这很酷,有那么一点。
如果我的集群有9个节点,复制因子为3,那么我应该运行哪种类型的修复?更重要的是,我是在的每个节点上运行修复,还是只运行一个节点?
问:如果我有多个数据中心,这会改变我进行维修的方式吗?我是否必须在每个DC中运行它们,还是只能从一个DC中的一个节点进行协调?
我希望这是一个微不足道的问题,有人可以告诉它是怎么回事。
发布于 2016-06-20 03:22:16
节点工具修复命令可以在指定的节点上运行,如果节点不是指定的,则可以在所有节点上运行。启动修复的节点将成为操作的协调节点。
如果节点未指定,则在负责该分区范围的所有节点上运行。
在集群中的每个节点上运行
nodetool repair -pr
来修复所有数据。否则,某些范围的数据将无法修复。
nodetool repair -pr
选项适合于跨多个数据中心进行修复。
备注: For Cassandra 2.2及更高版本,这是跨数据中心进行修复的推荐选项:使用-dcpar或-dc并行来并行修复数据中心。
发布于 2016-06-20 06:09:28
这是datastax的建议。
运行修复足够频繁,以便在达到gc_grace_seconds设置中指定的时间之前修复每个节点。如果满足此要求,将在群集中正确处理已删除的数据。
https://stackoverflow.com/questions/37921042
复制相似问题