SQLite データベースの破損と不思議なことに削除されていないファイルは、フラッシュ メモリの障害の結果である可能性がありますか?

SQLite データベースの破損と不思議なことに削除されていないファイルは、フラッシュ メモリの障害の結果である可能性がありますか?

私は Android フォンを持っていて、そこで自分で作成したデータベース システム (SMS 経由のやり取りと、それと同期するクラウド エンド) を実行しています。メイン データベースは sqlite ファイルに保存されています。このシステムは、約 2 年間、電話でスムーズに動作しています。

最近、約 2 週間の間に、データベース ファイルのすべてのデータが失われることが 2 回ありました (1 回は長さ 0 のファイルに置き換えられ、もう 1 回は 1k の空のファイルに置き換えられました)。今日、午前中にソフトウェアによって削除された一時ファイルが午後に再び現れました。

このような動作はフラッシュメモリの劣化によるものでしょうか?つまり、単に携帯電話が古くなっただけなのでしょうか?

答え1

それは確かにできるNAND の書き込み障害の結果である可能性があります。データベースを SD カードなどの新しいストレージに移動することは可能ですか? 同じ量の書き込みでは、このようなカードのほとんどは内部ストレージよりも早く消耗しますが、SD に何かを書き込むのがそれだけである場合は、より長持ちする可能性があります。

もちろん、デバイスのメモリが失敗した場合は、いずれにしても新しいデバイスが必要になる可能性があります。エラーは通常、書き込み時に発生するため、プログラムの実行と既存のファイルの読み取りは引き続き機能しますが、作成または変更したすべてのファイルはファイル システムのメタデータにも書き込まれます (また、NAND の書き込み方法により、複数のファイルのファイル システム エントリに影響します)。メタデータが破損すると、OS は他のファイルを見つけられなくなり、正しく読み取ることもできなくなります。

関連情報