2012-12-21 153 views
2

我想使用SQLite作爲WCF服務日誌記錄的數據庫後端。一切看起來都不錯,但是我怎樣才能從真實系統中提取數據庫日誌文件,並且不會爲檢查/分析日誌而鎖定數據庫?這個系統似乎是非常廣泛的負載,每次我嘗試採取鎖定數據庫日誌文件。使用SQLite進行日誌記錄

回答

0

SQLite允許多個進程/應用程序擁有相同的數據庫文件,以便讀寫(寫入時會涉及一些鎖定,但這通常不會帶來大問題)。

您應該可以通過日誌記錄過程不斷將新行記錄到數據庫中,同時卸載/提取進程將舊行復制到其他位置。

但是,如果您不應該在打開數據庫時使用標準複製功能將數據庫複製爲文件,因爲它很可能會破壞它(在Windows上,由於嚴格的鎖定,甚至可能不可能)。

相反,使用標準SQLite API(或一些支持SQLite的腳本語言)將卸載進程連接到數據庫,使用該API讀取行並在別處創建該數據的副本,例如在另一個SQLite數據庫中, 「像MySQL,Postgres或MSSQL的SQL數據庫(或者如果傾向於文本文件)。

+0

請告訴我,我可以連接SQLite並將其複製到另一個SQLite數據庫? – kseen

0

使用SQLite的online backup API來提取數據而不必鎖定數據庫。

相關問題