¿Qué es el formato de archivo DB-SHM?
Un archivo .db-shm es un archivo de índice de memoria compartida efímero creado automáticamente por SQLite cuando una base de datos opera en modo WAL (Write-Ahead Logging). Existe junto al archivo de base de datos principal y su archivo complementario .db-wal, formando juntos el conjunto de tres archivos que requiere el modo WAL.
El archivo tiene un tamaño fijo de 32 KB y es mapeado en memoria por todas las conexiones de SQLite que comparten la misma base de datos en modo WAL. Almacena encabezados de índice WAL y una tabla hash que mapea los números de trama WAL a los números de página de la base de datos, lo que permite a los lectores localizar eficientemente la versión más reciente de cada página sin escanear todo el archivo WAL.
A diferencia del archivo .db principal, el archivo .db-shm no almacena datos de usuario y no es portátil entre arquitecturas de CPU: su orden de bytes coincide con el de la máquina anfitriona. SQLite lo crea automáticamente cuando la primera conexión abre una base de datos en modo WAL y lo elimina limpiamente cuando se cierra la última conexión. Un archivo .db-shm remanente después de un fallo es seguro de eliminar, siempre que la base de datos no esté abierta actualmente; SQLite lo recrea en el siguiente acceso.
En el modo de bloqueo exclusivo, SQLite utiliza la memoria de montón (heap) en su lugar, por lo que no se escribe ningún archivo .db-shm en el disco. El archivo no puede ser abierto ni interpretado de manera significativa por ninguna herramienta que no sea el propio SQLite.
Seguridad y protección
RIESGO: LOWEl archivo .db-shm en sí mismo no contiene datos de usuario y no puede ser analizado de manera significativa. No tiene contenido ejecutable. El archivo de base de datos .db asociado puede contener datos personales sensibles (mensajes, contactos, etc.) dependiendo de la aplicación. Eliminar un archivo -shm obsoleto (cuando la base de datos está cerrada) es seguro; eliminarlo mientras la base de datos está abierta puede causar corrupción.
Detalles del formato
en pocas palabrasProgramas que abren archivos DB-SHM
Detalles técnicos
especificación profunda| Modo SQLite requerido | Modo WAL (Write-Ahead Logging); no se crea en modo journal o de bloqueo exclusivo |
| Tamaño del archivo | Fijo de 32 KB (un bloque de 32 KB por región de bloqueo) |
| Orden de bytes | Nativo de la máquina anfitriona; no es portátil entre arquitecturas de CPU |
| Codificación | Binario (estructuras del SO mapeadas en memoria; no es un formato serializado independiente) |
| Contenido | Encabezados de índice WAL y tabla hash que mapea números de trama WAL a números de página de la base de datos |
| Datos de usuario | No almacena datos de usuario; funciona como un índice de lectura del archivo complementario .db-wal |
| Ciclo de vida | Se crea automáticamente cuando se abre la primera conexión en modo WAL; se elimina automáticamente al cerrar la última conexión limpiamente |
| Recuperación de fallos | Seguro de eliminar manualmente si la base de datos no está abierta; SQLite lo recrea automáticamente |
| Archivos complementarios | Siempre ubicado junto a la base de datos principal .db y al registro de escritura anticipada .db-wal |
| Mecanismo de seguridad ante fallos | Encabezado de índice WAL de doble copia; ambas copias se verifican para consistencia al abrir |
| Modo de bloqueo exclusivo | SQLite utiliza memoria de montón en su lugar; no se escribe ningún archivo .db-shm en el disco |
| Tipo MIME | application/octet-stream (sin tipo MIME dedicado) |
| Introducido con | Modo WAL de SQLite, versión 3.7.0 (julio de 2010) |
| Plataforma | Android, iOS, Windows, Linux, macOS |
| Lanzado | 2010 (SQLite 3.7.0, WAL mode) |
| Última versión | SQLite 3.x (current; format tied to WAL implementation) |
| Estándar abierto | Sí · libre de regalías |
| Especificación | www.sqlite.org |
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos DB-SHM.