如何修改cassandra中的memtable刷新时间间隔?

时间:2015-04-17 12:25:09

标签: cassandra cqlsh

我在cassandra.yaml文件中启用了增量备份。据我所知,当我们启用增量备份时,cassandra将仅在刷新memtable时备份数据(在备份目录中)。但如果记忆尚未被刷新怎么办?我无法获得增量备份吗?我知道,对于要刷新的记忆,有一些条件需要满足,如时间间隔或可记忆空间。我的问题是如何修改它,以便即使我在最后一个快照后输入一条记录,我仍然可以备份整个数据以及最新的条目? 考虑这个例子

  1. 拍摄快照。
  2. 清除增量备份(备份目录)
  3. 在表格中输入记录。
  4. 检查备份目录中的增量备份。它仍然是空的。
  5. 现在如何备份在上一次快照之后写入的记录?一般来说,除非我们拍摄快照,否则我们如何备份整个最新数据?

2 个答案:

答案 0 :(得分:1)

您可以在进行备份之前使用nodetool flush手动刷新文件。这样你就可以随时刷新最新的记忆。

nodetool docs

答案 1 :(得分:0)

如果要在不拍摄快照的情况下备份群集,只需将/ data文件夹中的所有内容保存到每个节点(这主要包括.db文件统计文件等)即可。

为了不覆盖文件,您还应该使用令牌信息存储它。

如果要从此备份还原,则应该启动具有相同节点数的群集,只需将数据从每个备份节点一对一地复制到已还原的节点。请注意,您必须修改cassandra.yaml,以便在每个已恢复节点的cassandra.yaml(以及peers / seeds / etc)中包含相关令牌。

复制完所有数据后,您可以在所有节点上启动C *进程。