Cassandra保持增量备份和commitlog存档?

时间:2016-05-22 23:28:56

标签: datastax-enterprise database-backups opscenter

我目前正在改进cassandra备份解决方案。

所以,如果我应该保存incremental_backups和commitlog_archive,那么我磕磕绊绊。

如果我理解正确,请从

恢复

快照+增量备份+提交日志(仅限上次刷新后的这些)

OR

存档中的快照+提交日志

应该以相同的数据集结束,对吗? 或者后一种选择要慢得多,因为重放需要的时间长于检查sstables的完整性?

我应该保留两者吗?

2 个答案:

答案 0 :(得分:4)

我更希望通过提交日志进行增量备份。

增量备份会生成到不可变sstables的链接,然后可以使用sstableloader将其重播回实时的Cassandra集群。启用增量备份(默认情况下禁用)时,Cassandra会将每个刷新的SSTable硬链接到密钥空间数据目录下的备份目录。增量备份的缺点是全部或全部,无法为增量备份选择列系列的子集。正如我之前提到的,将实时Cassandra集群还原到不同列族的能力使得增量备份更加出色。而且您还必须管理增量备份空间,因为没有实用程序可以随着时间的推移清理增量备份,甚至无法执行rebase。

提交日志的优点是它提供了一个时间点恢复功能。要从提交日志还原,您必须转到最新的增量备份或最新的snaphshot(在前一种情况下),停止数据库,清除现有的提交日志,将提交日志复制到最新的增量备份或快照,运行rollforward实用程序,用于将数据库带到您需要的确切时间点。

但是,如果仅使用提交日志,则数据库停机时间会更高,因为在数据库关闭时需要处理更多提交日志。所以,我会使用增量备份方法,然后使用提交日志。

最后,最好在这里使用专业工具,而不是自己黑客攻击 - 从多个客户的经验来看,第一种和第二种方法都充满了潜在的错误。

答案 1 :(得分:0)

这取决于您的恢复要求。如果要恢复到特定时间,则需要快照,增量和提交日志

为什么提交日志?

  • 如果你今天上午11点拍摄快照。你想在今天上午11:30恢复。现在如果您只使用覆盖上午11:30的增量备份。 然后有可能你会有一些额外/缺失的数据。 如果有人在上午11点31分删除了一行,并且在增量备份中有 SSTables ,并且已经在上午11:32刷新了,那么在恢复过程中你会发现上面的行为墓碑如果你考虑恢复时间,这是错误的。

因此,对于特定时间的恢复,您需要处理提交日志以及完整快照和增量备份。