代码之家  ›  专栏  ›  技术社区  ›  Fontaine007

Cassandra表状态显示完全修复后修复率为0.0%

  •  0
  • Fontaine007  · 技术社区  · 6 年前

    我有一个由4个节点组成的C*3.11集群,RF是3。在我跑完一辆 nodetool repair -full ks1 tb1 ,命令窗口显示

    Starting repair command #18 (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx), repairing ks1 with repair options (parallelism: parallel, primary range: false, incremental: false, job threads: 1, ColumnFami lies: [device], dataCenters: [], hosts: [], # of ranges: 404, pull repair: false)

    以及

    [2018-01-01 01:25:57,730] Repair completed successfully [2018-01-01 01:25:57,734] Repair command #18 finished in 29 seconds

    所以我想修理成功了。尽管如此,当我检查 nodetool tablestats ks1.tb1 ,命令窗口显示

    Percent repaired: 0.0

    根据表格的不同,结果可能是 Percent repaired: 100.0 Percent repaired: 70.0 还有很多节目 修复百分比:0.0

    我错过了什么?

    1 回复  |  直到 6 年前
        1
  •  4
  •   Chris Lohfink    6 年前

    修复百分比度量用于增量修复。增量修复有2套sstables。已修复和未修复。一旦sstable被修复,它将被移动到修复的集合中,并且不再参与将来的修复。当您将--full指定为不使用增量而是子范围修复时,在某些情况下仍然需要使用子范围修复来修复某个范围内的整个数据集,而不管它以前是否被修复过。示例场景是非本地DC中1台主机上的磁盘故障,因此请修复以从备份中更新替换内容,或者单个节点超过暗示的切换窗口等。