.DB-WAL

File DB-WAL

SQLite Write-Ahead Log
Fai una domanda
RISPOSTA RAPIDA

Un file .db-wal è un SQLite Write-Ahead Log - un file sidecar temporaneo che contiene le modifiche confermate più recenti per un database SQLite prima che vengano riscritte nel file .db principale. Per leggerlo, apri il database principale in DB Browser for SQLite e tieni il .db-wal nella stessa cartella; SQLite li legge automaticamente insieme. La preoccupazione principale è l'eliminazione: rimuovere un .db-wal mentre il database è in uso, o dopo un crash, scarta i dati recenti.

Sviluppatore: D. Richard Hipp / SQLite Development Team (public domain) Categoria: File di database Standard aperto MIME: application/octet-stream
SI APRE SU Windows macOS Linux
Correlati: .DB · .DBF · .ACCDB · .SQL

In questa pagina

19k+ estensioni indicizzate
Ultima revisione Jul 25, 2026

Non sei sicuro di cosa sia il tuo file?

Trascina qualsiasi file nel nostro identificatore - leggiamo solo i primi byte per dare un nome al formato.

Identifica un file

Che cos'è il formato di file DB-WAL?

I file .db-wal sono utilizzati dal motore di database SQLite (dalla versione 3.7.0, rilasciata a luglio 2010) nella modalità di journaling WAL (Write-Ahead Logging).

Contenuto dei file DB-WAL

I file con estensione .db-wal contengono dati di log write-ahead per un database SQLite associato. Tali file vengono creati e utilizzati mentre un database è aperto e attivamente modificato. Un file .db-wal memorizza le modifiche al database confermate - intere pagine di database - che non sono ancora state scritte («checkpointed») nel file .db principale. Questo approccio write-ahead è più veloce rispetto alla modifica diretta delle pagine del database in loco e garantisce la durabilità: in caso di improvvisa interruzione di corrente o crash del sistema, SQLite può riprodurre il WAL per recuperare tutte le transazioni confermate.

Ogni file .db-wal inizia con un'intestazione di 32 byte contenente un numero magico di 4 byte (0x377f0682 per checksum little-endian, 0x377f0683 per big-endian), valori salt e un checksum cumulativo. Il corpo è costituito da frame: un'intestazione di frame di 24 byte più una pagina di database completa ciascuno. I valori salt nell'intestazione invalidano i frame obsoleti dopo un checkpoint, prevenendo riproduzioni accidentali.

Utilizzo dei file DB-WAL

La gestione dei log .db-wal è completamente automatizzata dal motore SQLite. Un file compagno .db-shm (indice di memoria condivisa) è sempre presente accanto al WAL mentre il database è aperto. Il file .db-wal scompare automaticamente una volta che tutte le modifiche sono state sottoposte a checkpoint - la soglia predefinita di wal_autocheckpoint è di 1000 pagine. Il meccanismo WAL sottostante è ampiamente utilizzato sui dispositivi mobili; i database sulle app Android e iOS operano frequentemente in modalità WAL per migliorare la concorrenza e le prestazioni di scrittura.

Sicurezza e incolumità

RISCHIO: LOW

Un .db-wal è costituito da dati inerti, non da codice eseguibile, quindi non può essere eseguito da solo. I rischi reali sono operativi, non legati a malware: (1) eliminare o perdere il -wal mentre il database è aperto, o dopo un crash, scarta le transazioni confermate più recenti - esegui il backup di -db, -wal e -shm insieme; (2) il WAL di un database di un'app può contenere dati sensibili non ancora sottoposti a checkpoint (messaggi, token, cronologia), quindi trattalo come riservato. Se il database principale è crittografato (SQLCipher/SEE), anche il -wal è crittografato.

Dettagli del formato

in sintesi
NOME COMPLETOSQLite Write-Ahead Loganche noto come WAL file, SQLite WAL
SVILUPPATORED. Richard Hipp / SQLite Development Team (public domain)dal SQLite 3.7.0, July 2010 (WAL journaling mode)
TIPO MIMEapplication/octet-stream
TIPOSidecar binario write-ahead log per un database SQLite 3 (journal delle transazioni)
STANDARDAperto · royalty-free
MAGIC BYTES · FIRMA DEL FILE
OFFSET
00010203
HEX
377F0682
ASCII
7···
L'intestazione WAL di 32 byte inizia con un numero magico di 4 byte: 0x377f0682 se il file utilizza checksum nativi little-endian, 0x377f0683 per big-endian. Questa NON è l'intestazione «SQLite format 3» del database principale - il file -wal è un journal separato, non un database. Il nome del file è sempre il nome del database con «-wal» aggiunto (es. mydata.db-wal).

Programmi che aprono file DB-WAL

Windows2 apps
DB Browser for SQLite Open-source Usa «Write Changes» / «Checkpoint» in modo che il -wal venga unito prima di copiare o eseguire il backup del database.
SQLite (sqlite3 CLI) Open-source Esegui «sqlite3 mydata.db» con il -wal accanto ad esso; un checkpoint («PRAGMA wal_checkpoint(TRUNCATE);») ripiega il log nel database principale.
macOS2 apps
DB Browser for SQLite Open-source Usa «Write Changes» / «Checkpoint» in modo che il -wal venga unito prima di copiare o eseguire il backup del database.
SQLite (sqlite3 CLI) Open-source Esegui «sqlite3 mydata.db» con il -wal accanto ad esso; un checkpoint («PRAGMA wal_checkpoint(TRUNCATE);») ripiega il log nel database principale.
Linux2 apps
SQLite (sqlite3 CLI) Open-source Esegui «sqlite3 mydata.db» con il -wal accanto ad esso; un checkpoint («PRAGMA wal_checkpoint(TRUNCATE);») ripiega il log nel database principale.
DB Browser for SQLite Open-source Usa «Write Changes» / «Checkpoint» in modo che il -wal venga unito prima di copiare o eseguire il backup del database.

Dettagli tecnici

specifiche approfondite
Magic bytes0x377f0682 all'offset 0 (checksum little-endian) o 0x377f0683 (checksum big-endian)
Dimensione intestazione32 byte contenenti magic, versione del formato file, dimensione pagina, sequenza checkpoint, coppia salt e checksum
Struttura frameIntestazione frame di 24 byte + una pagina di database completa per frame
Dimensione paginaCorrisponde alla dimensione della pagina del database SQLite principale (tipicamente 4096 byte)
ChecksumChecksum cumulativo di 8 byte (due parole a 32 bit) in ogni intestazione di frame e nell'intestazione WAL
Invalidazione saltDue valori salt a 32 bit vengono randomizzati dopo ogni checkpoint, invalidando eventuali frame obsoleti
File compagnoSempre accoppiato con un file .db-shm (indice di memoria condivisa) mentre il database è aperto
Convenzione di denominazioneNome del file del database con l'aggiunta di -wal (es. mydata.db-wal)
AttivazioneCreato solo quando il database è impostato in modalità WAL (PRAGMA journal_mode=WAL)
Auto-checkpointIl valore predefinito di wal_autocheckpoint a 1000 pagine limita la crescita massima del WAL prima del checkpoint
Campo versione formatoL'intestazione WAL codifica la versione della libreria SQLite come 3007000 (SQLite 3.7.0, luglio 2010)
CrittografiaNessuna per impostazione predefinita; crittografato quando il database utilizza l'estensione SEE o SQLCipher
RilasciatoSQLite 3.7.0, July 2010 (WAL journaling mode)
Ultima versioneWAL file format magic 0x377f0682 (little-endian) / 0x377f0683 (big-endian)
Standard aperto · royalty-free
Specificawww.sqlite.org

Conversioni DB-WAL

Domande e risposte della community

chiesto dagli utenti
Fai una domanda veloce
Ottieni aiuto da persone che lavorano con i file DB-WAL. Sii specifico - includi il tuo sistema e la versione del software.
Nessun account necessario · risposte solitamente entro un giorno

Ancora nessuna domanda - sii il primo a chiedere informazioni sui file DB-WAL.

Domande frequenti

Cos'è un file .db-wal e posso eliminarlo?
È un SQLite Write-Ahead Log che contiene le modifiche confermate più recenti del database. Se il database viene chiuso correttamente, il -wal è stato sottoposto a checkpoint e l'eliminazione è sicura; se un'app sta usando il database o si è verificato un crash, l'eliminazione del -wal può causare la perdita di dati recenti. In caso di dubbio, non toccarlo.
Come si apre un file .db-wal?
Non si apre da solo - apri il database principale (il .db/.sqlite accanto ad esso) in DB Browser for SQLite o con lo strumento sqlite3, tenendo il -wal nella stessa cartella. SQLite legge il log automaticamente e mostra i dati correnti.
Perché mancano i dati più recenti dopo aver copiato un database SQLite?
Probabilmente hai copiato solo il .db e non il -wal (e il -shm). Le ultime modifiche confermate risiedono nel -wal fino a un checkpoint. Copia tutti e tre i file insieme, oppure esegui prima un checkpoint in modo che tutto sia nel singolo .db.
Qual è la differenza tra .db-wal e .db-shm?
Il -wal è il log write-ahead effettivo delle pagine modificate. Il -shm è un piccolo indice di memoria condivisa che aiuta le connessioni multiple a trovare l'ultima versione di ogni pagina nel -wal. Entrambi sono sidecar temporanei del database principale.
Il file .db-wal è solo per Android?
No. Il nome del database nel nostro catalogo menziona Android perché molte app Android usano SQLite, ma WAL è una funzione generica di SQLite usata anche su iOS, Windows, macOS e Linux - browser, Mail, Foto e innumerevoli app creano file -wal.
Come si unisce un .db-wal al database?
Apri il database ed esegui «PRAGMA wal_checkpoint(TRUNCATE);» nella shell sqlite3 o in DB Browser, oppure chiudi semplicemente il database in modo pulito. SQLite scrive le pagine registrate nel file principale e svuota il -wal.

Riferimenti

1SQLite - Write-Ahead Logging (WAL)www.sqlite.org
2SQLite - WAL File Formatwww.sqlite.org

Continua a esplorare

nel database

Migliori estensioni della settimana

1.AQQAQQ Instant Messenger File
2.MDMarkdown Document
3.BINCD/DVD Disc Image (BIN/CUE)
4.RPMSGRestricted Permission Message
5.PARTPartial Download File
6.CRDOWNLOADChrome Partial Download File
7.NOMEDIAAndroid No-Media Marker File
8.PRDXSoftMaker Presentations Document
9.PRO6XProPresenter 6 Bundle File
10.SWFSmall Web Format (Shockwave Flash)

Estensioni correlate

.DBSQLite Database File
.DBFDatabase File (dBASE / xBase table)
.ACCDBMicrosoft Access Database (2007+)
.SQLSQL Script (Structured Query Language source / database dump)
.MDBMicrosoft Access Database (97-2003, Jet engine)
.FDBFirebird Database

Strumenti file gratuiti

Un identificatore di file e convertitore di immagini nel browser - tutto viene eseguito sul tuo dispositivo.

Apri la cassetta degli attrezzi

Sfoglia le estensioni dei file A-Z