我正在运行一个集群,其中包含1个数据中心(6个节点),每个节点上安装了Cassandra3.11.0,复制因子为2。我知道nodetool repair -pr将对该节点上的主范围进行修复。我的问题是,nodetool repair -pr -full和nodetool repair -pr有什么不同?
在大负荷生产系统中,我应该使用哪种维修方案?
发布于 2021-03-22 13:26:27
我的问题是
nodetool repair -pr -full和nodetool repair -pr有什么不同?
因此,“完全”修复意味着源节点和目标节点之间的所有数据都将被验证和修复。本质上,它与"增量式“修复截然相反,后者只修复了一部分数据。这两个选项控制修复了多少数据。
一旦确定了这一点(增量还是完全),-pr将在该子集上运行,然后才会修复主副本。
此外,-full是Cassandra3的缺省值;这将使-pr和-pr -full基本上相同。
在大负荷生产系统中,我应该使用哪种维修方案?
我将支持Alex所说的话,并为此推荐卡桑德拉收割机。它具有为较慢的时间安排修理的能力,以及允许您暂停未及时完成的修理。
发布于 2021-03-22 07:05:23
对于生产系统,最好使用令牌范围修复(使用-st/-et选项)来限制节点的负载。手工操作可能很繁琐,但它可以通过收割机之类的工具实现自动化,跟踪哪些令牌范围已经修复,哪些没有修复。
发布于 2021-06-25 13:50:16
它建议不要使用-PR选项执行增量修复。它将跳过未修复的非主副本,从长远来看不是一个好的实践!!
https://stackoverflow.com/questions/66739653
复制相似问题