我正在測試使用eMMC的嵌入式Linux系統在beaglebone嵌入式Linux系統上發生停電時SQLite數據庫的完整性。嵌入式系統上的SQLite數據庫損壞
我
PRAGMA synchronous = FULL
PRAGMA journal_mode = WAL
配置的數據庫,並保持書面的數據庫,而電力是通過繼電器切斷。測試會自動運行幾個小時。
一段時間後,數據庫被破壞併產生以下錯誤:
INTEGRITY_CHECK:***在數據庫主*** 頁50861:btreeInitPage()返回錯誤代碼11 在樹頁50820細胞83 :兒童頁深度不同, 第50862:btreeInitPage()返回錯誤代碼11 第50863:btreeInitPage()返回錯誤代碼11 第50864:btreeInitPage()返回錯誤代碼11 第50865:btreeInitPage()返回錯誤代碼11 頁面50866:btreeInitPage()返回錯誤代碼11 頁面50867:btreeInitPage()返回錯誤代碼11 第50868:btreeInitPage()返回錯誤代碼11 第50869:btreeInitPage()返回錯誤代碼11 第50870:btreeInitPage()返回錯誤代碼11 第50871:btreeInitPage()返回錯誤代碼11 第50872 :btreeInitPage()返回錯誤代碼11 頁50873:btreeInitPage()返回錯誤代碼11 在樹頁50820細胞96:子頁面深度不同,
我讀過有關的SQLite下面的文章:
https://www.sqlite.org/howtocorrupt.html
https://www.sqlite.org/atomiccommit.html
我該怎麼做才能防止數據庫損壞?
如果不可行,我的選擇是什麼,因爲我不關心丟失一些數據。
使用ext3分區解決了我的數據庫損壞問題。但你認爲閃存芯片也可能會破壞無關的行業。 – Vincent 2014-11-12 17:35:10