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

问题描述:

我已经在cassandra.yaml文件中启用了增量备份。正如我所知道的,当我们启用增量备份时,只有当memtable被刷新时,cassandra才会备份数据(在备份目录中)。但是如果memtable还没有被刷新呢?我将无法获得正确的增量备份?我知道,为了刷新memtable,需要满足某些条件,例如时间间隔或memtable空间。我的问题是,如何修改此内容,以便即使在最后一个快照之后输入一条记录,我仍然可以将整个数据与最新条目一起备份? 考虑这个例子如何修改cassandra中的memtable刷新时间间隔?

  1. 拍摄快照。
  2. 清除增量备份(备份目录)
  3. 输入记录的表。
  4. 检查备份目录中的增量备份。它仍然是空的。

现在如何备份上次快照后写入的记录?一般情况下,除非我们拍摄快照,否则我们如何备份整个最新数据?

如果你想备份集群,而不通过简单地保存下从每一个节点/数据夹中的一切拍摄快照,你可以做到这一点(这包括主要的db文件统计文件等)。

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

当你想从备份中恢复,你应该旋转起来集群具有相同数量的节点,并简单的数据,一对分别来自备份节点复制到恢复的节点。请注意,您必须修改cassandra.yaml以将相关标记包含在每个已还原节点的cassandra.yaml(以及peers/seeds/etc)中。

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

您可以手动nodetool flush刷新文件只是把备份之前。这样,你将始终拥有最新的memtable刷新。

nodetool docs