我正在使用不断更新的大约20 to的Interbase备份,我想通过互联网复制这些备份。如何最小化传输的数据?
我在考虑使用二进制比较工具,但我知道bsdiff至少需要O(7n)内存,而且这些Interbase备份只能通过局域网使用Interbase专有的gbak进行增量更改。有没有什么方法可以挂接到linux文件系统(ext/btrfs/...)要捕获对此文件所做的所有更改,是否将其导出为通用的diff格式,然后在不同的(windows)平台上重新汇编?
发布于 2012-01-10 23:42:36
InterBase数据库增量备份功能如何?您可以尝试将增量备份(针对日志文件)备份到临时转储位置,然后将该增量数据单独备份到异地位置。无论如何,您可能需要保留初始完整备份数据,才能继续对InterBase数据库进行增量备份。
它将为您提供极少数量的要备份的数据。
发布于 2012-01-10 16:42:40
您也许能够使用rsync。如果数据库中的更改恰好保存到备份文件的末尾,这将是完美的。
但是,如果备份文件被高度重写(我的意思是随机插入/删除/修改许多小块/行),rsync将不会执行此工作。这取决于相对于数据库中插入/删除操作的同步频率。
在这种情况下,诸如xdelta之类的工具可能会有所帮助,因为它们使用窗口方法来计算增量,并且可能能够找到比rsync小得多的公共部分,从而保留公共部分,尽管存在更高密度的变化。你需要一个‘旧的’和最新的备份来使用它。
好消息是,每次执行备份时,它可能会以相同的方式组织(相同的表/行顺序),这将对两种算法都有帮助。
https://stackoverflow.com/questions/8798798
复制相似问题