2016-05-22 19 views
1

我目前正在精炼一个cassandra备份解决方案。Cassandra保持增量备份和commitlog归档?

,所以我在点绊脚石,如果我要救incremental_backups和commitlog_archive。

如果我理解正确的,无论从

快照+增量备份+ Commitlog(只有这之后的最后冲洗)

OR

快照+ Commitlog从归档

应该结束恢复在同一组数据中,对吗? 或者后者的选择要慢得多,因为重播需要比检查sstables完整性更长的时间?

我应该保持两个吗?

回答

4

我希望增量备份超过提交日志。

增量备份导致链接,然后可以重播回使用sstableloader现场卡桑德拉集群不变sstables。启用增量备份(默认情况下禁用)时,Cassandra将每个刷新的SSTable硬连接到keyspace数据目录下的备份目录。增量备份的缺点是全部或全部无法使用,因此无法为增量备份选择列族的子集。正如我前面提到的那样,将Cassandra实时群集恢复到不同的列系列的能力使得增量备份更为出色。而且您还必须管理增量备份空间,因为没有实用程序可以随时间清理增量备份,甚至不需要重新分区。

提交日志的优点是,它提供了在时间恢复能力的点。要从提交日志中恢复,您必须转到最新的增量备份或最新的快照(在您的前一种情况下),停止数据库,清除现有的提交日志,将提交日志复制到最近的增量备份或快照,运行前滚实用工具将数据库带到您所需的准确时间点。

但是,如果你只使用提交日志,数据库停机时间将会更高,因为你有更多的提交日志来处理,而数据库已关闭。所以,我会使用增量备份方法,然后使用提交日志。

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

0

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

为什么提交日志?

  • 如果你今天采取快照上午11:00。而你想在今天上午11:30恢复。现在,如果您只使用增量备份,其中包含上午11:30。 然后有可能你会有一些额外/丢失的数据。 如果有人在上午11:31删除了一行,并且您有SSTables的增量备份已在上午11:32刷新,所以在恢复过程中,您会发现上述行为墓碑如果您考虑恢复时间。

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