如何解决时间点恢复和提交日志-Cassandra
我从cassandra开始,我需要为此设置时间点。我是actived commitlog,但是备份文件夹中仅显示已归档的commit日志,当前的commit日志是实时更新的。因此,如果节点崩溃,当我从存档的commitlog还原时,如何获取不在存档日志中的最后一个日志?
当我使用nodetool flush时,增量备份会更新,但是commitlog不会存档
解决方法
当写入Cassandra节点时,它首先进入提交日志(磁盘),然后进入memtable(存储器)。
根据某些条件(大小...),定期将内存表刷新到磁盘,并成为SSTable。
提交日志用于重播内存中的数据,如果节点崩溃则不会刷新到磁盘。因此,当将内存中的数据刷新到磁盘时,将清除相应的提交日志。
因此,如果您使用nodetool刷新,则将memtables中的数据刷新到磁盘上成为sstable,并且不再需要提交日志。
如果节点崩溃,则无需进行任何还原,重新启动时,它将重播提交日志中包含的突变:如果未将任何数据刷新到磁盘,则提交日志不会为空。 / p>
还原和备份更多地通过快照,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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。