由于我的Cassandra集群在三个可用区域中复制,因此我只想备份一个可用区域以降低备份成本。我还尝试在单个可用区域中恢复节点,并在测试环境中恢复了大部分数据。在生产中部署此解决方案之前,我想知道此方法是否存在任何缺陷。是否有人在您的生产集群中使用此方法?
注意:由于我定期备份,我知道在快照时我可能会发生其他两个AZ节点仲裁的更新,但这不是问题。
答案 0 :(得分:0)
您只能备份特定的DC甚至节点。 AFAIK,唯一的缺点是您的数据是否一致/最新,并且由于您可以承受丢失一些数据,因此它应该不是问题。如果您(例如执行具有ALL一致性级别的写入),则数据应该在所有节点上都是最新的。
但是,您必须确保您的数据确实在多个a-z之间复制,方法是使用机架/直流属性或使用支持多个a-z的ec2开关。
编辑:
全局快照
运行nodetool快照一次只能在一个节点上运行。 这只会创建整个数据的部分备份。你会想要的 在群集中的所有节点上运行nodetool快照。但 最好在同一时间运行它们,这样你就没有了 从时间角度看零碎的数据。你可以这样做几个 不同的方法。第一个是使用并行ssh程序来 同时执行nodetool snapshot命令。第二, 是在每个节点上创建一个cron作业同时运行。 第二个假设您的节点具有同步的时钟,其中 卡桑德拉也依赖。