Litestream 引入了 SQLite 複製系統的實現

BoltDB NoSQL 儲存的作者 Ben Johnson 介紹了 Litestream 項目,該項目提供了一個用於在 SQLite 中組織資料複製的附加元件。 Litestream 不需要對 SQLite 進行任何更改,並且可以與使用該程式庫的任何應用程式一起使用。 複製是由單獨執行的後台進程執行的,該進程監視資料庫中檔案的變更並將其傳輸到另一個檔案或外部儲存。 該專案代碼是用 Go 編寫的,並在 Apache 2.0 許可證下分發。

所有與資料庫的交互都是透過標準 SQLite API 進行的,即Litestream不直接幹擾操作,不影響效能,也不會損壞資料庫的內容,這也是Litestream與Rqlite、Dqlite等解決方案的差異。 透過在 SQLite 中啟用 WAL 日誌(「預寫日誌」)來追蹤變更。 為了節省儲存空間,系統會定期將變更流聚合到資料庫切片(快照)中,在其上開始累積其他變更。 建立切片的時間在設定中指示;例如,您可以每天建立一次切片或每小時建立一次切片。

Litestream 的主要應用領域包括組織安全備份和跨多個伺服器分配讀取負載。 它支援將變更串流傳輸到 Amazon S3、Azure Blob Storage、Backblaze B2、DigitalOcean Spaces、Scaleway 物件儲存、Google Cloud Storage、Linode 物件儲存或任何支援 SFTP 協定的外部主機。 如果主資料庫的內容損壞,備份副本可以從指定時間點、特定變更、最後變更或指定分片對應的狀態還原。

來源: opennet.ru

添加評論