…und auch dieses Backup wird zerstört wenn Du von einer defekten SD eine 
korrupte DB kopierst. Backups *NIEMALS* einfach drüber bügeln sondern rotieren!

Viele Grüße, Andreas 

> Am 09.08.2021 um 10:51 schrieb John Doe <john...@null.net>:
> 
> 
> Hallo Andreas,
>  
> hierzu habe ich ein nettes Tool gefunden:
>  
> https://github.com/rdiff-backup/rdiff-backup
>  
> Dieses verwende ich nun, um mein komplettes lokales home-Verzeichnis auf 
> einen cifs-share zu sichern.
> Und da hier eben nur die diffs zum letzten Mal gesichert werden, kann ich nun 
> auch etwas höherfrequent ein Backup erstellen, also bspw. alle 12 oder 6 
> Stunden.
> Grüße
>  
> JD.
>  
>  
> Sent: Sunday, August 08, 2021 at 2:12 AM
> From: "Andreas Goetz" <cpui...@gmail.com>
> To: "volkszaehler.org - users" <volkszaehler-users@demo.volkszaehler.org>
> Subject: Re: [vz-users] (Daten-)Rettung sqlite.db3 von SD-Karte
> …und vor allen Dingen: echtes Backup an einem sicheren Ort!
>  
> Viele Grüße, Andreas 
>  
> Am 08.08.2021 um 02:03 schrieb John Doe <john...@null.net>:
>  
> 
> Hallo zusammen,
>  
> nach dem Durchlauf der aggregation ist meine Datenbank bis zum Kartencrash 
> wieder intakt.
> Nochmal für alle, deren Karte auch hin und wieder mal abschmiert, mein 
> Vorgehen:
>  
> 1. Der Karte eine intakte partition table mittels gpart spendiert
> (https://help.ubuntu.com/community/DataRecovery#Gpart)
>  
> 2. ddrescue wirklich über die komplette Karte mehrfach laufen lassen
> (https://www.linux-magazin.de/ausgaben/2015/11/einfuehrung2/)
>  
> 3.  Per testdisk (aus den aktuellen Quellen 
> https://github.com/cgsecurity/testdisk kompiliert) die sqlite.db3 auf den 
> "neuen" Raspi kopieren
>  
> 4. vzlogger und alle cron-Jobs auf dem Zielsystem abschalten
>  
> 5. Einen Restore der Datenbank durchführen 
> (https://wiki.volkszaehler.org/software/tools/dbcopy): Zunächst mit einer 
> sicher intakten sqlite.db, danach mit der aus (3) extrahierten (dbcopy.yaml 
> entsprechend anpassen).
>  
> 6. Gemäß wiki eine aggregation durchführen.
>  
> 7. cronjobs wieder aktivieren, anschliessend reboot.
>  
> Grüße
>  
> JD.
>  
> Sent: Saturday, August 07, 2021 at 2:54 PM
> From: "John Doe" <john...@null.net>
> To: volkszaehler-users@demo.volkszaehler.org
> Subject: Re: [vz-users] (Daten-)Rettung sqlite.db3 von SD-Karte
> Hallo zusammen,
>  
> ich war in der Zwischenzeit mutig und habe durch ein
>  
> /var/www/volkszaehler.org/vendor/bin/dbcopy copy -c /etc/dbcopy.yaml
> mit entsprechendem source und target zunächst die sicher intakte sqlite.db3 
> und im Anschluss diejenige aus meiner Datenrettung wieder eingespielt, 
> Ergebnis: Fast alle meine Daten scheinen per Sichtkontrolle wieder da zu 
> sein. Lediglich ein Peak am Ende, welcher möglicherweise aus dem beginnenden 
> Crash stammt, ist noch übrig, aber den werde ich noch manuell begradigen. 
> Sobald das aggregate durchgelaugen ist, melde ich mich nochmal mit dem 
> endgültigen Ergebnis.
> 
> Grüße
> 
>  
> 
> JD.
> 
>  
>  
> Sent: Saturday, August 07, 2021 at 10:20 AM
> From: "John Doe" <john...@null.net>
> To: volkszaehler-users@demo.volkszaehler.org
> Subject: Re: [vz-users] (Daten-)Rettung sqlite.db3 von SD-Karte
> Hallo zusammen,
>  
> ich habe noch mal ein wenig herumprobiert. Zunächst habe ich der Karte mit 
> gpart einen neuen Header spendiert. Danach habe ich ddrescue einige Zeit über 
> die Karte laufen lassen, Ergebnis: 99.99 pct rescued. In der Folge habe ich 
> mit testdisk (kompiliert aus den aktuellen Github-Sourcen) die sqlite.db3 
> kopiert.
> Ein
>  
> sqlite3 ~/Downloads/home/pi/sqlite-dumped.db3 "PRAGMA integrity_check"
>  
> liefert leider
>  
> Page 718135: btreeInitPage() returns error code 11
> Page 699295: btreeInitPage() returns error code 11
> Page 412064: btreeInitPage() returns error code 11
> On tree page 370249 cell 18: Rowid 0 out of order
> On tree page 370249 cell 17: Rowid 0 out of order
> On tree page 370249 cell 16: Rowid 0 out of order
> On tree page 370249 cell 15: Rowid 0 out of order
> On tree page 370249 cell 14: Rowid 0 out of order
> On tree page 370249 cell 13: Rowid 0 out of order
> On tree page 370249 cell 12: Rowid 0 out of order
> On tree page 370249 cell 11: Rowid 0 out of order
> On tree page 370249 cell 10: Rowid 0 out of order
> On tree page 370249 cell 9: Rowid 0 out of order
> On tree page 370249 cell 8: Rowid 0 out of order
> On tree page 370249 cell 7: Rowid 0 out of order
> On tree page 370249 cell 6: Rowid 0 out of order
> On tree page 370249 cell 5: Rowid 0 out of order
> On tree page 370249 cell 4: Rowid 0 out of order
> On tree page 370249 cell 3: Rowid 0 out of order
> On tree page 370249 cell 2: Rowid 0 out of order
> On tree page 370249 cell 1: Rowid 0 out of order
> On tree page 370249 cell 0: Rowid 0 out of order
> Fragmentation of 412 bytes reported as 0 on page 370249
> On tree page 369985 cell 275: Rowid 26718170 out of order
> Page 335622: btreeInitPage() returns error code 11
> Page 335601: btreeInitPage() returns error code 11
> Page 326664: btreeInitPage() returns error code 11
> Page 326660: btreeInitPage() returns error code 11
> Page 326642: btreeInitPage() returns error code 11
> Page 326640: btreeInitPage() returns error code 11
> Page 183558: btreeInitPage() returns error code 11
> Page 145754: btreeInitPage() returns error code 11
> Page 133296: btreeInitPage() returns error code 11
> Page 131242: btreeInitPage() returns error code 11
> Page 130006: btreeInitPage() returns error code 11
> Page 21264: btreeInitPage() returns error code 11
> Page 775024: btreeInitPage() returns error code 11
> Fragmentation of 384 bytes reported as 0 on page 427549
> Page 427482: btreeInitPage() returns error code 11
> Page 370242: btreeInitPage() returns error code 11
> Page 335617: btreeInitPage() returns error code 11
> Page 335612: btreeInitPage() returns error code 11
> Page 326678: btreeInitPage() returns error code 11
> Page 133332: btreeInitPage() returns error code 11
> Page 132755: btreeInitPage() returns error code 11
> Page 427473: btreeInitPage() returns error code 11
> Page 412090: btreeInitPage() returns error code 11
> Page 341941: btreeInitPage() returns error code 11
> Page 326667: btreeInitPage() returns error code 11
> Page 326622: btreeInitPage() returns error code 11
> Page 148619: btreeInitPage() returns error code 11
> Page 148612: btreeInitPage() returns error code 11
> Page 133328: btreeInitPage() returns error code 11
> Page 131207: btreeInitPage() returns error code 11
> Page 427494: btreeInitPage() returns error code 11
> Page 148621: btreeInitPage() returns error code 11
> Page 133324: btreeInitPage() returns error code 11
> Page 14360: btreeInitPage() returns error code 11
> Page 341881: btreeInitPage() returns error code 11
> Page 326606: btreeInitPage() returns error code 11
> Page 131196: btreeInitPage() returns error code 11
> Error: database disk image is malformed
>  
>  
> Der Tip von
> https://stackoverflow.com/questions/18259692/how-to-recover-a-corrupt-sqlite3-database/18260642
> liefert leider eine leere DB.
>  
> Hat evtl. noch jemand eine Idee, was ich versuchen könnte ?
> Grüße
>  
> JD.
>  
>  
>  
>  
>  
> Sent: Thursday, August 05, 2021 at 6:27 PM
> From: "Andreas Götz" <cpui...@gmail.com>
> To: "volkszaehler.org - users" <volkszaehler-users@demo.volkszaehler.org>
> Subject: Re: [vz-users] (Daten-)Rettung sqlite.db3 von SD-Karte
> Deine DB ist kaputt und die Daten weg, mehr lässt sich dazu nicht sagen…
>  
> Viele Grüße,
> Andreas
>  
> Am 05.08.2021 um 18:21 schrieb John Doe <john...@null.net>:
>  
> 
> Hallo zusammen,
>  
> kurzes Update:
>  
> Ich habe mittels testdisk aus der Karte eine sqlite.db3 herausbekommen (via 
> Image-Erstellung der ext4-Partition). Beim Versuch des Zurückspielens nun 
> leider das:
>  
> pi@raspberrypi:~ $ sudo /var/www/volkszaehler.org/vendor/bin/dbcopy copy -c 
> /etc/dbcopy.yaml
> entities: copying 2 rows (overwrite)
>  [============================] 100%  < 1 sec/< 1 sec  2 rows
> properties: copying 16 rows (overwrite)
>  [============================] 100%  < 1 sec/< 1 sec  16 rows
> entities_in_aggregator: copying 0 rows (overwrite)
>     0 [>---------------------------] < 1 sec 4.0 MiB
> data: copying
> In AbstractSQLiteDriver.php line 70:
>                                                                           
>   An exception occurred while executing 'SELECT COUNT(1) FROM ("data")':  
>                                                                           
>   SQLSTATE[HY000]: General error: 11 database disk image is malformed     
>                                                                           
> In PDOConnection.php line 90:
>                                                                        
>   SQLSTATE[HY000]: General error: 11 database disk image is malformed  
>                                                                        
> In PDOConnection.php line 88:
>                                                                        
>   SQLSTATE[HY000]: General error: 11 database disk image is malformed  
>                                                                        
> copy [-c|--config CONFIG] [-b|--batch BATCH] [-k|--keep-constraints] [--] 
> [<tables>...]
>  
>  
> Abfolge:
>  
> Wie im wiki beschrieben eine sqlite.db3 mit dbcopy create angelegt. Diese mit 
> der sqlite.db3 aus testdisk ersetzt, in der dbcopy.yaml Quelle und Ziel 
> vertauscht und obigen Befehl verwendet.
> Könnte da noch was zu retten sein ?
> Grüße
>  
> JD.
>  
>  
> Sent: Wednesday, August 04, 2021 at 9:16 PM
> From: "John Doe" <john...@null.net>
> To: volkszaehler-users@demo.volkszaehler.org
> Subject: [vz-users] (Daten-)Rettung sqlite.db3 von SD-Karte
> Hallo zusammen,
>  
> mitr ist mal wieder eine SD-Karte abgeraucht. Ich habe ein älteres Image der 
> Karte und zwei Backups der sqlite.db3 - ein älteres und ein uraltes.
> Aufgrund persönlicher Unzulänglichkeiten hat die tägliche Datensicherung 
> nicht das getan, was ich vorhatte.
> Nun meine Frage:
> Ich habe ein einem SD-Kartenleser noch Zugriff auf die SD-Karte.
> Wenn ich die sqlite.dp3 aus dem Verzeichnis /home/pi auf meinen Rechner 
> kopieren will, ergibt sich ein
>  
> cp: Fehler beim Lesen von 'sqlite.db3': Eingabe-/Ausgabefehler
>  
>  
> Vermutlich, weil an der Stelle die Karte schin teilweise defekt ist. Gibt es 
> bspw. mit testdisk eine Möglichkeit, diese relativ aktuelle sqlite.db3 doch 
> noch zu retten ?
> Die Dateigröße scheint zur theoretischen DB-Größe zu passen, alleine: Ich 
> komme nicht kopierfähig dran.
> Beste Grüße
>  
> JD.

Antwort per Email an