3

先行書き込みロギングを使用する SQLite データベースがチェックポイントされていないトランザクションで (電源障害などにより) 中断され、一時的な -wal ファイルが見つからない状態で再度開かれた場合、データベースは最後のチェックポイントの状態できれいに開きます。それとも何らかの形で破損しますか?

私たちは、SQLite を iCloud で動作させようとしています (はい、そうすべきではないことはわかっていますが、Windows と Android のアプリも作成しており、クロスプラットフォームのデータベース ソリューションが必要です)。WAL は、データベースの 2 つのコピーを維持する必要を回避するための潜在的な方法 - -wal ファイルを iCloud の外部に保持し、メイン データベースをそこに保存することで、iCloud がロールバック ジャーナルをバックアップする (または途中でデータベースをバックアップする) 問題を回避します。それらの仕訳帳のないトランザクション)。

4

3 に答える 3

1

SQLite のWrite-Ahead Loggingの「チェックポイント」セクションを参照してください。私の理解では、WAL ファイル内のデータは単にコミットされません。

つまり、まだコミットされていない .WAL ファイルのデータは失われますが、メイン データベース自体は完全に正常なはずです。

于 2013-07-31T16:44:16.290 に答える