由于我的Cassandra集群是跨三个可用区复制的,因此我只想备份一个可用区,以降低备份成本。我还尝试了恢复单个可用区中的节点,并在测试环境中取回了大部分数据。在将此解决方案部署到生产环境之前,我想知道此方法是否有任何缺点。在您的生产集群中是否有人遵循这种方法?
注意:当我定期备份时,我知道我可能会丢失在快照时对其他两个AZ节点quorum进行的更新,但这不是问题。
发布于 2017-01-26 15:31:32
您只能备份特定的dc,甚至可以备份节点。AFAIK,唯一的缺点是你的数据是一致的/最新的,既然你能承受丢失一些数据,这应该不是问题。例如,如果您使用所有一致性级别执行写入,则所有节点上的数据都应该是最新的。
但是,通过使用机架/dc属性或使用支持多a-z的ec2交换机,您必须确保您的数据确实在多个a-z之间复制。
编辑:
全局快照
每次仅在单个节点上运行运行的nodetool快照。这只会创建整个数据的部分备份。您将希望在集群中的所有节点上运行nodetool快照。但最好在完全相同的时间运行它们,这样从时间的角度来看,您就不会有零碎的数据。您可以通过几种不同的方法来完成此操作。第一种方法是使用并行ssh程序同时执行nodetool快照命令。第二种方法是在每个节点上创建一个cron作业,以便同时运行。第二个假设您的节点具有同步的时钟,这也是Cassandra所依赖的。
页面链接:http://datascale.io/backing-up-cassandra-data/
https://stackoverflow.com/questions/41816968
复制相似问题