如何正确备份Tarantool memtx?

问题描述 投票:4回答:2

建立:

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文件。

backup tarantool
2个回答
2
投票

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

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


3
投票

我想说清楚的事情:......

好。对于1 - 2.我有一个建议:只需在检查点到达后使用rsync或/和scp以及任何其他外部工具复制文件。

意味着没有机会使它成为可能,并且你不能通过使用box.backup。*函数来描述你所描述的行为。

我更喜欢使用rsync而不仅仅是Tarantool。例如,有时候对于PosgreSQL拥有存档日志(我希望有一个恢复点)的最佳体验,我也一直在使用rsync。

© www.soinside.com 2019 - 2024. All rights reserved.