用于 SQLite 的数据库远程复制工具

主要观点:介绍了用于 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。
阅读 105
0 条评论