主要观点:介绍了用于 SQLite 的数据库远程复制工具 sqlite3_rsync,包括其使用方法、功能、限制、安装方式、向后兼容性问题以及网络带宽等方面。
关键信息:
- 可通过命令 $sqlite3_rsync ORIGIN REPLICA?OPTIONS? 使 REPLICA 成为 ORIGIN 的副本,可添加 -v 选项查看更多输出。
- 具有多种功能,如可处理本地或远程数据库、运行时数据库可保持“活”状态、使用高效带宽协议等。
- 存在一些限制,如数据库文件需在 WAL 模式且页大小相同、运行时 REPLICA 只读、一次只能同步一个数据库等。
- 安装时只需将可执行文件放在 $PATH 中,在 MacOS 上需注意默认 PATH 问题,可使用 --exe 选项指定远程位置。
- 存在向后兼容性问题,3.50.0 版本后可能出现应用挂起情况,可添加“--protocol 1”选项解决。
- 网络带宽方面,协议核心是副本发送页面哈希到 origin 端,不同初始状态下带宽情况不同,3.50.0 版本后更高效但双方需都安装该版本。
- 强调不能用普通 rsync 复制 SQLite 数据库,因其不理解 SQLite 事务,可能生成 corrupt 副本,而 sqlite3_rsync 可生成一致副本。
重要细节: - 数据库同步使用类似 rsync 的高效协议。
- 远程系统上需在 SSH 默认 $PATH 中的目录安装 sqlite3_rsync 或使用 --exe 选项指定位置。
- 在 Windows 上,单字母 HOST 若无 USER@前缀会被解释为 Windows 驱动器盘符。
- 关于页面哈希和带宽的具体情况及不同版本的变化。
- 最后修改时间为2025-05-31 13:08:22 UTC。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。