@MrLee:
Könnte der SQL-Adapter nicht vorm schreiben prüfen ob der Wert (Timestamp, Datenpunkt, value) schon da ist? `
Aus Performancegründen würde ich das nicht einbauen wollen …
Also ich habe es so gelöst das ich ein Warm-Standby System habe. Für die States nehme ich Redis und da ist auf dem Warm-Standy ein Redis-Slave. Damit sind mal alle State-Daten da. Der Redis ist mit einer Zeile in der Konfig zum Master gemacht.
ioBroker-Daten(also das Verzeichnis) an sich wird regelmäßig per rsync auf den Warm-Standby Rechner gesynct der hat HW- und OS-mäßig identisch ist zum Hauptsystem. Da ändert sich aber im Normalfall nur das objects.json. Heisst im Notfall reicht dort ein fixen des Hostnamens in der iobroker-Konfig und der Master läuft wieder. Für die Slaves hab ich nen DNS-Eintrag der auf den Master zeigt mit dem die Verbunden sind (ebenso für Redis). Also mit Ändern des DNS-Eintrags ist es auch gefixt.
Sind also ein paar Handgriffe leider, und auch welche die blöd zu automatisieren sind.
Die "Multi-Master"-Idee ist schon in einigen Köpfen, aber hier ist meiner Meinung nach ganz wichtig nicht zu wenig zu machen, weil man sonst zu schnell in komische Situationen kommt. Theoretisch müsste man eine Quorum-Logik bauen und das heisst das mindestens 3 Rechner nötig sind um zu sagen ob der aktuelle Master wirklich tod ist und sich auf einen neuen zu einigen falls man das automatisieren will. Das kann alles beliebig komplex werden.
Mal schauen.