Base Domoticz énorme - Nettoyage
Publié : 08 mai 2020, 06:21
Je me suis rendu compte récemment que ma base était très grosse : 270 Mo.
Et la fonction permettant de la sauvegarder ne fonctionnait plus :
Ça générait un fichier vide et c'est tout. Idem à partir des paramètres dans la page de l'interface web.
J'ai fouillé dedans avec DB Browser for SQLite après l'avoir téléchargée sur mon pc Windows.
J'ai trouvé près de 3 millions d'enregistrements dans la table LightingLog !
Ça semble enregistrer les actions On/Off sur les interrupteurs, mais aussi les titres qui passent sur les Kodi, ou sur Logitech Media Server, etc...
Bref, tout l'historique depuis Novembre 2019. Aucun intérêt.
Surtout que le paramètre qui va bien pour purger ça dans Domoticz est toujours fixé à 15 jours.
Pour nettoyer, j'ai essayé de laisser 15 jours d'historique en exécutant la syntaxe suivante :
Malheureusement j'ai eu un message d'erreur :
Dommage.
C'est peut-être pour ça que Domoticz n'arrivait pas à la purger non plus.
Alors j'ai procédé par séquences.
Je me suis servi de la colonne nValue qui avait l'air de ne pas prendre trop de valeurs.
En passant le sql suivant en faisant varier nValue de 0 à 9, j'ai pu supprimer tous les enregistrements.
Ensuite j'ai compacté la base de données (Outils/Compacter la base de données) et là elle a vraiment maigri ! 9 Mo seulement.
Je l'ai replacée dans le répertoire Domoticz d'où elle venait après avoir arrêté Domoticz et je l'ai redémarré.
C'est reparti.
La sauvegarde de la base refonctionne, nickel.
Enfin presque.
Il y avait cette petite erreur persistante dans le log qui m'inquiétait pour l'avenir.
Ça semblait lié au navigateur.
J'ai supprimé les cookies et vidé le cache ; plus d'erreur.
Tout fonctionne normalement depuis.
Et la fonction permettant de la sauvegarder ne fonctionnait plus :
Code : Tout sélectionner
curl -s http://localhost:8080/backupdatabase.php --output domoticz.db.backupJ'ai fouillé dedans avec DB Browser for SQLite après l'avoir téléchargée sur mon pc Windows.
J'ai trouvé près de 3 millions d'enregistrements dans la table LightingLog !
Ça semble enregistrer les actions On/Off sur les interrupteurs, mais aussi les titres qui passent sur les Kodi, ou sur Logitech Media Server, etc...
Bref, tout l'historique depuis Novembre 2019. Aucun intérêt.
Surtout que le paramètre qui va bien pour purger ça dans Domoticz est toujours fixé à 15 jours.
Pour nettoyer, j'ai essayé de laisser 15 jours d'historique en exécutant la syntaxe suivante :
Code : Tout sélectionner
delete from LightingLog where date < '2020-05-01';Code : Tout sélectionner
Result: database disk image is malformedC'est peut-être pour ça que Domoticz n'arrivait pas à la purger non plus.
Alors j'ai procédé par séquences.
Je me suis servi de la colonne nValue qui avait l'air de ne pas prendre trop de valeurs.
En passant le sql suivant en faisant varier nValue de 0 à 9, j'ai pu supprimer tous les enregistrements.
Code : Tout sélectionner
delete from LightingLog where nValue=0;Je l'ai replacée dans le répertoire Domoticz d'où elle venait après avoir arrêté Domoticz et je l'ai redémarré.
C'est reparti.
La sauvegarde de la base refonctionne, nickel.
Enfin presque.
Il y avait cette petite erreur persistante dans le log qui m'inquiétait pour l'avenir.
Code : Tout sélectionner
2020-05-08 05:46:17.709 Error: CheckAuthToken(1d6e3e4d78db2c3a28915a6ce1bf9188_YWFlNjU0MWQtNDljNi00NTNkLWJiYzEtZGVmODliYzM0MzZi) : session id not found
J'ai supprimé les cookies et vidé le cache ; plus d'erreur.
Tout fonctionne normalement depuis.