Qu'est-ce que le format de fichier DB-SHM ?
Un fichier .db-shm est un fichier d'index en mémoire partagée éphémère créé automatiquement par SQLite lorsqu'une base de données fonctionne en mode WAL (Write-Ahead Logging). Il existe aux côtés du fichier de base de données principal et de son fichier compagnon .db-wal, formant ensemble l'ensemble de trois fichiers requis par le mode WAL.
Le fichier a une taille fixe de 32 Ko et est mappé en mémoire par toutes les connexions SQLite partageant la même base de données en mode WAL. Il stocke les en-têtes d'index WAL et une table de hachage mappant les numéros de trame WAL aux numéros de page de la base de données, permettant aux lecteurs de localiser efficacement la dernière version de chaque page sans scanner l'intégralité du fichier WAL.
Contrairement au fichier .db principal, le fichier .db-shm ne stocke aucune donnée utilisateur et n'est pas portable entre les architectures de processeur - son ordre des octets correspond à celui de la machine hôte. SQLite le crée automatiquement lors de l'ouverture de la première connexion à une base de données en mode WAL et le supprime proprement lors de la fermeture de la dernière connexion. Un fichier .db-shm résiduel après un plantage peut être supprimé sans risque, à condition que la base de données ne soit pas actuellement ouverte ; SQLite le recréera lors du prochain accès.
En mode de verrouillage exclusif, SQLite utilise la mémoire tas à la place, de sorte qu'aucun fichier .db-shm n'est écrit sur le disque. Le fichier ne peut être ouvert ou interprété de manière significative par aucun outil autre que SQLite lui-même.
Sécurité et sûreté
RISQUE : LOWLe fichier .db-shm lui-même ne contient aucune donnée utilisateur et ne peut pas être analysé de manière significative. Aucun contenu exécutable. Le fichier de base de données .db associé peut contenir des données personnelles sensibles (messages, contacts, etc.) selon l'application. La suppression d'un fichier -shm obsolète (lorsque la base de données est fermée) est sûre ; le supprimer alors que la base de données est ouverte peut causer une corruption.
Détails du format
en brefProgrammes qui ouvrent les fichiers DB-SHM
Détails techniques
spécifications approfondies| Mode SQLite requis | Mode WAL (Write-Ahead Logging) ; non créé en mode journal ou verrouillage exclusif |
| Taille du fichier | Fixe à 32 Ko (un bloc de 32 Ko par région de verrouillage) |
| Ordre des octets | Natif de la machine hôte ; non portable entre architectures CPU |
| Encodage | Binaire (structures OS mappées en mémoire ; pas un format sérialisé autonome) |
| Contenu | En-têtes d'index WAL et table de hachage mappant les numéros de trame WAL aux numéros de page de base de données |
| Données utilisateur | Ne stocke aucune donnée utilisateur ; fonctionne comme un index de lecture du fichier compagnon .db-wal |
| Cycle de vie | Créé automatiquement à l'ouverture de la première connexion WAL ; supprimé automatiquement à la dernière fermeture propre |
| Récupération après plantage | Sûr à supprimer manuellement si la base de données n'est pas ouverte ; SQLite le recrée automatiquement |
| Fichiers compagnons | Toujours situé au même endroit que la base de données principale .db et le journal .db-wal |
| Mécanisme de sécurité anti-plantage | En-tête d'index WAL à double copie ; les deux copies sont vérifiées pour la cohérence à l'ouverture |
| Mode de verrouillage exclusif | SQLite utilise la mémoire tas à la place ; aucun fichier .db-shm n'est écrit sur le disque |
| Type MIME | application/octet-stream (pas de type MIME dédié) |
| Introduit avec | Mode SQLite WAL, version 3.7.0 (juillet 2010) |
| Plateforme | Android, iOS, Windows, Linux, macOS |
| Publié | 2010 (SQLite 3.7.0, WAL mode) |
| Dernière version | SQLite 3.x (current; format tied to WAL implementation) |
| Standard ouvert | Oui · libre de droits |
| Spécification | www.sqlite.org |
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers DB-SHM.