SQLite(WALモード)でのリカバリの進捗状況が不思議です。 システムクラッシュが発生した場合、SQLiteは「WALファイルを使用して回復する必要があります」と認識していますか? とリカバリの進行状況を正確にSQLiteは何ですか?システムクラッシュ時のWALモードでのSqlite3リカバリ方法
助けてください。
SQLite(WALモード)でのリカバリの進捗状況が不思議です。 システムクラッシュが発生した場合、SQLiteは「WALファイルを使用して回復する必要があります」と認識していますか? とリカバリの進行状況を正確にSQLiteは何ですか?システムクラッシュ時のWALモードでのSqlite3リカバリ方法
助けてください。
documentationは言う:
を元のコンテンツがデータベースファイルに保存され、変更が別WALファイルに添付されています。 COMMITは、WALにコミットを示す特別なレコードが追加されたときに発生します。
[012]
読者がコンテンツのページを必要とする場合、最初にWALをチェックしてそのページが表示されているかどうかを確認し、そうであればWAL [...]で発生したページの最後のコピーを取得します。 WAL [...]にページのコピーが存在しない場合、ページは元のデータベースファイルから読み込まれます。
システムクラッシュが発生した場合、最後のコミットレコードは書き込まれません。コミットレコードがなければ、新しいデータは有効とみなされず、データベースは単に新しいデータを無視します。
実際の復旧操作は必要ありません。データベースは最後の有効なコミットレコードから始まる新しいデータの書き込みを続けます。
お返事ありがとうございます。私はより多くの質問を持っています SQLiteはデータベースを開くと「システムクラッシュ」を知っていますか?またはWALファイルにページデータを書き込み/読み込みしますか? SQLiteがシステムクラッシュを知っている時を知りたい。 –
ドキュメントをお読みください。質問をするには、「質問する」ボタンを使用します。 –