SQLite 社群正在熱議於2024年9月10日加入 SQLite 程式碼庫並於2024年10月21日正式釋出的 sqlite3_rsync 工具。隨著開發者們評估資料庫複製和備份策略的最佳方案,這個新工具與現有的 Litestream 等解決方案之間引發了有趣的比較討論。
sqlite3_rsync 有什麼新特性?
sqlite3_rsync 是 SQLite 官方推出的用於在本地和遠端系統間建立一致性資料庫副本的解決方案。該工具採用了類似傳統 rsync 的頻寬效率協議,但針對 SQLite 資料庫處理進行了重要改進:
- 事務一致性 :與普通的 rsync 不同,sqlite3_rsync 透過建立快照確保資料庫一致性,防止在複製活動資料庫時發生損壞
- 支援即時資料庫 :源資料庫和目標資料庫在複製過程中可以保持活動狀態,僅副本在同步過程中為只讀狀態
- 頻寬效率 :對於已同步的資料庫,該工具通常僅使用資料庫大小0.5%的網路流量,而對於完全不同的資料庫最多使用約100.5%
sqlite3_rsync 與 Litestream 的比較:不同工具適合不同需求
社群討論突出了 sqlite3_rsync 和 Litestream 之間的重要區別:
-
同步模型 :
- sqlite3_rsync:在顯式執行時建立時間點快照
- Litestream:提供持續的變更流式傳輸
-
使用場景 :
- sqlite3_rsync:適合定期備份和維護待機副本
- Litestream:更適合即時複製和持續備份策略
實踐考慮
開發者們已經發現了 sqlite3_rsync 的實際應用:
- 自動備份 :許多使用者計劃使用 systemd 定時器或 cron 任務進行定期備份
- 開發工作流 :可用於維護生產資料庫的開發副本
- 混合策略 :一些開發者考慮同時使用兩種工具 - Litestream 用於持續備份,sqlite3_rsync 用於時間點複製
安裝注意事項
對於想要實施 sqlite3_rsync 的使用者,有一些重要注意事項:
- 該工具必須同時安裝在本地和遠端系統上
- MacOS 使用者需要使用 --exe 標誌指定可執行檔案位置,這是由於 PATH 限制
- Windows 遠端同步目前在 SSH 守護程式設定方面面臨挑戰
由於該工具相對較新,社群正在積極探索其功能並分享實施經驗,如 Simon Willison 等開發者提供了使用該工具的實用指南。