6

设置:

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

用户几乎永久地将他们有价值的提交提交到数据库中。

备份系统:

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

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

我已经检查了备份文件中是否包含任何 *.xlog(据我所知,memtx 将所有信息放在提交上的位置)文件中 - 但它们没有。

我想澄清的事情:

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

  2. box.backup.start() 是否有任何参数来备份所有信息,如果在快照之间发生备份,则存储在 memtx 中?

通过在每次备份之前拍摄快照,我看到了可能的解决方法,但我想确保在实施之前无法备份 xlog 文件。

4

2 回答 2

3

我想明确的事情:...

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

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

我更喜欢使用 rsync 而不仅仅是 Tarantool。例如,有时为了获得最好的 PosgreSQL 归档日志体验(我希望有一个恢复点),我也一直在使用 rsync。

于 2018-09-06T22:11:10.067 回答
3

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

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

于 2018-09-06T21:04:16.720 回答