SQLite团队正在开发一个名为 sqlite3-rsync 的新工具,用于实现数据库的远程复制与一致性快照能力。该工具的目标是在不影响读写的情况下,将一个数据库快速同步到本地或远程“副本”(REPLICA),并保证复制结果是某一时刻的完整一致状态。

与传统备份方式不同,sqlite3-rsync支持在源数据库仍然有读写操作的情况下进行复制。通过 SSH加密传输,数据可以安全地同步到远端副本。值得注意的是,副本在同步过程中可以保持连接,但会被强制设为只读状态。

sqlite
sqlite

在一致性方面,该工具会生成“时间点快照”:如果复制过程中源数据库发生新写入,这些数据不会被包含;同样,如果目标端有未同步的写入,也会被覆盖。最终结果就是一个以启动时刻为准的稳定副本

它与现有SQLite备份机制不同。传统backup API虽然可靠,但通常需要锁定数据库;而VACUUM INTO则是导出式操作,灵活性较低。sqlite3-rsync的优势在于 无需全量传输,它会对数据库页进行哈希比对,只同步差异数据。

官方指出,对于4096字节页大小的数据库,最低传输量可能仅为整体数据的 约0.5%,效率非常高。

不过,该工具也有一些限制:必须启用WAL(预写日志)模式,源和目标数据库页大小必须一致,并且一次只能同步一个数据库。

从应用场景来看,它更适合 读多写少 的系统,例如分析型服务或分布式只读副本环境。在这些场景中,允许副本存在轻微延迟是可以接受的。

SQLite本身体积小,但能力并不弱,理论上数据库最大可达 281TB,只是开发团队尚未有硬件验证这一上限。

目前sqlite3-rsync仍在积极开发中,没有正式发布时间,但代码已经公开,bug修复也较为活跃,未来有望成为SQLite生态中重要的同步与备份工具。