从大型 SQLite 数据库传输增量的有效方法是什么?

从大型 SQLite 数据库传输增量的有效方法是什么?

从大型 SQLite 数据库传输增量的有效方法是什么?

笔记:这个问题与如何复制/分发“实时”数据库无关。也就是说,我并不担心在写入过程中尝试复制会导致日志损坏等问题,因为我可以完全控制写入时间。

我有一个大型 (~GB) sqlite 数据库,它由预定的进程自动更新,需要分发到卫星位置。理想情况下,分发可以是按需的,也可以是预定的(例如每晚),但仅预定就足够了。理想情况下,我希望在不运行任何类型的服务器进程的情况下执行此操作,或者至少该进程必须能够在没有提升权限的情况下运行。

我的第一反应是使用 rsync 来实现这一点。rsync 的增量传输算法对 sqlite 数据库有效吗?或者每次写入都会触及数据库文件中的每个块?如果每次更改都是仅插入而不是更新,这有关系吗?

如果 rsync 效率低下(即每次都会传输整个文件的很大一部分),是否有更好的现成解决方案?

相关内容