Kaputt gespielt – Backup und Wiederherstellung

Was soll ich sagen, irgendwie habe ich mein Raspberry Pi OS (Raspbian) kaputt gespielt. Es fing damit an, dass ich nicht per VNC auf das System kam (für deCONZ). Zeitweise ging nicht mal raspi-config. Und: jedes mal ging nach ein paar Betriebsstunden die CPU Last massiv in die Höhe – ausgelöst durch einen Fehler mit oder durch kworker. Also fiel die Entscheidung: neu aufsetzen. Ein praktischer Präzedenzfall für Backup & Restore.

In meinem Setup waren drei, oder besser vier Dinge zu sichern und zu überspielen. Da ich noch einen Raspberry Pi 4 herumliegen hatte, konnte ich die Systeme parallel laufen lassen, und musste nicht ständig zwischen alt und neu wechseln, sofern mir noch Infos fehlten. Auch konnte ich so die Vollständigkeit der Daten gut prüfen.

Zum Kopieren der Daten zwischen den Raspberrys nutze ich immer WinSCP.

1. deCONZ/Phoscon

Bei Phoscon einfach über die Weboberfläche unter „Gateway“ ein Backup ziehen und an gleicher Stelle auf dem neuen System wieder einspielen. Das Einspielen des Backups habe ich jedoch erst gemacht, als die microSD-Karte mit dem neuen System auch im Raspberry Pi mit dem Conbee II steckte, um mögliche Probleme zu vermeiden.

2. InfluxDB

Hier sollte man zwingend mit den Backup & Restore Befehlen von influxd arbeiten, ein Kopieren der Datenordner führte (zumindest bei mir) nicht zum Erfolg.

Es müssen sowohl der META-STORE als auch die Datenbank(en) gesichert werden.

$ influxd backup <speicherort-fuer-backup>
$ influxd backup -database iobroker <speicherort-fuer-backup>

Das Wiederherstellen ist ähnlich leicht.

$ influxd restore -metadir /var/lib/influxdb/meta <speicherort-des-backups>
$ influxd restore -database iobroker -datadir /var/lib/influxdb/data <speicherort-des-backups>     

Anschließend muss man ggf. noch die Benutzerrechte des Ordners anpassen.

$ sudo chown -R influxdb:influxdb /var/lib/influxdb

3. ioBroker

Bei ioBroker kann man ein komplettes Backup sehr leicht über die Kommandozeile erstellen:

$ cd /opt/iobroker
$ sudo iobroker stop
$ sudo iobroker backup
$ sudo iobroker start

Das Backup liegt dann unter /opt/iobroker/backups/.

Ebenso einfach ist das Wiederherstellen. Das Backup-Archiv muss man dazu in den gleichen Ordner auf dem neuen System kopieren.

$ sudo iobroker stop 
$ sudo iobroker restore 0
$ sudo iobroker start all
$ sudo iobroker start
$ sudo iobroker upload all

(der Befehl „sudo iobroker upload all“ lädt die Webseiten aus den Ordnern „www“ und „admin“ aus den Adaptern in den ioBroker-Dateispeicher hoch)

Nun dauert es je nach Umfang der ioBroker-Installation einige Minuten, bis automatisch wieder alle Adapter installiert sind. Über die Weboberfläche – Instanzen kann man den Prozess rudimentär beobachten.

4. Node-RED

Die Flows werden beim ioBroker-Backup (3.) mitgesichert. Allerdings werden die zusätzlich installierten Node-Module (über „Palette verwalten“) beim Wiedereinspielen nicht automatisch installiert. Hier hilft ein Screenshot der Liste oder eine kurze Notiz der installierten Node-Module. Aber: zur Not lassen sich die auch anhand der Auflistung fehlender Nodes recherchieren und rekonstruieren.

Probleme

Probleme gab es eigentlich gar nicht. Einzig der ioBroker PING Adapter ändert den Objektpfad anhand des Hostnames – wählt man hier bei der neuen Installation einen anderen, muss man sämtliche Pfadangaben des PING Adapters z.B. im Node-RED korrigieren.

Nachtrag 23.06.2021

Inzwischen (?) kann man im PING Adapter einstellen, dass der Hostname nicht im Zustandsnamen verwendet werden soll. Wenn man bei der Einrichtung darauf achtet, kann man beim Backup & Restore dieses Problem umschiffen.

8 Gedanken zu „Kaputt gespielt – Backup und Wiederherstellung“

  1. Hi,

    danke für deine Erläuterungen zum Restore. Das Wiederherstellen lief sauber durch. Leider ist ioBroker danach nicht erreichbar. Aber ich kann den ioBroker nicht erreichen. Muss ich vorher iobroker ganz neu installieren und dann erst das Backup einspielen?

  2. Hallo Leute, ich bin komplett am verzweifeln! Ich hatte jetzt nach 2 Jahren Bastelei so ziemlich alles laufen was ich so wollte. Skripte, Objekte etc. Dabei ist mir anscheinend ein großer Patzer unterlaufen und mein iobroker wollte nicht mehr starten, bzw war über weboberfläche nicht mehr zu erreichen.
    Stand jetzt, Broker neu aufgesetzt und ich versuche ein Backup von Juni aufzuspielen. Kein Erfolg! Ich kann zwar ein Backup mittels konsolenbefehlen erzeugen, aber wenn ich die Karte wiederum am Rechner anschließe um das alte Backup in den Ordner zu packen, bemerke ich jedes Mal, dass kein Ordner angelegt ist. Es gibt überhaupt nur einen Ordner overlays sonst nix. Kann mir bitte bitte jemand helfen!?

    1. Hallo Sebastian,
      kannst du aktuell noch ein neues Backup (nach Anleitung) über die Konsole erstellen? Wenn ja wäre es wahrscheinlich nicht schlecht, zusätzlich zum Backup aus dem Juni ein aktuelles Backup zu ziehen, es auf Vollständigkeit zu prüfen und den ioBroker – oder das ganze OS – neu aufzusetzen. Das Backup des ioBroker besteht aus einer großen backup.json Datei (bei mir > 18 MB) und einem Ordner „files“. Sollte das Einspielen des Backups wieder zum Problem führen, (weil das Problem auch im Backup steckt), kann man – falls man eine Ahnung hat, wo das Problem stecken könnte – mit viel Arbeit den Teil aus der backup.json entfernen.
      Viel Glück!

  3. Großartig, vielen Dank!
    Der Abschnitt über den Restore des iobroker hat meine Installation – und meine Nachtruhe – gerettet!
    Nachdem der iobroker einfach nicht mehr hochfahren wollte, war ich kurz davor, einiges, wenn nicht gar alles neu aufzusetzen. Dann kam mir dein Beitrag noch gerade recht unter die Augen und nach den Restore-Kommandos zeigte der iobroker wieder zunehmend Lebenszeichen.
    Mein Glück war zudem, dass ich kurz vor dem Crash (wahrscheinlich beim Umzug des Systems an eine neue Stelle im Haus) ein Backup gezogen hatte.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert