时间点恢复和提交日志 - Cassandra
Point in time recovery and commitlog - Cassandra
我从 cassandra 开始,我需要为其设置时间点恢复。我激活了提交日志,但只有存档的提交日志出现在我的备份文件夹中,当前提交日志是实时更新的。所以,如果节点崩溃,当我从存档的提交日志中恢复时,我如何才能得到最后一个不在存档日志中的日志?
当我使用 nodetool flush 时,更新了增量备份但未归档提交日志
当写入 Cassandra 节点时,它首先进入提交日志(磁盘),然后进入内存表(内存)。
根据某些条件(大小...),内存表会定期刷新到磁盘并成为 SSTable。
提交日志用于重播内存中的数据,如果节点崩溃,则不会刷新到磁盘。因此,当内存中的数据被刷新到磁盘时,相应的提交日志将被清除。
所以如果你使用 nodetool flush,memtables 中的数据被刷新到磁盘到 sstable,并且不再需要提交日志。
如果节点崩溃,你不需要做任何恢复,当它重新启动时,它会重播提交日志中包含的突变:如果任何数据没有刷新到磁盘,提交日志将不会为空.
恢复和备份更多地通过快照处理,nodetool 快照,使用提交日志从保存点恢复并不常见,更合适的使用是当节点崩溃并且数据未写入磁盘时。
如果需要,您还可以激活归档提交日志:
https://cassandra.apache.org/doc/latest/configuration/cass_cl_archive_file.html
您可以在此处找到有关 Cassandra 备份的更多详细信息:
https://docs.datastax.com/en/archived/cassandra/3.0/cassandra/operations/opsBackupRestore.html
如果你想看看 Cassandra 中的写入路径,它会让你更好地理解数据是如何写入的:
https://docs.datastax.com/en/cassandra-oss/2.1/cassandra/dml/dml_write_path_c.html
我从 cassandra 开始,我需要为其设置时间点恢复。我激活了提交日志,但只有存档的提交日志出现在我的备份文件夹中,当前提交日志是实时更新的。所以,如果节点崩溃,当我从存档的提交日志中恢复时,我如何才能得到最后一个不在存档日志中的日志?
当我使用 nodetool flush 时,更新了增量备份但未归档提交日志
当写入 Cassandra 节点时,它首先进入提交日志(磁盘),然后进入内存表(内存)。
根据某些条件(大小...),内存表会定期刷新到磁盘并成为 SSTable。
提交日志用于重播内存中的数据,如果节点崩溃,则不会刷新到磁盘。因此,当内存中的数据被刷新到磁盘时,相应的提交日志将被清除。
所以如果你使用 nodetool flush,memtables 中的数据被刷新到磁盘到 sstable,并且不再需要提交日志。
如果节点崩溃,你不需要做任何恢复,当它重新启动时,它会重播提交日志中包含的突变:如果任何数据没有刷新到磁盘,提交日志将不会为空.
恢复和备份更多地通过快照处理,nodetool 快照,使用提交日志从保存点恢复并不常见,更合适的使用是当节点崩溃并且数据未写入磁盘时。
如果需要,您还可以激活归档提交日志:
https://cassandra.apache.org/doc/latest/configuration/cass_cl_archive_file.html
您可以在此处找到有关 Cassandra 备份的更多详细信息: https://docs.datastax.com/en/archived/cassandra/3.0/cassandra/operations/opsBackupRestore.html
如果你想看看 Cassandra 中的写入路径,它会让你更好地理解数据是如何写入的:
https://docs.datastax.com/en/cassandra-oss/2.1/cassandra/dml/dml_write_path_c.html