1

我正在使用不断更新的 ~20GB Interbase 备份,我想通过 Internet 进行复制。如何最小化传输的数据?

我正在考虑使用二进制差异工具,但我知道bsdiff至少需要 O(7n) 内存,而且这些 Interbase 备份只是在 LAN 上使用 Interbase 的专有gbak东西增量更改。有什么方法可以连接到 linux 文件系统 (ext/btrfs/...) 以捕获对此文件所做的所有更改,将其导出为常见的差异格式,然后在不同的 (windows) 平台上重新组装它?

4

2 回答 2

1

你也许可以使用rsync. 如果数据库中的更改恰好保存到备份文件的末尾,那就完美了。

但是,如果备份文件被高度重写(我的意思是随机插入/删除/修改许多小块/行),rsync将无法完成这项工作。它取决于数据库中插入/删除的同步频率。

在这种情况下,有一些工具xdelta可能会有所帮助,因为它们使用窗口方法进行增量计算,并且可能能够找到比小得多rsync的公共部分,因此尽管存在更高密度的变化,但仍保留公共部分。你需要一个“旧的”和最新的备份来使用它。

好消息是,每次执行备份时可能会以相同的方式组织备份(相同的表/行顺序),这将有助于两种算法。

于 2012-01-10T08:42:40.237 回答
1

InterBase 数据库增量备份功能如何?您可以尝试将增量备份(用于日志文件)到临时转储位置,然后将该增量数据单独备份到异地位置。无论如何,您可能需要保留初始完整备份数据以继续进行 InterBase 数据库的增量备份。

它将为您提供非常少量的数据备份。

于 2012-01-10T15:42:36.127 回答