[resolu]erreur sql query-->certains logs ne fonctionnent plus
-
frenchyyii
- Messages : 310
- Inscription : 16 oct. 2015, 06:29
Re: [resolu]erreur sql query-->certains logs ne fonctionnent plus
Je deterre, même souci de mon côté que je n'arrive pas à solutionner. Ca me gave...
Re: [resolu]erreur sql query-->certains logs ne fonctionnent plus
Bonjour
Tu as bien avancé avec cette remarque !frenchyyii a écrit : Ca me gave...
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Objectif : WAF > 1
-
frenchyyii
- Messages : 310
- Inscription : 16 oct. 2015, 06:29
Re: [resolu]erreur sql query-->certains logs ne fonctionnent plus
Ca me gave car tout tombe en panne en ce moment lol 
-
frenchyyii
- Messages : 310
- Inscription : 16 oct. 2015, 06:29
Re: [resolu]erreur sql query-->certains logs ne fonctionnent plus
Après m'être bien emmer... avec l'addon firefox, visual studio et différents softs, en extrayant le sql, en le modifiant etc ... finalement il semblerait que j'ai réussi à réparer ma base tout simplement grace à cette tout bête manip (merci à l'auteur d'ailleurs)
https://community.spiceworks.com/how_to ... e-database
Sous windows
Le lien des softs à télécharger est exactement celui-ci:
http://www.sqlite.org/2017/sqlite-tools ... 170000.zip
Placez directement votre fichier domoticz.db (que vous téléchargez par ex avec wincsp après avoir stoppé DZ (sudo service domoticz stop) dans le directory où il y a les exécutables.
Renommez le en domoticzMF.db
Pour aller vite et vérifier l'intégrité lancez en double cliquant sqlite3.exe
puis tappez:
.open domoticzMF.db
pragma check_integrity;
La réponse vous affichera les erreurs de la base, il faut donc la réparer. Si pas d’erreurs ca affiche ok.
Pour réparer: lancer une commande dos avec CMD, naviguez jusqu'au directory dans lequel se trouvent la base et les softs (avec cd "directory suivantdans lequel vous voulez aller", google est votre pour les commandes dos)
Une fois dans le directory:
Exécutez la commande suivante:
echo .dump | sqlite3.exe domoticzMF.db > domoticzextrait.sql
Vous allez voir apparaitre un nouveau fichier domoticzextrait.sql qui est la base directement en sql issue de notre fichier malformé.
On va alors réintégrer cette base sql dans un fichier .db directement utilisable sous domoticz.
Lancez la commande:
sqlite3.exe -init domoticzextrait.sql domoticz.db
Un nouveau fichier domoticz.db devrait apparaitre dans le dossier avec une taille différente de domoticzMF.db, c'est la nouvelle base réparée que l'on va pouvoir directement intégrer à notre DZ.
Repartez dans wincsp et renommez la base corrompu qui se trouve toujours dans domoticz en doomoticzpoubelle par ex ou même supprimez le.
Renvoyez la base domoticz.db que vous avez recrée et qui se trouve dans le directory avec les soft.
Relancez DZ "sudo service domoticz start" et vérifiez vos logs ca devrait être bon.
https://community.spiceworks.com/how_to ... e-database
Sous windows
Le lien des softs à télécharger est exactement celui-ci:
http://www.sqlite.org/2017/sqlite-tools ... 170000.zip
Placez directement votre fichier domoticz.db (que vous téléchargez par ex avec wincsp après avoir stoppé DZ (sudo service domoticz stop) dans le directory où il y a les exécutables.
Renommez le en domoticzMF.db
Pour aller vite et vérifier l'intégrité lancez en double cliquant sqlite3.exe
puis tappez:
.open domoticzMF.db
pragma check_integrity;
La réponse vous affichera les erreurs de la base, il faut donc la réparer. Si pas d’erreurs ca affiche ok.
Pour réparer: lancer une commande dos avec CMD, naviguez jusqu'au directory dans lequel se trouvent la base et les softs (avec cd "directory suivantdans lequel vous voulez aller", google est votre pour les commandes dos)
Une fois dans le directory:
Exécutez la commande suivante:
echo .dump | sqlite3.exe domoticzMF.db > domoticzextrait.sql
Vous allez voir apparaitre un nouveau fichier domoticzextrait.sql qui est la base directement en sql issue de notre fichier malformé.
On va alors réintégrer cette base sql dans un fichier .db directement utilisable sous domoticz.
Lancez la commande:
sqlite3.exe -init domoticzextrait.sql domoticz.db
Un nouveau fichier domoticz.db devrait apparaitre dans le dossier avec une taille différente de domoticzMF.db, c'est la nouvelle base réparée que l'on va pouvoir directement intégrer à notre DZ.
Repartez dans wincsp et renommez la base corrompu qui se trouve toujours dans domoticz en doomoticzpoubelle par ex ou même supprimez le.
Renvoyez la base domoticz.db que vous avez recrée et qui se trouve dans le directory avec les soft.
Relancez DZ "sudo service domoticz start" et vérifiez vos logs ca devrait être bon.
-
frenchyyii
- Messages : 310
- Inscription : 16 oct. 2015, 06:29
Re: [resolu]erreur sql query-->certains logs ne fonctionnent plus
Bon j'ai résolu des souci de base malformée qui entrainaient la perte de mes logs a court terme mais restent des soucis de vacuum et du coup impossible de faire les backups.
J'ai pourtant étendu tmpfs à 32M mais ca ne suffit pas.
J'ai pourtant étendu tmpfs à 32M mais ca ne suffit pas.
Re: [resolu]erreur sql query-->certains logs ne fonctionnent plus
Ohhh MMMMMEEERRRRCCCIIIII....
J'ai enfin réussi à restaurer ma base de donnée qui n'avait que des problèmes d'erreur sql à chaque changement d'état d'un devis et évidement aucunes données dans les logs de ces devis.
Mais maintenant tout refonctionne parfaitement pour l'instant et je n'ai plus aucune ligne ROUGE pas belle
MMMMEEERRRCCCIIIII
J'ai enfin réussi à restaurer ma base de donnée qui n'avait que des problèmes d'erreur sql à chaque changement d'état d'un devis et évidement aucunes données dans les logs de ces devis.
Mais maintenant tout refonctionne parfaitement pour l'instant et je n'ai plus aucune ligne ROUGE pas belle
MMMMEEERRRCCCIIIII
Re: [resolu]erreur sql query-->certains logs ne fonctionnent plus
Hello, je sais je déterre le sujet de loin, mais ça ma sauvé !
J'avais ces erreurs :
Grace à frenchyyii et "sqlite-tools-win32-x86-3170000" j'ai pu faire une nouvelle BDD avec plus aucune erreurs (dans les graphiques, j'avais des bugs un peu partout sur les température surtout : manque des valeurs journalières, valeurs en double sur le graphique, ...)
J'avais ces erreurs :
Code : Tout sélectionner
2021-12-15 12:25:00.315 Error: SQL Query("INSERT INTO Percentage (DeviceRowID, Percentage) VALUES ('759', '15')") : database disk image is malformed
2021-12-15 12:25:00.335 Error: SQL Query("INSERT INTO Percentage (DeviceRowID, Percentage) VALUES ('1042', '100')") : database disk image is malformed
2021-12-15 12:25:00.336 Error: SQL Query("INSERT INTO Percentage (DeviceRowID, Percentage) VALUES ('1044', '15')") : database disk image is malformed
2021-12-15 12:25:00.340 Error: SQL Query("DELETE FROM Temperature WHERE strftime('%s',datetime('now','localtime')) - strftime('%s',Date) > (SELECT p.nValue * 86400 From Preferences AS p WHERE p.Key='5MinuteHistoryDays')") : database disk image is malformed
2021-12-15 12:25:00.365 Error: SQL Query("DELETE FROM Meter WHERE strftime('%s',datetime('now','localtime')) - strftime('%s',Date) > (SELECT p.nValue * 86400 From Preferences AS p WHERE p.Key='5MinuteHistoryDays')") : database disk image is malformed
2021-12-15 12:25:00.378 Error: SQL Query("DELETE FROM Percentage WHERE strftime('%s',datetime('now','localtime')) - strftime('%s',Date) > (SELECT p.nValue * 86400 From Preferences AS p WHERE p.Key='5MinuteHistoryDays')") : database disk image is malformed
2021-12-15 12:26:40.311 Error: SQL Query("SELECT Temperature, Chill, Humidity, Barometer, Date, SetPoint FROM Temperature WHERE (DeviceRowID==33) ORDER BY Date ASC") : database disk image is malformed
2021-12-15 12:26:40.353 Error: SQL Query("SELECT MIN(Temperature), MAX(Temperature), MIN(Chill), MAX(Chill), AVG(Humidity), AVG(Barometer), AVG(Temperature), MIN(SetPoint), MAX(SetPoint), AVG(SetPoint) FROM Temperature WHERE (DeviceRowID==33 AND Date>='2021-12-15')") : database disk image is malformed
2021-12-15 12:26:40.401 Error: SQL Query("SELECT MIN(Temperature), MAX(Temperature), MIN(Chill), MAX(Chill), AVG(Humidity), AVG(Barometer), AVG(Temperature), MIN(SetPoint), MAX(SetPoint), AVG(SetPoint) FROM Temperature WHERE (DeviceRowID==33 AND Date>='2021-12-15')") : database disk image is malformed
2021-12-15 12:26:46.565 Error: SQL Query("DELETE FROM Temperature WHERE (DeviceRowID=='33') AND (Date>='2021-12-15 03:20:00') AND (Date<='2021-12-15 03:22:00')") : database disk image is malformed
2021-12-15 12:26:46.716 Error: SQL Query("SELECT Temperature, Chill, Humidity, Barometer, Date, SetPoint FROM Temperature WHERE (DeviceRowID==33) ORDER BY Date ASC") : database disk image is malformed
2021-12-15 12:26:46.728 Error: SQL Query("SELECT MIN(Temperature), MAX(Temperature), MIN(Chill), MAX(Chill), AVG(Humidity), AVG(Barometer), AVG(Temperature), MIN(SetPoint), MAX(SetPoint), AVG(SetPoint) FROM Temperature WHERE (DeviceRowID==33 AND Date>='2021-12-15')") : database disk image is malformed
2021-12-15 12:26:46.745 Error: SQL Query("SELECT MIN(Temperature), MAX(Temperature), MIN(Chill), MAX(Chill), AVG(Humidity), AVG(Barometer), AVG(Temperature), MIN(SetPoint), MAX(SetPoint), AVG(SetPoint) FROM Temperature WHERE (DeviceRowID==33 AND Date>='2021-12-15')") : database disk image is malformedRe: [resolu]erreur sql query-->certains logs ne fonctionnent plus
Bonjour à la communauté, et Meilleurs voeux
Petit update de ce tuto, car :
- je suis en docker, il n'y plus de notion de "service"
- je n'aime pas installer des produits tiers pour faire du debug
J'ai donc adopté la méthodo suivante :
1°) export de la bdd depuis le GUI Domoticz
2°) réparation de la bdd sur windows, avec sqlite
3°) import de la bdd depuis le GUI Domoticz
Mode opératoire pour vérifier l'intégrité et réparer la BDD (poste windows) :
----------------------------------------------------------------
Aucune installation nécessaire sur windows, pas besoin de modifier le path puis que l'on travaille dans le même répertoire
Dans un répertoire <sqlite3>, télécharger sqlite3 sur https://www.sqlite.org/download.html
(2 fichiers zip pour windows), dezipper les fichiers (sqlite3.dll, sqlite3.exe, sqlite3.def, ...) et les mettre à la racine du répertoire <sqlite3>
copier dans <sqlite3> le fichier bdd exporté depuis Domoticz
"mabdd.db"
ouvrir une fenêtre cmd
se placer dans le répertoire <sqlite3>
ouvrir la bdd
"sqlite3 mabdd.db"
vérifier les éventuelles erreurs
"pragma integrity_check"
et pas "check_integrity", comme dans le post précédent
-> si la structure du fichier est ok, ça retourne "ok". Et vous pouvez vous arrêter là, ce tuto ne va pas résoudre vos soucis
-> sinon ça énumère les erreurs mais ne les corrige pas
si erreurs : toujours dans sqlite
".output mabdd.sql"
".dump"
ça met un peu de temps (qqs minutes), regarder dans le gestionnaire de tâches que le processus travaille
la taille du fichier .sql généré doit être voisine du fichier .db
si pb -> désactiver l'antivirus (j'ai eu le cas avec malwarebyte)
".exit"
Puis pour regénérer le fichier <newbdd.db>
"sqlite3 -init mabdd.sql newbdd.db"
Idem ça prend qqs minutes
Par acquis de conscience vous pouvez refaire l'integrity_check sur la nouvelle bdd.
Voila, il ne reste plus qu'à importer <newbdd.db> via le GUI Domoticz
Petit update de ce tuto, car :
- je suis en docker, il n'y plus de notion de "service"
- je n'aime pas installer des produits tiers pour faire du debug
J'ai donc adopté la méthodo suivante :
1°) export de la bdd depuis le GUI Domoticz
2°) réparation de la bdd sur windows, avec sqlite
3°) import de la bdd depuis le GUI Domoticz
Mode opératoire pour vérifier l'intégrité et réparer la BDD (poste windows) :
----------------------------------------------------------------
Aucune installation nécessaire sur windows, pas besoin de modifier le path puis que l'on travaille dans le même répertoire
Dans un répertoire <sqlite3>, télécharger sqlite3 sur https://www.sqlite.org/download.html
(2 fichiers zip pour windows), dezipper les fichiers (sqlite3.dll, sqlite3.exe, sqlite3.def, ...) et les mettre à la racine du répertoire <sqlite3>
copier dans <sqlite3> le fichier bdd exporté depuis Domoticz
"mabdd.db"
ouvrir une fenêtre cmd
se placer dans le répertoire <sqlite3>
ouvrir la bdd
"sqlite3 mabdd.db"
vérifier les éventuelles erreurs
"pragma integrity_check"
et pas "check_integrity", comme dans le post précédent
-> si la structure du fichier est ok, ça retourne "ok". Et vous pouvez vous arrêter là, ce tuto ne va pas résoudre vos soucis
-> sinon ça énumère les erreurs mais ne les corrige pas
si erreurs : toujours dans sqlite
".output mabdd.sql"
".dump"
ça met un peu de temps (qqs minutes), regarder dans le gestionnaire de tâches que le processus travaille
la taille du fichier .sql généré doit être voisine du fichier .db
si pb -> désactiver l'antivirus (j'ai eu le cas avec malwarebyte)
".exit"
Puis pour regénérer le fichier <newbdd.db>
"sqlite3 -init mabdd.sql newbdd.db"
Idem ça prend qqs minutes
Par acquis de conscience vous pouvez refaire l'integrity_check sur la nouvelle bdd.
Voila, il ne reste plus qu'à importer <newbdd.db> via le GUI Domoticz
====================================================
Domoticz ver: 2022.2 (build 14779) / Docker sous Synology DSM 6.2.4 up6
Python Version: 3.7.3 [GCC 8.3.0]
Z-Wave via USB Key SA 413. Zigate+ -USB- pour Zigbee.
Domoticz ver: 2022.2 (build 14779) / Docker sous Synology DSM 6.2.4 up6
Python Version: 3.7.3 [GCC 8.3.0]
Z-Wave via USB Key SA 413. Zigate+ -USB- pour Zigbee.