Cassandra的两种数据恢复方式
事前准备
- 事前准备好Snapshot文件
- 事前准备好的Snapshot文件解压并放到合适的位置(如:
{...}\{keyspace}\{tablename}
)
做法
参考官方文档:Restoring from a snapshot
下面就简单的介绍一下两种的做法,这两种方法都是针对单各表进行恢复的办法,虽然有点麻烦但是目前还不知道批量恢复的方法。
(一)通过本地文件恢复
首先介绍第一种做法,通过本地文件恢复,简单的说就是,将准备好的Snapshot文件解压放到各个Node的相应数据目录下,再重新启动就可以了。
这个方法非常的简单,比较使用雨集群规模相对比较小的情况的快速恢复。
-
需要提前确认Table Schema是否已经存在了,也就是说表是不是提前建好了,没有建需要先建好。因为Cassandra的恢复只能在表已经存在的前提下可以实施,原因当然是这种恢复做法本来就是把数据文件放回表对应的数据目录,如果表不存在的话,目录当然也就不存在的。
-
根据情况可能需要丢弃部分数据
注:在特定情况下,可能需要丢弃部分数据,原因是如果数据节点在出现故障之后,又重新启动并读