【发布时间】:2017-05-17 15:30:45
【问题描述】:
一个 Apache Cassandra 节点在复制因子为 3 的 3 节点集群中运行。所有配置均正确。 Cassandra 版本是 2.1.8。
让我们假设数据在逻辑上已无法修复,这意味着它无法通过常用工具(擦洗/修复)恢复。
节点处于正常状态。
考虑通过从在 cassandra.yaml 中注册的种子节点流式传输来恢复节点的场景(而不是用另一个节点替换该节点):
如果我删除该节点上的顶级数据目录(包括 commitlog、data、hints 和 saved_caches 目录)并启动服务会怎样?节点是否会从那时起优雅地恢复,我可以运行 nodetool repair 将最旧的数据放入节点吗?
如果我启动服务并运行 nodetool rebuild 是否合适且足以解决问题?
如果以上都不是最佳实践,是否是停用节点并使其重新加入集群的解决方案?
【问题讨论】: