<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div>Hallo MIchael,</div>

<div> </div>

<div>das Backup einer 32GB-SD-Karte dauerte bei mir gestern an einem USB3-Leser ca. 10 Minuten.</div>

<div>Und das im Wiki beschriebene Vorgehen der Datenbanksicherung per dbcopy, bspw. über eine CIFS-Freigabe auf Dein NAS, läuft problemlos im laufenden Betrieb.</div>

<div>Du hast im Fall des Kartencrashs zwei Möglichkeiten: Entweder Du spielst das Karten-Image zurück und hast für die Dauer Crash-Beginn+Rücksicherung keine Daten (zeitliche Größenordnung alles zusammen bis zum Wiederlaufen ca. eine Stunde) oder Du installierst ein neues VZ-Image und spielst darin die DB und die vzlogger.conf zurück.</div>

<div>
<div>Eine komplett lückenlose Ausfallsicherung dürfte zumindest auf oder mit dem Raspi schwer zu realisieren sein und ist m.E.n. auch nicht unbedingt notwendig, da die relativen Schwankungen im Verbrauch zumindest über ein paar Stunden nicht so groß ausfallen fürften.</div>

<div>Grüße</div>

<div> </div>

<div>JD.</div>

<div> 
<div name="quote" style="margin:10px 5px 5px 10px; padding: 10px 0 10px 10px; border-left:2px solid #C3D9E5; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div style="margin:0 0 10px 0;"><b>Sent:</b> Monday, November 16, 2020 at 3:03 PM<br/>
<b>From:</b> "Michael Hartmann" <hartmann-micha@web.de><br/>
<b>To:</b> volkszaehler-users@demo.volkszaehler.org<br/>
<b>Subject:</b> Re: [vz-users] Image mit dd erstellen / Datenbackup</div>

<div name="quoted-content">
<div style="font-family: Verdana;font-size: 12.0px;">
<div>Die HW lässt sich leider nicht eben umziehen. Der IR-Lesekopf hängt mit weiteren S0-Gebern an der Erweiterungsplatine der laufenden Systems. Aktuell habe ich auch wenig Zweifel, dass ein Umzug der HW Daten liefern würde. Ein solcher Test bedeutet auch, dass das laufende System offline ginge.</div>

<div> </div>

<div>Das Ganze ist eine Trockenübung um die Nutzbarkeit eines DD-Images zu prüfen. Denn dazu wurden hier Bedenken bzgl. Datenintegrität geäußert. Der beobachtete "Fehler" beim Ergänzen der Daten aus dem DB-Backup deutet in der Tat auf einen möglichen Fehler in der DB auf dem Image hin.</div>

<div> </div>

<div>Mein Ziel ist eigentlich Images und Backups der DB im laufenden Betrieb zu fahren. Da ich an der Installation nicht permanent Änderungen vornehme, könnte ich das laufende System einmalig herunterfahren um ein Image von der SD-Karte anzufertigen. Das dürfte bei 32GB aber auch schon bei 2h dauern und somit eine entsprechende Datenlücke nach sich ziehen.</div>

<div> </div>

<div>Da wäre ich gerne sicher, dass ich die DB auf dem Image bei Wiederherstellung zügig mit den fehlenden Daten aus dem DB-Backup ergänzen kann.</div>

<div> </div>

<div>Grüße</div>

<div> </div>

<div>Micha</div>

<div> 
<div> 
<div style="margin: 10.0px 5.0px 5.0px 10.0px;padding: 10.0px 0 10.0px 10.0px;border-left: 2.0px solid rgb(195,217,229);">
<div style="margin: 0 0 10.0px 0;"><b>Gesendet:</b> Montag, 16. November 2020 um 13:00 Uhr<br/>
<b>Von:</b> "John Doe" <johndoe@null.net><br/>
<b>An:</b> volkszaehler-users@demo.volkszaehler.org<br/>
<b>Betreff:</b> Re: [vz-users] Image mit dd erstellen / Datenbackup</div>

<div>
<div style="font-family: Verdana;font-size: 12.0px;">
<div>Hallo MIchael,</div>

<div> </div>

<div>dann hab' ich das falsch verstanden, sorry.</div>

<div>Wenn Du einfach das "gleiche" Image (also das aus dem Produktivsystem) weiter verwendest, sollte eigentlich alles normal weiterlaufen.</div>

<div>Was passiert denn, wenn Du den IR-Kopf mal an den Pi steckst und das Zurückspielen der gesicherten DB erst mal weglässt? Kommen denn dann im Frontend Daten an, unabhängig von der Lücke in den Daten seit der Image-Erstellung ?</div>

<div>Grüsse</div>

<div> </div>

<div>JD.</div>

<div> 
<div> 
<div style="margin: 10.0px 5.0px 5.0px 10.0px;padding: 10.0px 0 10.0px 10.0px;border-left: 2.0px solid rgb(195,217,229);">
<div style="margin: 0 0 10.0px 0;"><b>Sent:</b> Monday, November 16, 2020 at 12:20 PM<br/>
<b>From:</b> "Michael Hartmann" <hartmann-micha@web.de><br/>
<b>To:</b> volkszaehler-users@demo.volkszaehler.org<br/>
<b>Subject:</b> Re: [vz-users] Image mit dd erstellen / Datenbackup</div>

<div>
<div style="font-family: Verdana;font-size: 12.0px;">
<div>Hallo John,</div>

<div> </div>

<div>auf dem Image existiert ja bereits die DB, welche die Daten bis zum Zeitpunkt der Imageerstellung enthält. Ich müsste diese also löschen um dann in eine neu erstellte leere Datenbank alle Daten aus dem DB-Backup zu kopieren? Ein Ergänzen der fehlenden Daten funktioniert generell nicht?</div>

<div> </div>

<div>Grüße</div>

<div> </div>

<div>Michael
<div> 
<div style="margin: 10.0px 5.0px 5.0px 10.0px;padding: 10.0px 0 10.0px 10.0px;border-left: 2.0px solid rgb(195,217,229);">
<div style="margin: 0 0 10.0px 0;"><b>Gesendet:</b> Montag, 16. November 2020 um 12:13 Uhr<br/>
<b>Von:</b> "John Doe" <johndoe@null.net><br/>
<b>An:</b> volkszaehler-users@demo.volkszaehler.org<br/>
<b>Betreff:</b> Re: [vz-users] Image mit dd erstellen / Datenbackup</div>

<div>
<div style="font-family: Verdana;font-size: 12.0px;">
<div>Hallo Michael,</div>

<div> </div>

<div>da ich das Prozedere der Rücksicherung gerade erst wieder mal durchgearbeitet habe, hier ein Tip:</div>

<div> </div>

<div>
<div>Ich glaube, dass Du zuerst auf dem zweiten Raspi eine leere volkszaehler-DB mit "create" (wie im wiki) erzeugen musst.</div>

<div>In dieser spielst Du dann die gesicherte (sqlite.db3) DB zurück; ggfs. musst Du die aggregation danach noch einmal "von Hand" laufen lassen.</div>

<div>Grüsse</div>

<div> </div>

<div>JD.</div>

<div> 
<div style="margin: 10.0px 5.0px 5.0px 10.0px;padding: 10.0px 0 10.0px 10.0px;border-left: 2.0px solid rgb(195,217,229);">
<div style="margin: 0 0 10.0px 0;"><b>Sent:</b> Friday, November 13, 2020 at 8:47 PM<br/>
<b>From:</b> "Michael Hartmann" <hartmann-micha@web.de><br/>
<b>To:</b> "'volkszaehler-users'" <volkszaehler-users@demo.volkszaehler.org><br/>
<b>Subject:</b> [vz-users] Image mit dd erstellen / Datenbackup</div>

<div>
<div>
<div class="WordSection1">
<p class="MsoNormal">Hallo,</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">da kürzlich Bedenken bzgl. Integrität eines zur Laufzeit mit dd erstellten Images aufkamen habe ich folgendes getestet:</p>

<p class="MsoNormal"> </p>

<p class="MsoListParagraph" style="text-indent: -18.0pt;"><span>1.<span style="font: 7.0pt "Times New Roman";">       </span></span>Erstellen eines Image zur Laufzeit mit dd direkt auf mein NAS</p>

<p class="MsoListParagraph" style="text-indent: -18.0pt;"><span>2.<span style="font: 7.0pt "Times New Roman";">       </span></span>Reduzieren und abschießendes Packen des Images in GZIP-Format mit pishrink</p>

<p class="MsoListParagraph" style="text-indent: -18.0pt;"><span>3.<span style="font: 7.0pt "Times New Roman";">       </span></span>Resultat 32GB > 5,2GB > 1,6GB</p>

<p class="MsoListParagraph" style="text-indent: -18.0pt;"><span>4.<span style="font: 7.0pt "Times New Roman";">       </span></span>Enpacken mit 7ZIP unter Win10</p>

<p class="MsoListParagraph" style="text-indent: -18.0pt;"><span>5.<span style="font: 7.0pt "Times New Roman";">       </span></span>Brennen des Image mit Win32DiskImager auf eine 32GB- SD-Karte</p>

<p class="MsoListParagraph" style="text-indent: -18.0pt;"><span>6.<span style="font: 7.0pt "Times New Roman";">       </span></span>Inbetriebnahme der SD-Karte auf einem zweiten Raspi 3B+</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">Resultat: Das Image läuft. D.h. ich kann via Frontend auf alle Daten bis zum Zeitpunkt an dem das Image erstellt wurde zugreifen und beliebig darin navigieren. Da keine HW angeschlossen ist kann ich nicht sagen ob vzlogger ordnungsgemäß laufen würde.</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">Da ich ein tägliches, inkrementelles Backup in eine DB auf meinem NAS mache, habe ich nun versucht die Daten vom Zeitpunkt der Imageerstellung bis zum Zeitpunkt des letzten Backups zu ergänzen und bin dabei wie im Wiki beschrieben vorgegangen.</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">D.h. ich habe in /etc/dbcopy.yaml die die Angaben für Ziel und Quelle vertauscht.</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">Der mySQ-Standarduser „vz“  wurde abgewiesen. Mit dem umfassenden Nutzer „vz-admin“ bekomme ich folgendes Ergebnis:</p>

<div style="border: none;border-bottom: solid windowtext 1.0pt;padding: 0.0cm 0.0cm 1.0pt 0.0cm;">
<p class="MsoNormal"> </p>
</div>

<p class="MsoNormal"><span>pi@SmartMeter2:~ $ /var/www/volkszaehler.org/vendor/bin/dbcopy copy -c /etc/dbcopy_alt_user.yam                                   l</span></p>

<p class="MsoNormal"><span>Dropping FK FK_87C331C781257D5D on properties</span></p>

<p class="MsoNormal"><span>Dropping FK FK_2BD88468727ACA70 on entities_in_aggregator</span></p>

<p class="MsoNormal"><span>Dropping FK FK_2BD88468DD62C21B on entities_in_aggregator</span></p>

<p class="MsoNormal"><span>Dropping FK FK_ADF3F36372F5A1AA on data</span></p>

<p class="MsoNormal"><span>Dropping FK FK_B77949FF72F5A1AA on aggregate</span></p>

<p class="MsoNormal"><span>entities: copying 7 rows (overwrite)</span></p>

<p class="MsoNormal"><span>[============================] 100%  < 1 sec/< 1 sec  7 rows</span></p>

<p class="MsoNormal"><span> </span></p>

<p class="MsoNormal"><span>properties: copying 63 rows (overwrite)</span></p>

<p class="MsoNormal"><span>[============================] 100%  < 1 sec/< 1 sec  63 rows</span></p>

<p class="MsoNormal"><span> </span></p>

<p class="MsoNormal"><span>entities_in_aggregator: copying 0 rows (overwrite)</span></p>

<p class="MsoNormal"><span>    0 [->--------------------------] < 1 sec 6.0 MiB</span></p>

<p class="MsoNormal"><span> </span></p>

<p class="MsoNormal"><span>data: copying 5864950 rows (partial copy)</span></p>

<p class="MsoNormal"><span>[>---------------------------]   0%  < 1 sec/< 1 sec        0 rows</span></p>

<p class="MsoNormal"><span>In AbstractMySQLDriver.php line 74:</span></p>

<p class="MsoNormal"><span> </span></p>

<p class="MsoNormal"><span>  An exception occurred while executing 'INSERT INTO `data` (`id`,`channel_id`,`timestamp`,`</span></p>

<p class="MsoNormal"><span>  value`) VALUES (?,?,?,?)' with params ["1672482", "2", "1592585825000", "1010037"]:</span></p>

<p class="MsoNormal"><span> </span></p>

<p class="MsoNormal"><span>  SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1672482' for key 'P</span></p>

<p class="MsoNormal"><span>  RIMARY'</span></p>

<p class="MsoNormal"><span> </span></p>

<p class="MsoNormal"><span> </span></p>

<p class="MsoNormal"><span>In Exception.php line 18:</span></p>

<p class="MsoNormal"><span> </span></p>

<p class="MsoNormal"><span>  SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1672482' for key 'P</span></p>

<p class="MsoNormal"><span>  RIMARY'</span></p>

<p class="MsoNormal"><span> </span></p>

<p class="MsoNormal"><span> </span></p>

<p class="MsoNormal"><span>In PDOStatement.php line 115:</span></p>

<p class="MsoNormal"><span> </span></p>

<p class="MsoNormal"><span>  SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1672482' for key 'P</span></p>

<p class="MsoNormal"><span>  RIMARY'</span></p>

<p class="MsoNormal"><span> </span></p>

<p class="MsoNormal"><span> </span></p>

<div style="border: none;border-bottom: solid windowtext 1.0pt;padding: 0.0cm 0.0cm 1.0pt 0.0cm;">
<p class="MsoNormal"><span>copy [-c|--config CONFIG] [-b|--batch BATCH] [-k|--keep-constraints] [--] [<tables>...]</span></p>
</div>

<p class="MsoNormal"><span> </span></p>

<p class="MsoNormal">Evtl. korrupte DB auf dem Image? Oder eine andere Ursache? Wie wäre der Fehler zu beheben?</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">Grüße</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">Micha</p>

<p class="MsoNormal"> </p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div></div></body></html>