我目前正在改进cassandra备份解决方案。
所以,如果我应该保存incremental_backups和commitlog_archive,那么我磕磕绊绊。
如果我理解正确,请从
恢复快照+增量备份+提交日志(仅限上次刷新后的这些)
OR
存档中的快照+提交日志
应该以相同的数据集结束,对吗? 或者后一种选择要慢得多,因为重放需要的时间长于检查sstables的完整性?
我应该保留两者吗?
答案 0 :(得分:4)
我更希望通过提交日志进行增量备份。
增量备份会生成到不可变sstables的链接,然后可以使用sstableloader将其重播回实时的Cassandra集群。启用增量备份(默认情况下禁用)时,Cassandra会将每个刷新的SSTable硬链接到密钥空间数据目录下的备份目录。增量备份的缺点是全部或全部,无法为增量备份选择列系列的子集。正如我之前提到的,将实时Cassandra集群还原到不同列族的能力使得增量备份更加出色。而且您还必须管理增量备份空间,因为没有实用程序可以随着时间的推移清理增量备份,甚至无法执行rebase。
提交日志的优点是它提供了一个时间点恢复功能。要从提交日志还原,您必须转到最新的增量备份或最新的snaphshot(在前一种情况下),停止数据库,清除现有的提交日志,将提交日志复制到最新的增量备份或快照,运行rollforward实用程序,用于将数据库带到您需要的确切时间点。
但是,如果仅使用提交日志,则数据库停机时间会更高,因为在数据库关闭时需要处理更多提交日志。所以,我会使用增量备份方法,然后使用提交日志。
最后,最好在这里使用专业工具,而不是自己黑客攻击 - 从多个客户的经验来看,第一种和第二种方法都充满了潜在的错误。
答案 1 :(得分:0)
这取决于您的恢复要求。如果要恢复到特定时间,则需要快照,增量和提交日志。
为什么提交日志?
因此,对于特定时间的恢复,您需要处理提交日志以及完整快照和增量备份。