3

ハードドライブのビット腐敗は発生します。かなり重要なデータを扱うプロジェクトに SQLite を使用しています。明らかに、データベースの定期的なバックアップを作成しますが、SQLite はそのデータのチェックサムを実行しますか?

PRAGMA integrity_checkについて読んだことがありますが、実際のデータの整合性チェックを行うかどうかはわかりません。「 SQLite データベース ファイルを破損する方法」のページでは、ハード ドライブのビット腐敗については実際には言及されていません。

また、私が扱っているデータベースは、インデックス可能な追加専用ログになります。1 つのオプションは、データベースを定期的にローテーションし、ローテーションされた各ファイルの MD5 合計を作成することです。でも、それはやり過ぎかも…。

任意の入力をいただければ幸いです。

4

2 に答える 2

3

Integrity_check のドキュメントを読むと、(メディア上のビット エラーが検出されないため) ユーザー データにのみ影響する破損を検出する保証はないと思います。

データは追加専用のログなので、非常に簡単です。1 つの方法は、データのすべての行のハッシュ (MD5 など) を含む別のハード ドライブにテキスト ファイル ログを書き込むことです。次に、そのハッシュ ログを使用して、実際のデータベースの内容を確認できます。明らかに、バックアップは計画の不可欠な部分になります。

于 2012-07-15T07:33:30.653 に答える
2

これに出くわしました。fzec Python パッケージを使用して壊れたデータを回復できます。各行には、破損から回復するための複数の「fzec ブロック列」があります。かなりきれいに見えます。

于 2012-07-15T07:44:09.477 に答える