2011-04-21 106 views
3

我有一個將日誌數據保存到SQLite3數據庫的程序。我想在程序運行時備份數據庫。我已經通過使用SQLite在線備份API(http://www.sqlite.org/backup.html)並且它工作正常,但它滯後於這個過程,直到備份完成...如何爲SQLite執行增量備份?

有誰知道在SQLite中執行增量備份的方法嗎?我最好只備份新數據,而不是每次運行備份時的整個數據庫。

回答

3

我不認爲你的問題有一個通用的解決方案。

如果您的日誌數據在結構上有時間戳並且結構合理簡單,您可以運行一個單獨的進程來提取最近的數據,並將其插入備份流中 。

1

這正是litereplica所做的。

在每次事務提交時,它只會將修改後的頁面複製到數據庫副本。

這是在分頁器級使用內部SQLite事務引擎完成的,因此它非常可靠。

如果連接在事務中間下降,則副本方回滾事務,保持數據庫完整性。