如何正确备份Tarantool memtx?

Dmi*_*nov 5 backup tarantool

设定:

tarantool实例,使用memtx / vinyl存储。box.cfg.snapshot_period(memtx多长时间获取一次磁盘快照)设置为14400(每4小时一次)。

用户几乎永久地将有价值的承诺提交给数据库。

备份系统:

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

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

我已经检查了* .xlog(据我所知,这是memtx将所有信息提交的地方)的文件是否包含在备份文件中,而没有。

我想说的是:

  1. 有什么办法可以备份xlog文件吗?仅将它们与文件列表的其余部分一起复制就足够了吗?还是在box.backup.start()和box.backup.stop()之间的复制过程中更改它们并使它们变得不一致?

  2. 如果在快照之间进行备份,box.backup.start()是否有任何参数可以备份存储在memtx中的所有信息?

我通过在每次备份之前拍摄快照来查看可能的解决方法,但是我想确保在实施xlog文件之前没有办法对其进行备份。

Kos*_*tja 3

好的,box.backup.start() 不是为这种情况设计的 - 它列出了检查点中的文件,但不列出检查点之后创建的 WAL 文件。看起来您正在将备份用于我们通常设置复制的场景。

作为解决方法,您可以简单地 rsync() 您的 en