Hvad er DB-SHM-filformatet?
En .db-shm fil er en midlertidig delt hukommelsesindeksfil (shared-memory), der oprettes automatisk af SQLite, når en database fungerer i WAL-tilstand (Write-Ahead Logging). Den findes sammen med den primære databasefil og dens ledsagende .db-wal fil, og tilsammen udgør de det sæt af tre filer, som WAL-tilstand kræver.
Filen har en fast størrelse på 32 KB og er hukommelsesmappet af alle SQLite-forbindelser, der deler den samme WAL-database. Den gemmer WAL-indekshoveder og en hash-tabel, der mapper WAL-framenumre til database-sidenumre, hvilket gør det muligt for læsere effektivt at finde den nyeste version af hver side uden at scanne hele WAL-filen.
I modsætning til den primære .db fil gemmer .db-shm filen ingen brugerdata og er ikke portabel på tværs af CPU-arkitekturer - dens byte-rækkefølge matcher værtsmaskinen. SQLite opretter den automatisk, når den første forbindelse åbner en WAL-database, og sletter den korrekt, når den sidste forbindelse lukkes. En efterladt .db-shm fil efter et nedbrud er sikker at slette, forudsat at databasen ikke er åben i øjeblikket; SQLite genopretter den ved næste adgang.
I eksklusiv låsetilstand bruger SQLite i stedet heap-hukommelse, så ingen .db-shm fil skrives til disken. Filen kan ikke åbnes eller fortolkes meningsfuldt af andre værktøjer end SQLite selv.
Sikkerhed og tryghed
RISIKO: LOWSelve .db-shm filen indeholder ingen brugerdata og kan ikke parses meningsfuldt. Intet eksekverbart indhold. Den tilhørende .db-databasefil kan indeholde følsomme personlige data (beskeder, kontakter osv.) afhængigt af applikationen. Sletning af en forældet -shm-fil (når databasen er lukket) er sikkert; sletning af den, mens databasen er åben, kan forårsage korruption.
Formatdetaljer
kort fortaltProgrammer der åbner DB-SHM-filer
Tekniske detaljer
dyb specifikation| Påkrævet SQLite-tilstand | WAL (Write-Ahead Logging) tilstand; oprettes ikke i journal- eller eksklusiv låsetilstand |
| Filstørrelse | Fast 32 KB (én 32 KB blok pr. låseregion) |
| Byte-rækkefølge | Værtsmaskinens oprindelige; ikke portabel på tværs af CPU-arkitekturer |
| Kodning | Binær (hukommelsesmappede OS-strukturer fra OS; ikke et selvstændigt serialiseret format) |
| Indhold | WAL-indekshoveder og hash-tabel, der mapper WAL-framenumre til database-sidenumre |
| Brugerdata | Gemmer ingen brugerdata; fungerer som et læse-indeks for den ledsagende .db-wal fil |
| Livscyklus | Oprettes automatisk, når den første WAL-forbindelse åbnes; slettes automatisk ved sidste korrekte lukning |
| Gendannelse efter nedbrud | Sikker at slette manuelt, hvis databasen ikke er åben; SQLite genopretter den automatisk |
| Ledsagende filer | Altid placeret sammen med .db-hoveddatabasen og .db-wal write-ahead loggen |
| Sikkerhedsmekanisme ved nedbrud | Dobbelt-kopi WAL-indekshoved; begge kopier tjekkes for konsistens ved åbning |
| Eksklusiv låsetilstand | SQLite bruger heap-hukommelse i stedet; ingen .db-shm fil skrives til disken |
| MIME-type | application/octet-stream (ingen dedikeret MIME-type) |
| Introduceret med | SQLite WAL-tilstand, version 3.7.0 (juli 2010) |
| Platform | Android, iOS, Windows, Linux, macOS |
| Udgivet | 2010 (SQLite 3.7.0, WAL mode) |
| Seneste version | SQLite 3.x (current; format tied to WAL implementation) |
| Åben standard | Ja · royaltyfri |
| Specifikation | www.sqlite.org |
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om DB-SHM-filer.