¿Cuáles son las extensiones .db-shm y .db-wal en las bases de datos Sqlite?
Estoy viendo un comportamiento extraño con mi aplicación y el estado de su archivo de base de datos después de ejecutar algunas pruebas que cierran la base de datos, lo borran y lo reemplazan con un dispositivo de prueba. Cuando examino el archivo de base de datos con una herramienta en mi PC de depuración, no coincide con lo que la aplicación en sí parece estar informando. Es posible que este comportamiento extraño esté relacionado con este error .
Me di cuenta de que hay dos archivos con el mismo nombre de base que la base de datos (con la extensión normal .db
). Las extensiones de archivo son .db-shm
y .db-wal
, y cada una es más reciente que la de timestamp del archivo .db
.
- Unidad de pruebas de creación de una base de datos SQLite utilizando Spock y Robospock
- ¿Dónde deben llamar las aplicaciones de Android a SQLite getWritableDatabase?
- Tablas de relación en sqlite en android
- Excepción no manipulada org.json.jsonexception
- Android: ¿ver bases de datos SQLite en el dispositivo?
Supongo que estos son algunos tipos de archivos temporales. Sin embargo, me pregunto si la aplicación se termina, no deberían ser eliminados? Más importante aún, asumo que los datos almacenados en ellos se actualizan dentro del archivo .db
antes de que la aplicación termine con el sistema operativo. ¿Es esto correcto?
- ¿Cómo almacena una colección de cadenas en SQLite en Android?
- Problema con SQL Query Android Where Clause
- ¿Cómo utilizar correctamente TextSwitcher en ListView?
- Cómo obtener fechas de la base de datos y comprobar si se solapan?
- Android: Ampliación del libro de contactos del usuario. Rendimiento ContentProvider vs Sqlite vs Lista en la memoria
- GreenDAO - clave primaria en varias columnas
- Falta de tabla en SQLite con la versión específica de HTC DESIRE HD
- Problema en la lectura de la base de datos sqllite
Usted es correcto, estos son archivos temporales creados por SQLite. Si está borrando manualmente el db principal, probablemente debería eliminarlos también. Por lo que puedo recopilar, el WAL es un reemplazo para el diario de reversión que permite a SQLite anular los cambios cuando falla una transacción. ¿Cómo SQLite los utiliza y por qué se mantienen alrededor durante tanto tiempo depende de los autores de SQLite, pero en general SQLite parece bastante sólida roca, así que no me preocuparía demasiado sobre ellos. Para más información echa un vistazo aquí:
http://www.sqlite.org/fileformat2.html#walindexformat
Estos archivos son una nueva característica de SQLite 3.7. No estoy seguro de si su existencia se relaciona con el error que usted señala, pero el informe de errores sugiere un trabajo de todos modos.
- ¿Cómo expandir una altura de diseño con animación?
- No se pudo obtener la URL https://dl-ssl.google.com/android/repository/addons_list-1.xml, razón: La conexión a https://dl-ssl.google.com se rechazó