在开发人员或测试集群(1节点集群)上恢复Cassandra快照(来自3节点集群)

时间:2016-03-21 13:46:55

标签: cassandra database-backups

我们已经通过快照为我们的Cassandra生产环境设置了备份/恢复过程。快照文件,架构和令牌环信息将复制到S3。

生产群集是一个3节点群集,复制因子为3.

对于开发和测试,我想将生产中的快照还原到分离的群集中。为了节省资金并保持维护简单,最好只从一个生产节点恢复快照。由于我们在3节点集群中使用复制因子3,因此每个快照应包含所有行。对我们的用例而言,一致性也不重要。

是否可以(以及如何)仅恢复单个快照?

1 个答案:

答案 0 :(得分:4)

所有3个节点上都应存在所有数据,因此将sstables从任意1个节点复制到测试集群就足够了。如果担心一致性,确保事先最近修复可能是个好主意。

首先在测试集群上创建相同的模式。然后,您只需使用nodetool snapshot -t cloneme拍摄快照即可。完成后,将所有sstables从创建的文件夹(cloneme)复制到测试群集上的等效表文件夹中。然后运行nodetool refresh

如果你有一个不同的拓扑结构(更多的节点,不同的RF),它会变得更加复杂,但是因为你选择“每个节点都拥有所有数据”,所以它非常简单。

值得一提的是OpsCenter具有自动化copying of a backup to other clusters的功能。