[Tuto] Réparer une base de donnée "malformed"
Publié : 16 juil. 2023, 12:04
Hello tous le monde je viens de rencontrer un problème avec mon domoticz
Error: Error performing operation: 'database disk image is malformed'
Après de multiple recherche des solutions qui ne fonctionne pas sur ma base de donnée
j'ai trouver la solution https://support.storj.io/hc/en-us/artic ... malformed-
dans un premier temps arrêté domoticz
ensuite direction le répertoire de domoticz
on regarde quel est la taille de la base de donnée
faire une copie de sauvegarde de la base de donnée
maintenant on vas crée un fichier d’exécution SQL pour sortir les données de la base
une fois le fichier créé on va l'édité
on peut supprimer la base corrompue (mais etre bien sur d'avoir une copie de sauvegarde
maintenant on vas recréé la base complète cette étape peut prendre du temps 5, 10, voir 15 min ou plus en fonction de la taille de la base au départ
une fois tous ça fait on vérifie simplement que la BD ai une taille à peut prés similaire à la précédente (bien faire attention que celle-ci soit supérieur à 0)
vous pouvez redémarrer domoticz
En espérant que cela pourra en aidé quelque un qui on aussi ce genre de problème
pour tous exécuté en une fois
Error: Error performing operation: 'database disk image is malformed'
Après de multiple recherche des solutions qui ne fonctionne pas sur ma base de donnée
j'ai trouver la solution https://support.storj.io/hc/en-us/artic ... malformed-
dans un premier temps arrêté domoticz
Code : Tout sélectionner
sudo systemctl stop domoticz.serviceCode : Tout sélectionner
cd domoticz/Code : Tout sélectionner
ls -l -h domoticz.dbCode : Tout sélectionner
cp domoticz.db domoticz.db.bakCode : Tout sélectionner
sqlite3 domoticz.db
.mode insert
.output dump_all.sql
.dump
.exit
Code : Tout sélectionner
cat dump_all.sql | grep -v TRANSACTION | grep -v ROLLBACK | grep -v COMMIT >dump_all_notrans.sqlCode : Tout sélectionner
sudo rm -f domoticz.dbCode : Tout sélectionner
sqlite3 domoticz.db ".read dump_all_notrans.sql"Code : Tout sélectionner
ls -l -h domoticz.dbCode : Tout sélectionner
sudo systemctl start domoticz.servicepour tous exécuté en une fois
Code : Tout sélectionner
sudo systemctl stop domoticz.service
cd domoticz/
ls -l -h domoticz.db
cp domoticz.db domoticz.db.bak
sqlite3 domoticz.db
.mode insert
.output dump_all.sql
.dump
.exit
cat dump_all.sql | grep -v TRANSACTION | grep -v ROLLBACK | grep -v COMMIT >dump_all_notrans.sql
sudo rm -f domoticz.db
sqlite3 domoticz.db ".read dump_all_notrans.sql"
ls -l -h domoticz.db
sudo systemctl start domoticz.service