Actualmente uso el gestor de base de datos SQLite para hacer mis proyectos, la verdad que yo creo que es mucho más práctico que otros gestores de base de datos cuando se trata de implatar una base de datos de manera rápida o que no precise de un servidor de base de datos, además es simple, fácil de usar y es software libre!!!. Para los que no conozcan SQLite es un gestor de base de datos que trabaja en el disco duro, no crea un servicio como el caso de MySQL, PostrgreSQL, SQLServer, etc , si no , guarda y accede a la base de datos en el disco duro.
Bueno, la cosa es que, ayer tuve un pequeño problema con mi base de datos de SQLite, cuando hacia un select * from cache me salia el siguiente error:
Error: database disk image is malformed
Y no me permitía agregar o eliminar registros a esa tabla.
2. Verificar la base de datos
Así que decidí realizar una revisión de la BD primero abrimos la base de datos a través de sqlite:
sqlite3 database.db
Ahora ejecutamos una validación
pragma integrity_check;
Y pués me terminaba por confirmar que la BD estaba dañada.
3. Solucionar el problema
Después de tanto buscar y hacer pruebas logré arreglar mi base de datos creando un backup:
sqlite3 database.db .dump > database.sql
Y cargandolo en una nueva base de datos:
sqlite3 database_nueva.db < database.sql
Y si eres vago esta la forma rapida:
sqlite3 database.db .dump | sqlite3 database_nueva.db
Espero les sirva este pequeño tip, Saludos :).
Comentarios
Enviado por Max (no verificado) el Jue, 05/23/2013 - 05:32 Enlace permanente
Datos de whatsapp
pues quería acceder las conversaciones de mi móvil a través de mi ordenador, y buscando en la red me topé que lo podía hacer con el Whatsapp.Xtract, usándolo con el Python. Como verás no sé mucho de informática. Y lo hice y funcionó. Pero lo he intentado otra vez, para listar una conversación con mi antiguo jefe que me interesa y me sale el siguiente error.
error sqlite3. Error while reading chat #66925: database disk image is malformed
Se puede salvar este escollo o es imposible???
Gracias, me sería de gran ayuda
Claro que si se puede recuperar
Claro que si se puede recuperar, pero la información dañada no se podrá recuperar.
Primero debes identificar donde está la base de datos de SQLite que usa el whatsapp, finalmente debes hacer es hacer un backup de tu base de datos dañada en sqlite con el siguiente comando:
sqlite3 daniado.db .dump > sql.sql
Deebes cargar el backup que creaste a una nueva base de datos:
sqlite3 nueva.db < sql.sql
Debes reemplazar la base de datos dañada por la nueva generada.
Estos errores en sqlite se deben usualmente a problemas en el disco, o transacciones no finalizadas al hacer uso de la base de datos.
Enviado por Jaume (no verificado) el Lun, 03/31/2014 - 16:34 Enlace permanente
Archivo corrupto
En mi caso puedo leer algunas pocas conversaciones en msgstore.plain.db , eso significa que las que no se pueden leer estan perdidas, o hay alguna manera de recuperarlas? Gracias.
Podría ser posible
Si haz realizado los pasos mostrados en éste artículo para recuperar la BD Sqlite ya no es posible recuperar más, debido a que sqlite intenta recuperar sólo los sectores que puede leer del archivo y descarta los sectores dónde es ilegible.
Otra opción para intentar recuperar es undark , sería cuestión de que sigas buscando en internet algunas otras opciones.
Finalmente, el problema de database disk image is malformed en SQLite es causado usualmente por fallos de lectura-escritura en el disco duro.
Enviado por Jaume (no verificado) el Mar, 04/01/2014 - 02:19 Enlace permanente
No, no he intentado arreglar
No, no he intentado arreglar la base de datos, esto me sale con el xtract, pero solo veo frases sueltas por todo el archivo....si yo no lo puedo arreglar conoceis alguien que pueda hacerlo? Gracias.
Puedes enviármelo
Puedes enviármelo a mi correo, para ver si te puedo ayudar.
Enviado por Jaume (no verificado) el Mié, 04/02/2014 - 06:17 Enlace permanente
Claro que sii, muchas gracias
Claro que sii, muchas gracias, a que correo te lo mando?
Correo
Envíamelo a mi correo de homtail, misterio77777
Enviado por jorge barajas (no verificado) el Mar, 11/12/2013 - 07:41 Enlace permanente
duda
tengo el mismo error , leo la solucion pero no tengo la menor idea de como hacer eso, como lo identifico la base de datos, como realizo el backuop y donde , en que ventana , si pudieras hacer mas sencilla la informacion te lo agradeceria mucho
Re: duda
Perfecto, déjame ponerte en contexto:
- La solución propuesta en éste apunte es a base de ejecución de comandos bajo GNU/Linux(cualquier distribución.
- Debes tener instalado el ejecutable sqlite desde tu gestor de paquetes
- Abres una consola y escribe los comando propuestos.
En caso de que uses una distribución windows puedes descargar el binario en: http://www.sqlite.org/download.html, el nombre del archivo es sqlite-shell-win32-x86-3080100.zip.
- Descomprimes en tu carpeta system de windows
- Abres un consola (cmd) y ejecutas los comandos propuestos
Enviado por edson (no verificado) el Vie, 12/06/2013 - 14:11 Enlace permanente
OTRA DUDA
amigo trate de aser lo que propones pero me sale syntaxis error como podria aser ese que pongo los comandos propuestos y me sale lo mismo.
gracias por tu ayuda
RE: OTRA DUDA
Cuál es el comando que usas?? y qué mensaje es el que exactamente te sale?