2016-03-21 197 views
3

我们通过快照为Cassandra生产环境设置了备份/恢复过程。快照文件,模式和令牌环信息被复制到S3。在开发人员或测试群集(单节点群集)上还原Cassandra快照(来自3节点群集)

生产群集是3节点集群的3

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

是否有可能(以及如何)只恢复一个快照?

+0

你有看看http://stackoverflow.com/questions/25465904/how-can-i-restore-cassandra-snapshots? –

回答

4

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

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

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

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

+0

嗨克里斯。谢谢你快速的回复。有用。其实很简单。 – Henrik