DbRep - Import von 770MB csv (8.758.319 Datensätze) in mySQL, RasPi 3 stürzt ab.

Begonnen von Frank_Huber, 18 Januar 2019, 09:42:46

Vorheriges Thema - Nächstes Thema

Frank_Huber

Danke für den Tip!
Deswegen ist das alles noch auf dem Testsystem.
Heiko hat ja oben ja schon den eleganten Weg dargestellt.

diesen werd ich dann als nächstes angehen und dann die File-Sicherung wieder abstellen.

DS_Starter

Hatte gestern noch eine Version eingecheckt bei der der Export/Import von "°C" out-of-the-box funktioniert.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Frank_Huber

Zitat von: DS_Starter am 23 Januar 2019, 08:37:29
Hatte gestern noch eine Version eingecheckt bei der der Export/Import von "°C" out-of-the-box funktioniert.
:-)
dann werd ich das nochmal checken. danke.

DS_Starter

Hallo Frank,

ich habe DbRep noch erweitert dass man beim Export die Filegröße begenzen kann:

* exportToFile [</Pfad/File>] [MAXLINES=<lines>] - exportiert DB-Einträge im CSV-Format in den gegebenen Zeitgrenzen.

Der Dateiname wird durch das Attribut "expimpfile" bestimmt. Alternativ kann "/Pfad/File" als Kommando-Option angegeben werden und übersteuert ein eventuell gesetztes Attribut "expimpfile". Optional kann über den Parameter "MAXLINES" die maximale Anzahl von Datensätzen angegeben werden, die in ein File exportiert werden. In diesem Fall werden mehrere Files mit den Extensions "_part1", "_part2", "_part3" usw. erstellt (beim Import berücksichtigen !).
.........

Man kann die MAXLINES-Option sowohl im Kommando als auch im Attribut expimpfile verwenden.

Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Frank_Huber

Zitat von: DS_Starter am 23 Januar 2019, 23:39:49
Hallo Frank,

ich habe DbRep noch erweitert dass man beim Export die Filegröße begenzen kann:

* exportToFile [</Pfad/File>] [MAXLINES=<lines>] - exportiert DB-Einträge im CSV-Format in den gegebenen Zeitgrenzen.

Der Dateiname wird durch das Attribut "expimpfile" bestimmt. Alternativ kann "/Pfad/File" als Kommando-Option angegeben werden und übersteuert ein eventuell gesetztes Attribut "expimpfile". Optional kann über den Parameter "MAXLINES" die maximale Anzahl von Datensätzen angegeben werden, die in ein File exportiert werden. In diesem Fall werden mehrere Files mit den Extensions "_part1", "_part2", "_part3" usw. erstellt (beim Import berücksichtigen !).
.........

Man kann die MAXLINES-Option sowohl im Kommando als auch im Attribut expimpfile verwenden.

Grüße
Heiko
Na das ging ja schnell.
Hat meine Idee ja eingeschlagen. [emoji6]

Wird heute zusammen mit den Sonderzeichen getestet.

Gesendet von meinem Doogee S60 mit Tapatalk


Frank_Huber

Hallo Heiko,

--> "Problem" mit dem "° C" istr behoben. nach Exp/Imp alles wie es in der alten DB war.
--> MAXLINES fonktioniert super!
--> Export sowie Import ist sehr viel schneller. gefühlt Faktor 3 bis 4. kann aber auch am kompletten Raspbian Update liegen.

Danke wiedermals. :-)

DS_Starter

Gern geschehen  :)

Edit: Und ich danke dir , habe mich gefreut  :)  :)  :)
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Frank_Huber

Zitat von: Wernieman am 23 Januar 2019, 08:04:10
Du könntest eine "richtige" DB sichern wie Du auch sql-light sicherst, nur wird dann ein restore nicht funktionieren. Eine DB cacht immr, bevor sie in die Datei schreibt, d.h. im laufenden Zustand sie die DB-Files mit großer Wahrscheinlichkeit inkonsistent.

Dafür gibt es eigene backup/restore-Befehle ....
Hi Werner,

Ich wollte es nicht glauben, aber du hast Recht behalten.
Eine File Kopie lässt sich nicht wiederherstellen.
- FHEM gestoppt
- MySQL gestoppt
- Backup gemacht
- 3 Tage alten SD Klon rein
- Datenbank files gelöscht und aus dem Backup wiederhergestellt.
Ergebnis: 3 Tage Ereignisse fehlen.
Der Restore geht wohl, aber beim Backup reicht es nicht den SQL zu stoppen.

Also das dumpen versucht...
Anstelle 6min file Backup waren es 63min Datenbank optimieren und nach 5 Std läuft der dump (Client side) noch immer.

Das taugt so nix.

Hab jetzt einen MySQL auf Windows installiert und werde damit  Versuche starten.
Zuhause läuft eh nen Barebone mit 4xSSD im RAID5 als exchange / fileserver.
Der bekommt den MySQL dann dazu.

Und das alles nur weil ich dachte die Datenbanken der 4 Instanzen Vereinen zu können. *lach*

Schönen Abend, ich muss dann los zur FW...

Gesendet von meinem Doogee S60 mit Tapatalk


Wernieman

Wenn Du MySQL runter fährst und dann sicherst, DANN sollte es funktionieren. Aber eben nicht im laufendem System ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

DS_Starter

Hi Frank,

ZitatAlso das dumpen versucht...
Anstelle 6min file Backup waren es 63min Datenbank optimieren und nach 5 Std läuft der dump (Client side) noch immer.
Dann nutze die Kraft der DB und führe ein Dump "serverSide" aus. Geht wahrscheinlich deutlich flotter. Und optimieren musst du ja nicht immer, sondern getrennt vom Dump ab und zu über Nacht zum Beispiel.

Edit: Hinweis .... den clientSide Dump kannst du in Abhängigkeit deiner Rechnerressourcen über Attribute optimieren.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Hier mal ein Beispiel. Die hier gedumpte DB ist knapp 3GB groß und enthält rund 20Mio Sätze.


2019.01.28 20:06:12.543 3: DbRep Rep.Fhem.Dump.ServerSide - ################################################################
2019.01.28 20:06:12.544 3: DbRep Rep.Fhem.Dump.ServerSide - ###             New database serverSide dump                 ###
2019.01.28 20:06:12.544 3: DbRep Rep.Fhem.Dump.ServerSide - ################################################################
2019.01.28 20:06:12.628 3: DbRep Rep.Fhem.Dump.ServerSide - Searching for tables inside database fhem....
2019.01.28 20:06:13.130 3: DbRep Rep.Fhem.Dump.ServerSide - Starting dump of database 'fhem', table 'history'
2019.01.28 20:08:45.027 3: DbRep Rep.Fhem.Dump.ServerSide - compress file /sds1/backup/dumps_FHEM/fhem_history_2019_01_28_20_06.csv
2019.01.28 20:09:50.027 3: DbRep Rep.Fhem.Dump.ServerSide - file compressed to output file: /sds1/backup/dumps_FHEM/fhem_history_2019_01_28_20_06.csv.gzip
2019.01.28 20:09:50.561 3: DbRep Rep.Fhem.Dump.ServerSide - input file deleted: /sds1/backup/dumps_FHEM/fhem_history_2019_01_28_20_06.csv
2019.01.28 20:09:50.568 3: DbRep Rep.Fhem.Dump.ServerSide - Number of exported datasets: 20133145
2019.01.28 20:09:50.569 3: DbRep Rep.Fhem.Dump.ServerSide - Size of backupfile: 165.89 MB
2019.01.28 20:09:50.576 3: DbRep Rep.Fhem.Dump.ServerSide - Deleting old dumpfile 'fhem_history_2019_01_28_00_29.csv.gzip'
2019.01.28 20:09:50.647 3: DbRep Rep.Fhem.Dump.ServerSide - Finished backup of database fhem - total time used (hh:mm:ss): 00:03:38
2019.01.28 20:09:50.694 3: DbRep Rep.Fhem.Dump.ServerSide - Database dump finished successfully.


Inklusive Kompression nach dem Dump ist der Lauf nach 3,5 Minuten durch. Die DB läuft auf einer Synology.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Frank_Huber

Danke Werner für die Info, dann teste ich da mal noch weiter.
Evtl braucht er mehr Zeit zum schließen / Speichern.
Ein sleep in der Backup.sh ist schnell eingebaut und getestet. [emoji16]

Heiko, das ist noch alles noch auf der Spielweise. MySQL ist aktuell auf nem rpi3 mit FHEM und ein rpi2 schreibt mit rein.
Denk client oder Server side macht nicht viel Unterschied. [emoji6]

Werde aber auch Server side mal anchecken. Alles mal ausprobieren... Bin von DbLog / DbRep immer mehr begeistert.

Finde aber so generell den Gedanken das mit auf den Exchange zu packen ganz sympathisch.
Entlastet die PIs und vor allen die SD Karten.

Werde hier weiter berichten. [emoji16]

Gesendet von meinem Doogee S60 mit Tapatalk


DS_Starter

ZitatDenk client oder Server side macht nicht viel Unterschied.
Naja, dahinter stecken jeweils andere Technologien (mit jeweils anderem Funktionsumfang). Macht wahrscheinlich doch einen Unterschied  ;)
Allergings geht Leistung eben nur mit leistungsfähiger Hardware, so oder so.

Aber probieren ist immer gut   :D
Bin gespannt auf deine weiteren Ergebnisse ...
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Frank_Huber

Ich bin vor allen gespannt wie lang der Client side noch lief. [emoji23][emoji23][emoji23][emoji23]

Gesendet von meinem Doogee S60 mit Tapatalk


DS_Starter

Nur mal zum Vergleich, die gleiche DB im Beispiel in #55 läuft als clientSide Backup auf dem NUC rund 45 Minuten (statt 3,5).

Die Performance kann man allerdings tunen mit den Attributen:

dumpMemlimit
dumpSpeed

Vorausgesetzt man hat RAM und CPU-Power frei.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter