[vz-users] (Daten-)Rettung sqlite.db3 von SD-Karte

Thomas Höpfner thomas at thhoe.de
Mo Aug 9 12:39:56 CEST 2021


Hallo JD,
vergiss /etc nicht. Eventuell hast du noch andere Verzeichnisse/Dateien geändert.

Thomas 

Am 09.08.2021 um 10:53 schrieb John Doe <johndoe at 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" <cpuidle at gmail.com>
To: "volkszaehler.org - users" <volkszaehler-users at 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 <johndoe at 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" <johndoe at null.net>
To: volkszaehler-users at 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" <johndoe at null.net>
To: volkszaehler-users at 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" <cpuidle at gmail.com>
To: "volkszaehler.org - users" <volkszaehler-users at 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 <johndoe at 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 at 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" <johndoe at null.net>
To: volkszaehler-users at 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.
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20210809/6fa5d9e4/attachment-0001.html>


Mehr Informationen über die Mailingliste volkszaehler-users