我们对群集进行了定期备份,并且每天将架构和快照存储在AWS s3上。
以某种方式丢失了所有数据,并且从备份中恢复数据时,我们能够恢复架构,但是在将快照文件复制到/ var / lib / cassandra / data目录中时,它不会在表中显示数据。
复制数据后,我们完成了nodetool刷新-键空间表,但是仍然无法解决问题。
您能帮忙吗?
答案 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。运行修复
因此,请尝试在复制数据后进行修复。