SQLite è specificatamente progettato per proteggere da questo. Dalla ufficiale SQLite is Transactional pagina:
Tutte le modifiche all'interno di una singola un'operazione a SQLite o si verificano completamente o non del tutto, anche se l' atto di scrivere il cambiamento verso il disco è interrotta da
- un crash del programma,
- un crash del sistema operativo, o
- un'interruzione di corrente.
L'affermazione del paragrafo precedente è ampiamente controllati sul suite di test di regressione SQLite utilizzando un test speciale imbracatura che simula le effetti su un file di database di crash del sistema operativo e la potenza fallimenti.
Potreste anche essere interessati a questo articolo SQLite Atomic Commit in SQLite se avete bisogno di conoscere i dettagli specifici su come si proteggono contro gli arresti, come sopra.
Riguardo scrittura dopo un incidente: (da
File Locking and Concurrency)
Un diario calda viene creato quando un processo è nel mezzo di un aggiornamento del database e un programma o sistema operativo crash o di mancanza di corrente impedisce la aggiornamento dal completamento. Giornali caldi sono una condizione di eccezione. Esistono periodici caldi per il ripristino da arresti anomali e interruzioni di corrente. Se tutto funziona correttamente (ovvero, se non si verificano arresti anomali o interruzioni dell'alimentazione) non si otterrà mai un diario caldo.
Il peggio che può succedere è che è necessario eliminare il diario attivo rimasto dopo un arresto anomalo.
fonte
2009-09-21 03:40:56
Grazie! Voglio anche sapere se il file di database (*. Db) rimarrà scrivibile se si verifica un'interruzione dell'alimentazione mentre nel database sono state apportate alcune modifiche. – quantity
@quantity Il blocco viene eseguito a livello di sistema operativo, quindi dopo un errore improvviso e dopo il riavvio, il codice fschk dovrebbe cancellarlo e il file sarà nuovamente accessibile.Il blocco non viene effettuato cambiando gli attributi del file. Inoltre, dai riferimenti degli articoli nella risposta, è chiaro che le "riviste a caldo" vengono gestite automaticamente quando si accede al file DB. – Ber
Non si dovrebbe mai cancellare un file di giornale caldo. Vedere la documentazione ufficiale: [Come danneggiare un file di database SQLite] (http://www.sqlite.org/howtocorrupt.html), sezione 1.3. –