从失败的Cassandra引导程序中恢复的过程

时间:2017-06-13 02:42:20

标签: cassandra bootstrapping recovery

场景:新节点已添加到Cassandra群集中。节点被闲聊,分配了令牌范围,但错误的是Cassandra通过" service stop cassandra"在从同伴开始任何流媒体之前。我们也从未在UJ状态下看到该节点。在此节点重新启动后,我们在UN模式下看到它并且提交日志文件正在增长,但数据目录中的数据不多。其中一个KS上有RF = 1。

问题:从中恢复的最佳程序是什么?关注的问题不是从RF = 1密钥空间中丢失数据,而是确保数据流到新节点的工作正常。

1 个答案:

答案 0 :(得分:0)

您可以通过两种方式添加新节点:

  1. 将新节点的auto_bootstrap设置为true并加入群集
  2. 将新节点的auto_bootstrap设置为false并加入群集。手动执行修复以流式传输数据并更正节点中的副本。
  3. 添加新节点后。您的旧节点也会有旧令牌和一些旧数据,只有在成功添加新节点后在旧节点上进行清理后才会删除它们。

    在你的情况下,你错误地在中间停止了新节点。因此,您可以按照以下步骤更正副本并检查您的nodetool状态以检查负载是否已分配到新节点:

    1. 进行全面修复。 (如果是Cassandra 2.2及以上版本,则默认情况下会进行增量修复。请检查并进行全面修复,不进行增量修复)
    2. 检查节点工具状态数据是否已流式传输,负载是否已分配到新节点