[Debian 10.2 stable, Xfce4.16]
Eine SQL3-Datenbank mit einer Datei. Ich nenne sie hier db1. Die zugehörige Projektdatei heißt db1.sqbpro. Während des Editierens von db1 fror heute der Rechner ein. Die Betätigung der magischen SysRq-Taste hatte keine Wirkung. (Dieser Fehler tritt auch bei anderen sqlite-Benutzern auf. Sie haben darüber im Internet berichtet.)
Bisher konnte ich nach Rechner auschalten, Rechner einschalten , Aufruf der Projektdatei db1.sqbpro die Datenbank db1 öffnen, den fehlerhaften Record finden und reparieren.
Heute aber nicht. Der Aufruf der Projektdatei db1.sqbpro öffnet nicht die Datenbank db1. Es erscheint ein Fehlerdialogfenster mit der Mitteilung
Im Gegensatz zu allen früheren Einfriervorgängen legte der Rechner heute eine dritte Datei an. Ich nenne sie db1-journal. Größe: 8,5 KiB mit der Eigenschaft »SQLIte Rollback Journal«.Datenbank konnte nicht geöffnet werden. Grund: attempt to write a readonly database.
Den Inhalt des »SQLIte Rollback Journal« kann ich mir im mc-Viewer ansehen. Er besteht im wesentlichen aus drei Textblöcken mit Leerzeichen und (wahrscheinlich) ein paar Steuerzeichen dazwischen.
Zwei Textblöcke könnten von den 2 Records stammen, die ich als letzte vor dem Einfrieren editiert hatte.
Der dritte Textblock ist die Datenstruktur der (einzigen) Tabelle der Datenbank db1.
Wie repariert man die Datenbank db1 mit Hilfe des SQLIte Rollback Journals? Lesen von https://www.sqlite.org/tempfiles.html hat mich nicht erleuchtet. Dort fehlt mir ein Rezept zur Vorgehensweise.
Meine zweite Idee wäre, das Flag »readonly database« auf »read/write database« zu toggeln. Wie macht man das? Die Datei db1.sqbpro hat das Format XML Version 1.0. Die kann ich lesen.
MfG
bullgard