Wat is het DB-SHM-bestandsformaat?
Een .db-shm bestand is een vluchtig gedeeld-geheugen indexbestand dat automatisch door SQLite wordt aangemaakt wanneer een database werkt in WAL-modus (Write-Ahead Logging). Het bestaat naast het hoofddatabasebestand en het bijbehorende .db-wal bestand, en vormt samen de set van drie bestanden die de WAL-modus vereist.
Het bestand heeft een vaste grootte van 32 KB en wordt via memory-mapping gedeeld door alle SQLite-verbindingen die dezelfde database in WAL-modus gebruiken. Het slaat WAL-indexheaders en een hashtabel op die WAL-framenummers koppelt aan database-paginanummers, waardoor lezers efficiënt de nieuwste versie van elke pagina kunnen vinden zonder het hele WAL-bestand te hoeven scannen.
In tegenstelling tot het hoofd .db bestand bevat het .db-shm bestand geen gebruikersgegevens en is het niet overdraagbaar tussen verschillende CPU-architecturen - de bytevolgorde komt overeen met die van de hostmachine. SQLite maakt het automatisch aan wanneer de eerste verbinding een database in WAL-modus opent en verwijdert het netjes wanneer de laatste verbinding wordt verbroken. Een achtergebleven .db-shm bestand na een crash kan veilig worden verwijderd, mits de database op dat moment niet geopend is; SQLite maakt het bij de volgende toegang opnieuw aan.
In de exclusieve vergrendelingsmodus gebruikt SQLite in plaats daarvan heap-geheugen, waardoor er geen .db-shm bestand naar de schijf wordt geschreven. Het bestand kan door geen enkel ander hulpmiddel dan SQLite zelf zinvol worden geopend of geïnterpreteerd.
Beveiliging & veiligheid
RISICO: LOWHet .db-shm bestand zelf bevat geen gebruikersgegevens en kan niet zinvol worden geanalyseerd. Geen uitvoerbare inhoud. Het bijbehorende .db-databasebestand kan gevoelige persoonlijke gegevens bevatten (berichten, contacten, enz.), afhankelijk van de applicatie. Het verwijderen van een verouderd -shm bestand (wanneer de database gesloten is) is veilig; het verwijderen terwijl de database open is, kan corruptie veroorzaken.
Formaatdetails
in een notendopProgramma's die DB-SHM-bestanden openen
Technische details
diepe specificaties| Vereiste SQLite-modus | WAL (Write-Ahead Logging) modus; wordt niet aangemaakt in journal- of exclusieve vergrendelingsmodus |
| Bestandsgrootte | Vast 32 KB (één blok van 32 KB per vergrendelingsregio) |
| Bytevolgorde | Systeemeigen voor de hostmachine; niet overdraagbaar tussen CPU-architecturen |
| Codering | Binair (geheugengemapte OS-structuren; geen zelfstandig geserialiseerd formaat) |
| Inhoud | WAL-indexheaders en hashtabel die WAL-framenummers koppelt aan database-paginanummers |
| Gebruikersgegevens | Bevat geen gebruikersgegevens; fungeert als een lees-index van het bijbehorende .db-wal bestand |
| Levenscyclus | Automatisch aangemaakt bij de eerste WAL-modus verbinding; automatisch verwijderd bij de laatste schone afsluiting |
| Herstel na crash | Veilig om handmatig te verwijderen als de database niet geopend is; SQLite maakt het automatisch opnieuw aan |
| Bijbehorende bestanden | Altijd op dezelfde locatie als de .db hoofddatabase en het .db-wal write-ahead log |
| Crash-veiligheidsmechanisme | Dubbele kopie van de WAL-indexheader; beide kopieën worden bij opening gecontroleerd op consistentie |
| Exclusieve vergrendelingsmodus | SQLite gebruikt in plaats daarvan heap-geheugen; er wordt geen .db-shm bestand naar de schijf geschreven |
| MIME-type | application/octet-stream (geen specifiek MIME-type) |
| Geïntroduceerd met | SQLite WAL-modus, versie 3.7.0 (juli 2010) |
| Platform | Android, iOS, Windows, Linux, macOS |
| Uitgebracht | 2010 (SQLite 3.7.0, WAL mode) |
| Laatste versie | SQLite 3.x (current; format tied to WAL implementation) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | www.sqlite.org |
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over DB-SHM-bestanden.