集群一个节点挂掉,原因是磁盘故障。经过IT人员抢修,服务器起来了,但是因为磁盘故障,Cassandra数据全部丢失。这种情况下,怎么重建该节点上的数据?两种方案。
一:使用替换指令。好比一台全新的机器替换老的机器,使用原来的IP。方法是在启动Cassandra命令里添加replace_address参数。
二:设置bootstrap=false,启动节点,然后运行repair指令同步数据。
方案一注意事项:
执行前删除下列文件夹及内容:
- data/
- commitlog/
- saved_caches/
节点成功加入集群后,记得从cassandra-env.sh里删除replace_address指令,否则,下次启动会失败。也可以用replace_address_first_boot替代replace_address,这样就不需要事后删除指令了。
方案二据说有很多问题,副作用比较多,不建议使用。
网友评论