Hva er DB-SHM-filformatet?
En .db-shm-fil er en flyktig delt minneindeksfil som opprettes automatisk av SQLite når en database opererer i WAL-modus (Write-Ahead Logging). Den eksisterer sammen med hoveddatabasefilen og dens tilhørende .db-wal-fil, og utgjør sammen det settet på tre filer som WAL-modus krever.
Filen har en fast størrelse på 32 KB og er minnemappet av alle SQLite-tilkoblinger som deler den samme databasen i WAL-modus. Den lagrer WAL-indekshoder og en hashtabell som kobler WAL-rammenummer til database-sidenummer, noe som gjør det mulig for lesere å effektivt finne den nyeste versjonen av hver side uten å skanne hele WAL-filen.
I motsetning til hovedfilen .db, lagrer .db-shm-filen ingen brukerdata og er ikke portabel på tvers av CPU-arkitekturer - dens byterekkefølge samsvarer med vertsmaskinen. SQLite oppretter den automatisk når den første tilkoblingen åpner en database i WAL-modus, og sletter den fullstendig når den siste tilkoblingen lukkes. En gjenværende .db-shm-fil etter et krasj er trygg å slette, forutsatt at databasen ikke er åpen for øyeblikket; SQLite gjenoppretter den ved neste tilgang.
I eksklusiv låsemodus bruker SQLite i stedet heap-minne, slik at ingen .db-shm-fil skrives til disk. Filen kan ikke åpnes eller tolkes meningsfullt av noe annet verktøy enn SQLite selv.
Sikkerhet og trygghet
RISIKO: LOWSelve .db-shm-filen inneholder ingen brukerdata og kan ikke tolkes meningsfullt. Ingen eksekverbart innhold. Den tilhørende .db-databasefilen kan inneholde sensitive personopplysninger (meldinger, kontakter osv.) avhengig av applikasjonen. Sletting av en foreldet -shm-fil (når databasen er lukket) er trygt; sletting mens databasen er åpen kan føre til korrupsjon.
Formatdetaljer
i et nøtteskallProgrammer som åpner DB-SHM-filer
Tekniske detaljer
dyp spesifikasjon| Påkrevd SQLite-modus | WAL-modus (Write-Ahead Logging); opprettes ikke i journal- eller eksklusiv låsemodus |
| Filstørrelse | Fast 32 KB (én 32 KB-blokk per låseregion) |
| Byterekkefølge | Vertsmaskinens naturlige; ikke portabel på tvers av CPU-arkitekturer |
| Koding | Binær (minnemappede OS-strukturer; ikke et frittstående serialisert format) |
| Innhold | WAL-indekshoder og hashtabell som kobler WAL-rammenummer til database-sidenummer |
| Brukerdata | Lagrer ingen brukerdata; fungerer som en leseindeks for den tilhørende .db-wal-filen |
| Livssyklus | Opprettes automatisk når første WAL-modus-tilkobling åpnes; slettes automatisk ved siste rene lukking |
| Gjenoppretting etter krasj | Trygt å slette manuelt hvis databasen ikke er åpen; SQLite gjenoppretter den automatisk |
| Tilhørende filer | Alltid plassert sammen med .db-hoveddatabasen og .db-wal-loggen |
| Mekanisme for krasjsikkerhet | Dobbeltkopi av WAL-indekshode; begge kopier sjekkes for konsistens ved åpning |
| Eksklusiv låsemodus | SQLite bruker heap-minne i stedet; ingen .db-shm-fil skrives til disk |
| MIME-type | application/octet-stream (ingen dedikert MIME-type) |
| Introdusert med | SQLite WAL-modus, versjon 3.7.0 (juli 2010) |
| Plattform | Android, iOS, Windows, Linux, macOS |
| Utgitt | 2010 (SQLite 3.7.0, WAL mode) |
| Siste versjon | SQLite 3.x (current; format tied to WAL implementation) |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | www.sqlite.org |
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om DB-SHM-filer.