设定:
tarantool实例,使用memtx / vinyl存储。box.cfg.snapshot_period(memtx多长时间获取一次磁盘快照)设置为14400(每4小时一次)。
用户几乎永久地将有价值的承诺提交给数据库。
备份系统:
我每15分钟执行一次备份,方法是调用box.backup.start()并使用一些外部脚本将列出的文件复制到备份存储中。
最近,我发现复制的文件的校验和仅在拍摄快照后(每4小时)才更改。
我已经检查了* .xlog(据我所知,这是memtx将所有信息提交的地方)的文件是否包含在备份文件中,而没有。
我想说的是:
有什么办法可以备份xlog文件吗?仅将它们与文件列表的其余部分一起复制就足够了吗?还是在box.backup.start()和box.backup.stop()之间的复制过程中更改它们并使它们变得不一致?
如果在快照之间进行备份,box.backup.start()是否有任何参数可以备份存储在memtx中的所有信息?
我通过在每次备份之前拍摄快照来查看可能的解决方法,但是我想确保在实施xlog文件之前没有办法对其进行备份。
好的,box.backup.start() 不是为这种情况设计的 - 它列出了检查点中的文件,但不列出检查点之后创建的 WAL 文件。看起来您正在将备份用于我们通常设置复制的场景。
作为解决方法,您可以简单地 rsync() 您的 en