2012-02-26 68 views
1

我在Windows Server 2008計算機上安裝了Rails應用程序。該應用程序使用sqlite數據庫,我需要每天備份一次。應該通過將數據庫文件複製到鏡像文件夾來完成備份,並且鏡像備份服務將從那裏進行備份。安排Rails任務以安全備份數據庫文件

有一個問題。我想避免在應用程序使用它時複製數據庫文件。如果我在操作過程中複製文件,我會在備份中收到損壞的和/或鎖定的數據庫文件 - 如果甚至有可能恢復這樣的文件太麻煩了。

現在,有沒有使計劃的任務等待,直到數據庫沒有被使用?或者在備份任務運行時阻止其他應用程序使用數據庫?對於調度,我已經看到了幾個解決方案,但我還沒有致力於調度解決方案,所以我可能依靠調度解決方案功能來解決備份問題。

回答

7

我會建議使用SQLite Command Line Shell

sqlite3 /path/to/live.db '.backup /backup/path.db' 

這將允許您備份,而不會造成普通DB操作失敗。從文檔:

複製操作可逐步完成,在這種情況下,源 數據庫不需要被鎖定爲副本的時間,只爲一次短暫 時,它實際上是正在讀取。

+0

簡單而優雅,我甚至可以從Windows計劃任務中完成。謝謝! – 2012-02-26 04:52:30