如何正确备份Tarantool的memtx引擎?

6

设置:

使用tarantool实例,使用memtx/vinyl存储。box.cfg.snapshot_period(memtx拍摄磁盘快照的频率)设置为14400(每4小时一次)。

用户将其有价值的提交内容几乎永久地写入DB中。

备份系统:

我通过调用box.backup.start()进行备份,每15分钟备份一次,并使用一些外部脚本将列出的文件复制到备份存储中。

最近我发现,复制文件的校验和仅在拍摄快照之后(每4小时一次)才会更改。

我已经检查了备份文件是否包含任何*.xlog(这是memtx将所有提交信息放置的地方)文件-它们没有被包含在备份文件中。

我想了解清楚的事情:

  1. 是否有任何方法可以备份xlog文件?只需将它们与其他文件一起复制即可吗?或者在box.backup.start()和box.backup.stop()之间的复制过程中,它们可能会更改并变得不一致吗?

  2. 是否存在box.backup.start()的参数来备份在快照之间存储在memtx中的所有信息?

我看到可能的解决方法是在每次备份之前拍摄快照,但在实施它之前,我希望确定没有办法备份xlog文件。

2个回答

3

好的,box.backup.start()并不适用于这种情况 - 它会列出检查点中的文件,但不会列出检查点之后创建的WAL文件。看起来你正在使用备份来处理我们通常设置复制的场景。

作为一种解决方法,你可以简单地使用rsync()来同步你的en


3
我想要澄清的事情是:...
好的。对于1-2,我有一个建议:在达到检查点后,只需使用rsync或/和scp复制文件,以及任何其他外部工具。
这意味着没有机会使其成为可能,并且您无法通过使用box.backup.*功能来描述所述的行为。
我更喜欢使用rsync,不仅适用于Tarantool。例如,有时为了获得与PosgreSQL归档日志的最佳体验(我希望有一个恢复点),我也使用rsync。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接