Harddrive bit-rot does happen。我正在使用SQLite處理具有相當關鍵數據的項目。顯然,我會定期備份數據庫,但是會執行SQLite校驗和數據嗎?SQLite校驗其數據嗎?
我讀過關於PRAGMA integrity_check,但不能真正說出它是否對實際數據進行完整性檢查。頁面「How To Corrupt An SQLite Database File」並沒有真正提到硬盤驅動器上的位錯,這就是我所要求的原因。
此外,我正在處理的數據庫將是一個可索引僅追加日誌。一個選項是我會定期旋轉數據庫,並創建每個旋轉文件的MD5總和。但也許這是太多的工作...
任何輸入讚賞。
是的,可悲的是,似乎integrity_check沒有這樣做。另外,如果我只是想檢測損壞的行,我可能會將MD5散列存儲在同一個數據庫中,因爲我仍然能夠檢測到損壞。還是你有其他想法? – Ztyx 2012-07-15 07:46:25
將散列存儲在與數據相同的行中可能足以滿足您的需要。也許我正在考慮對數據進行惡意修補 - 如果哈希與數據存儲在同一行中,攻擊者只需要在一個位置調整數據。將散列日誌存儲在單獨的驅動器上(也使用單獨的安全證書)可以防止出現這種情況。 – 2012-07-15 07:59:02