Kategorie: LiveConfig
Erstellt: 17.05.2022
Dieser Artikel beschreibt was zu tun ist, wenn Sie die Fehlermeldung Database exception: database disk image is malformed
in der LiveConfig-Log-Datei (/var/log/liveconfig/liveconfig.log
) vorfinden.
Es gibt zahlreiche Gründe für kaputte Datenbankdateien, SQLite stellt hierzu sogar einen eigenen Artikel bereit. Was LiveConfig betrifft, sind die häufigsten Ursachen
lcdbbackup
erstellt, sondern nur die Datenbank-Datei kopiert)liveconfig.db-journal
)Um richtig und sicher ein Backup der LiveConfig-Datenbank (mit SQLite) zu erzeugen, müssen Sie das Programm /usr/lib/liveconfig/lcdbbackup
ausführen (das wird zusammen mit LiveConfig installiert, siehe dessen Man-Page für weitere Details).
Beenden Sie LiveConfig, so dass auf die Datenbank nicht mehr zugegriffen wird:
root@srv:~# systemctl stop liveconfig
Erstellen Sie eine Sicherheitskopie der Datenbankdateien:
root@srv:~# cp -av /var/lib/liveconfig/liveconfig.db /var/lib/liveconfig/liveconfig.db.BACKUP
Öffnen Sie die Datenbank mit SQLite (ggf. müssen Sie vorher noch das Paket sqlite3
installieren)
root@srv:~# sqlite3 /var/lib/liveconfig/liveconfig.db
SQLite version 3.27.2 2019-02-25 16:06:06
Enter ".help" for usage hints.
sqlite>
Führen Sie nun den SQL-Befehl PRAGMA integrity_check;
aus.
Wenn alles in Ordnung ist, liefert dieser einfach nur ok
zurück. Sie können SQLite dann mit dem Befehl .quit
beenden.
Wenn die Integritätsprüfung aus Schritt 4 irgendeinen Fehler zurückgeliefert hat, erstellen Sie einen SQL-Dump mittels der folgenden Befehle:
sqlite> .output /var/lib/liveconfig/liveconfig.db.sql
sqlite> .dump
sqlite> .quit
Benennen Sie dann die kaputten Datenbankdateien um und importieren den SQL-Dump:
root@srv:~# mv /var/lib/liveconfig/liveconfig.db /var/lib/liveconfig/liveconfig.db.corrupt
root@srv:~# mv /var/lib/liveconfig/liveconfig.db-journal /var/lib/liveconfig/liveconfig.db-journal.corrupt
root@srv:~# sqlite3 /var/lib/liveconfig/liveconfig.db </var/lib/liveconfig/liveconfig.db.sql
root@srv:~# chown liveconfig:liveconfig /var/lib/liveconfig/liveconfig.db*
root@srv:~# chmod 600 /var/lib/liveconfig/liveconfig.db*
Damit sollte das Problem behoben sein. Starten Sie LiveConfig und prüfen ob nun alles wieder in Ordnung ist.
root@srv:~# systemctl start liveconfig