无法从快照还原Cassandra数据

时间:2018-06-26 15:48:37

标签: cassandra nodetool

我们对群集进行了定期备份,并且每天将架构和快照存储在AWS s3上。

以某种方式丢失了所有数据,并且从备份中恢复数据时,我们能够恢复架构,但是在将快照文件复制到/ var / lib / cassandra / data目录中时,它不会在表中显示数据。

复制数据后,我们完成了nodetool刷新-键空间表,但是仍然无法解决问题。

您能帮忙吗?

2 个答案:

答案 0 :(得分:1)

我是Apache Cassandra的新手,但是我首先关注这个主题是备份。 如果要从快照还原(在新节点/群集上),则必须关闭任何节点上的Cassandra并清除这些文件夹中的所有现有数据:

/var/lib/cassandra/data->如果要保护系统密钥空间,请仅删除Userkeyspaces文件夹

/var/lib/cassandra/commitlog /var/lib/cassandra/hints /var/lib/cassandra/saved_cashes

此后,您必须重新启动Cassandra(整个集群)。创建要还原的键空间和要还原的表。在“快照”文件夹中,您将找到用于创建表的schema.cql脚本。

再次创建表的键空间后,请稍等片刻(时间取决于集群中节点的数量和要还原的键区)。

再次关闭Cassandra群集。

将文件从Snapshot文件夹复制到要还原的表的新文件夹中。在所有节点上执行此操作!

复制文件后,一个接一个地启动节点。

如果所有节点都在运行,请运行nodetool repair命令。

如果您尝试通过CQLSH检查数据,那么请考虑“一致性级别”! (全部/全部)

这样,就可以很好地在我的Cassandra集群上工作了。

答案 1 :(得分:0)

还原快照的一般步骤如下:

1。如果仍在运行,请关闭Cassandra。

2。清除提交日志,数据和保存的缓存目录中的所有现有数据

3。将快照复制到相关数据目录

4。将增量备份复制到数据目录(如果启用了增量备份)    如果需要,请将commitlog_archiving.properties中的restore_point_in_time参数设置为    恢复点。

5。启动Cassandra。

6。运行修复

因此,请尝试在复制数据后进行修复。