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

<div> </div>

<div>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.</div>

<div>Ein</div>

<div> </div>

<div>sqlite3 ~/Downloads/home/pi/sqlite-dumped.db3 "PRAGMA integrity_check"</div>

<div> </div>

<div>liefert leider</div>

<div> </div>

<div>
<div>Page 718135: btreeInitPage() returns error code 11<br/>
Page 699295: btreeInitPage() returns error code 11<br/>
Page 412064: btreeInitPage() returns error code 11<br/>
On tree page 370249 cell 18: Rowid 0 out of order<br/>
On tree page 370249 cell 17: Rowid 0 out of order<br/>
On tree page 370249 cell 16: Rowid 0 out of order<br/>
On tree page 370249 cell 15: Rowid 0 out of order<br/>
On tree page 370249 cell 14: Rowid 0 out of order<br/>
On tree page 370249 cell 13: Rowid 0 out of order<br/>
On tree page 370249 cell 12: Rowid 0 out of order<br/>
On tree page 370249 cell 11: Rowid 0 out of order<br/>
On tree page 370249 cell 10: Rowid 0 out of order<br/>
On tree page 370249 cell 9: Rowid 0 out of order<br/>
On tree page 370249 cell 8: Rowid 0 out of order<br/>
On tree page 370249 cell 7: Rowid 0 out of order<br/>
On tree page 370249 cell 6: Rowid 0 out of order<br/>
On tree page 370249 cell 5: Rowid 0 out of order<br/>
On tree page 370249 cell 4: Rowid 0 out of order<br/>
On tree page 370249 cell 3: Rowid 0 out of order<br/>
On tree page 370249 cell 2: Rowid 0 out of order<br/>
On tree page 370249 cell 1: Rowid 0 out of order<br/>
On tree page 370249 cell 0: Rowid 0 out of order<br/>
Fragmentation of 412 bytes reported as 0 on page 370249<br/>
On tree page 369985 cell 275: Rowid 26718170 out of order<br/>
Page 335622: btreeInitPage() returns error code 11<br/>
Page 335601: btreeInitPage() returns error code 11<br/>
Page 326664: btreeInitPage() returns error code 11<br/>
Page 326660: btreeInitPage() returns error code 11<br/>
Page 326642: btreeInitPage() returns error code 11<br/>
Page 326640: btreeInitPage() returns error code 11<br/>
Page 183558: btreeInitPage() returns error code 11<br/>
Page 145754: btreeInitPage() returns error code 11<br/>
Page 133296: btreeInitPage() returns error code 11<br/>
Page 131242: btreeInitPage() returns error code 11<br/>
Page 130006: btreeInitPage() returns error code 11<br/>
Page 21264: btreeInitPage() returns error code 11<br/>
Page 775024: btreeInitPage() returns error code 11<br/>
Fragmentation of 384 bytes reported as 0 on page 427549<br/>
Page 427482: btreeInitPage() returns error code 11<br/>
Page 370242: btreeInitPage() returns error code 11<br/>
Page 335617: btreeInitPage() returns error code 11<br/>
Page 335612: btreeInitPage() returns error code 11<br/>
Page 326678: btreeInitPage() returns error code 11<br/>
Page 133332: btreeInitPage() returns error code 11<br/>
Page 132755: btreeInitPage() returns error code 11<br/>
Page 427473: btreeInitPage() returns error code 11<br/>
Page 412090: btreeInitPage() returns error code 11<br/>
Page 341941: btreeInitPage() returns error code 11<br/>
Page 326667: btreeInitPage() returns error code 11<br/>
Page 326622: btreeInitPage() returns error code 11<br/>
Page 148619: btreeInitPage() returns error code 11<br/>
Page 148612: btreeInitPage() returns error code 11<br/>
Page 133328: btreeInitPage() returns error code 11<br/>
Page 131207: btreeInitPage() returns error code 11<br/>
Page 427494: btreeInitPage() returns error code 11<br/>
Page 148621: btreeInitPage() returns error code 11<br/>
Page 133324: btreeInitPage() returns error code 11<br/>
Page 14360: btreeInitPage() returns error code 11<br/>
Page 341881: btreeInitPage() returns error code 11<br/>
Page 326606: btreeInitPage() returns error code 11<br/>
Page 131196: btreeInitPage() returns error code 11<br/>
Error: database disk image is malformed</div>

<div> </div>

<div> </div>

<div>Der Tip von</div>

<div>https://stackoverflow.com/questions/18259692/how-to-recover-a-corrupt-sqlite3-database/18260642</div>

<div>liefert leider eine leere DB.</div>

<div> </div>

<div>Hat evtl. noch jemand eine Idee, was ich versuchen könnte ?</div>

<div>Grüße</div>

<div> </div>

<div>JD.</div>
</div>

<div> </div>

<div> </div>

<div> </div>

<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> Thursday, August 05, 2021 at 6:27 PM<br/>
<b>From:</b> "Andreas Götz" <cpuidle@gmail.com><br/>
<b>To:</b> "volkszaehler.org - users" <volkszaehler-users@demo.volkszaehler.org><br/>
<b>Subject:</b> Re: [vz-users] (Daten-)Rettung sqlite.db3 von SD-Karte</div>

<div name="quoted-content">
<div>Deine DB ist kaputt und die Daten weg, mehr lässt sich dazu nicht sagen…<br/>
 
<div>Viele Grüße,
<div>Andreas</div>
</div>

<div> 
<blockquote>Am 05.08.2021 um 18:21 schrieb John Doe <johndoe@null.net>:<br/>
 </blockquote>
</div>

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

<div> </div>

<div>kurzes Update:</div>

<div> </div>

<div>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:</div>

<div> </div>

<div>
<div>pi@raspberrypi:~ $ sudo /var/www/volkszaehler.org/vendor/bin/dbcopy copy -c /etc/dbcopy.yaml<br/>
entities: copying 2 rows (overwrite)<br/>
 [============================] 100%  < 1 sec/< 1 sec  2 rows</div>

<div>properties: copying 16 rows (overwrite)<br/>
 [============================] 100%  < 1 sec/< 1 sec  16 rows</div>

<div>entities_in_aggregator: copying 0 rows (overwrite)<br/>
    0 [>---------------------------] < 1 sec 4.0 MiB</div>

<div>data: copying<br/>
In AbstractSQLiteDriver.php line 70:<br/>
                                                                          <br/>
  An exception occurred while executing 'SELECT COUNT(1) FROM ("data")':  <br/>
                                                                          <br/>
  SQLSTATE[HY000]: General error: 11 database disk image is malformed     <br/>
                                                                          </div>

<div>In PDOConnection.php line 90:<br/>
                                                                       <br/>
  SQLSTATE[HY000]: General error: 11 database disk image is malformed  <br/>
                                                                       </div>

<div>In PDOConnection.php line 88:<br/>
                                                                       <br/>
  SQLSTATE[HY000]: General error: 11 database disk image is malformed  <br/>
                                                                       </div>

<div>copy [-c|--config CONFIG] [-b|--batch BATCH] [-k|--keep-constraints] [--] [<tables>...]</div>

<div> </div>

<div> </div>

<div>Abfolge:</div>

<div> </div>

<div>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.</div>

<div>Könnte da noch was zu retten sein ?</div>

<div>Grüße</div>

<div> </div>

<div>JD.</div>
</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> Wednesday, August 04, 2021 at 9:16 PM<br/>
<b>From:</b> "John Doe" <johndoe@null.net><br/>
<b>To:</b> volkszaehler-users@demo.volkszaehler.org<br/>
<b>Subject:</b> [vz-users] (Daten-)Rettung sqlite.db3 von SD-Karte</div>

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

<div> </div>

<div>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.</div>

<div>Aufgrund persönlicher Unzulänglichkeiten hat die tägliche Datensicherung nicht das getan, was ich vorhatte.</div>

<div>Nun meine Frage:</div>

<div>Ich habe ein einem SD-Kartenleser noch Zugriff auf die SD-Karte.</div>

<div>Wenn ich die sqlite.dp3 aus dem Verzeichnis /home/pi auf meinen Rechner kopieren will, ergibt sich ein</div>

<div> </div>

<div>
<div>cp: Fehler beim Lesen von 'sqlite.db3': Eingabe-/Ausgabefehler</div>

<div> </div>

<div> </div>

<div>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 ?</div>

<div>Die Dateigröße scheint zur theoretischen DB-Größe zu passen, alleine: Ich komme nicht kopierfähig dran.</div>

<div>Beste Grüße</div>

<div> </div>

<div>JD.</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div></div></body></html>