我们有6个节点cassandra集群。我们使用的是cassandra版本2.2.8。我是团队的新成员,也是Cassandra的新成员。我现在拥有的cassandra集群没有太多关于上次修复运行时间等的知识。我在几周前替换了一个死节点,现在希望在整个集群上运行nodetool修复。我看到在“nodetool repair-pr”节点之一上运行了一个cron作业。我有两个问题。我已经搜索了这些主题,但没有找到明确的答案。
问题1:我应该运行哪个命令来对集群运行完全修复?如果“nodetool repair-pr”每天都在一个节点上运行,那么运行完全修复是否会产生任何后果(我将停止cron作业“nodetool repair-pr,当我启动全面修复时)。
问题2:我在网上看到“nodetool repair-pr”需要在每个节点上运行?我的答案不一。我使用的是cassandra2.2.8,那么它真的需要在所有节点上分别运行吗?或者在一个节点上运行这个cron将在整个集群中运行它?
我期待着运行修复今天有一个更轻的负载在我们的集群在周末。我将感谢您的快速反馈!
2条答案
按热度按时间unhi4e5o1#
在每个节点上逐个运行完全修复作为nodetool repair。禁用crone作业,因为nodetool repair-pr repair only primary ranges。修复所需时间取决于数据库大小。
qxgroojn2#
注意增量修复(cassandra2.2和更高版本中的默认值)有一些问题。建议的解决方案是使用像cassandra reaper这样的工具来协调您的修复工作,使其完成全部子范围。
http://thelastpickle.com/blog/2017/12/14/should-you-use-incremental-repair.html
http://cassandra-reaper.io/