Probleme seit der Einbindung einer CCU3 (auf RPi3 Basis)

Begonnen von dt2510, 30 Oktober 2019, 16:49:25

Vorheriges Thema - Nächstes Thema

dt2510

Ich habe vor ein Paar Wochen eine CCU3 auf RPi3 Basis eingerichtet und in FHEM eingebunden:

define CCU3 HMCCU 192.168.220.2
setuuid CCU3 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx
attr CCU3 rpcserver on
attr CCU3 stateFormat rpcstate/state


Jede Mittwoch und Sonntag Nacht um 3:00 sichere ich den kompletten NUC, auf dem FHEM läuft, mit folgendem Script auf meine Synology DS
#!/bin/bash
BACKUP_PATH="/mnt/DS216II/NUC6CAYH"
BACKUP_COUNT="5"
BACKUP_NAME="NUC6CAYH"
mount /mnt/DS216II
systemctl stop fhem & systemctl stop mysql
sync
dd if=/dev/sda of=${BACKUP_PATH}/${BACKUP_NAME}-$(date +%Y%m%d-%H%M%S).img bs=1MB
systemctl start mysql & systemctl start fhem
pushd ${BACKUP_PATH}; ls -tr ${BACKUP_PATH}/${BACKUP_NAME}* | head -n -${BACKUP_COUNT} | xargs rm; popd


Seit die CCU3 hinzugefügt wurde startet FHEM nach der Sicherung nicht mehr. Ich hab' mal das Protokoll von heute Nacht angehängt (stop um 03:00:02, start um 03:07:26):
2019.10.30 03:00:02 2: D200 - Quit session due to shutdown ...
2019.10.30 03:00:02 2: DbLog logdb - Last database write cycle due to shutdown ...
2019.10.30 03:00:02 1: Server shutdown delayed due to logdb,D200 for max 10 sec
2019.10.30 03:00:02 2: DbLog logdb - DBI connect('database=fhem;host=192.168.220.242;port=3306','fhemuser',...) failed: Can't connect to MySQL server on '192.168.220.242' (111) at ./FHEM/93_DbLog.pm line 2955.

2019.10.30 03:00:02 2: DbLog logdb - DBI connect('database=fhem;host=192.168.220.242;port=3306','fhemuser',...) failed: Can't connect to MySQL server on '192.168.220.242' (111) at ./FHEM/93_DbLog.pm line 2955.

2019.10.30 03:00:02 1: PERL WARNING: Use of uninitialized value $error in concatenation (.) or string at ./FHEM/93_DbLog.pm line 1545.
2019.10.30 03:00:02 2: DbLog logdb - Last database write cycle done
2019.10.30 03:00:02 1: ERROR: Select error -1 (111), error count= 0
Select error -1 (111)
2019.10.30 03:07:26 1: Including fhem.cfg
2019.10.30 03:07:27 2: eventTypes: loaded 5502 events from ./log/eventTypes.txt
2019.10.30 03:07:28 1: LAN: Can't open server port at 8084: Address already in use. Exiting.


D200 ist eine Kamera (SSCam), die - wie das DbLog Device - schon wesentlich länger im Einsatz ist. Einen direkten Hinweis auf die CCU3 gibt es im Protokoll zwar nicht, aber die Probleme sind erst seit der Installation aufgetaucht ...

Wernieman

Ich würde denken, das es nichts mit ccu3 zu ruhen hat. MySQL braucht zu lange zum Starten, so daß fhem noch keine DB findet ... Gib ihm Mal mehr Zeit zum Starten ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

zap

Und das mit dem "Port / address in use" würde ich auch nicht auf die leichte Schulter nehmen  ;)
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Wernieman

Btw .. Teste mal, ob mysql/fhem überhaupt runtergefahren sind!
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

dt2510

Zitat von: zap am 30 Oktober 2019, 17:48:15
Und das mit dem "Port / address in use" würde ich auch nicht auf die leichte Schulter nehmen  ;)

Der Port ist nur für den Zugriff aus dem lokalen Netz aktiviert ... könnte aber ein Hinweis darauf sein, daß FHEM noch nicht gestoppt war ....

define LAN FHEMWEB 8084 global
setuuid LAN xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx
attr LAN allowfrom 192.168.220.*
attr LAN csrfToken none
attr LAN longpoll websocket


Zitat von: Wernieman am 30 Oktober 2019, 18:03:11
Btw .. Teste mal, ob mysql/fhem überhaupt runtergefahren sind!

Der Port in Verwendung deutet darauf hin ... was mich irritiert ist, dass es vor Einrichtung der CCU3 problemlos lief...

hier mal ein Log aus dem September - da hat alles normal funktioniert
2019.09.01 03:00:01 2: D200 - Quit session due to shutdown ...
2019.09.01 03:00:01 2: DbLog logdb - Last database write cycle due to shutdown ...
2019.09.01 03:00:01 1: Server shutdown delayed due to D200,logdb for max 10 sec
2019.09.01 03:00:01 2: DbLog logdb - DBI connect('database=fhem;host=192.168.220.242;port=3306','fhemuser',...) failed: Can't connect to MySQL server on '192.168.220.242' (111) at ./FHEM/93_DbLog.pm line 2922.

2019.09.01 03:00:01 2: DbLog logdb - DBI connect('database=fhem;host=192.168.220.242;port=3306','fhemuser',...) failed: Can't connect to MySQL server on '192.168.220.242' (111) at ./FHEM/93_DbLog.pm line 2922.

2019.09.01 03:00:01 1: PERL WARNING: Use of uninitialized value $error in concatenation (.) or string at ./FHEM/93_DbLog.pm line 1511.
2019.09.01 03:00:01 2: DbLog logdb - Last database write cycle done
2019.09.01 03:00:01 1: ERROR: Select error -1 (111), error count= 0
Select error -1 (111)
2019.09.01 03:06:57 1: Including fhem.cfg
2019.09.01 03:06:58 2: eventTypes: loaded 4695 events from ./log/eventTypes.txt
2019.09.01 03:06:58 3: LAN: port 8084 opened
2019.09.01 03:06:58 3: PROXY: port 8085 opened


Die D200,logdb Meldungen sind auch da, aber FHEM startet normal ...

Wernieman

Optimiere Dein Script ..

1. Ein dd wenn mysql noch läuft ist sinnlos (da definitiv korrupt)
2. Fahre einen Dienst nmach dem anderen hoch .. nicht mit && verknüpfen, sondern mit Test ob es funktioneirt hat.
3. Als Test 1. die Rückgabewerte nutzen (?$) und 2. die Prozessdaten (ps), bzw. beim starten kann ein mysql-conneckt genutzt werden...

Wahrscheinlich tut Dein pi durch die CCU3 mehr und Du bekommst dadurch, indirekt, die Probleme, welche aber ursächlich in fehlenden Fehlerroutinen zu finden sind.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

dt2510

FHEM läuft nicht auf dem CCU3 Pi, sondern zusammen mit MySQL auf einem Intel NUC ... ich muss mal sehen, ob ich das Beenden/Starten der Dienste etwas sicherer lösen kann (da muss ein Kollege ran, der mehr Ahnung von Linux hat als ich ...)

Wernieman

Irgendwie wiedersprichst Du Dir, im Script steht:
systemctl stop mysql
Du stoppst also mysql auf der gleichen Maschine

Wenn Du keine Ahnung hast, würde ich Dir auch von diesem Backup abraten. Du hast eine große Wahrscheinlichkeit, Stichwort geöffnete/gecachte Dateien, das Dein DD-backup korrupt ist. Dann hast Du auch nicht das know-how um es zu reparieren.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

dt2510

Inwiefern wiederspreche ich mir ? FHEM und MySQL laufen auf dem NUC der gesichert werden soll. Für die Dauer des DD sollen sie natürlich gestoppt werden.

zap

#9
systemctl sagt dem System nur, dass ein Prozess gestartet oder gestoppt werden soll. Wenn der Befehl "zurückkehrt" - also der nächste ausgeführt wird - heißt das nicht, dass das initiierte Starten oder Stoppen auch beendet ist.

Daher ist die Wahrscheinlichkeit sehr hoch, dass das Backup ausgeführt wird, wenn FHEM und / oder MySQL noch läuft.

FHEM macht das nichts bzw. nicht viel. Das MySQL Backup hingegen ist sehr wahrscheinlich unbrauchbar.

Hast Du denn schon mal einen Restore getestet? Ohne einen solchen erfolgreichen Test nützt kein Backup etwas.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

dt2510

Ich hatte ein Restore getestet vor der Umstellung auf DbLog - da hatte MySQL noch nichts zu tun. Eine korrupte DB wäre aktuell nicht tragisch, die Daten sind nicht zwingend nötig.
Ich hatte sowieso vor die FHEM Tabellen direkt in die MySQL der DS zu kopieren als Sicherung.
Wäre es evtl. Sinnvoller direkt die MySQL der DS zu verwenden ? Hyperbackup sichert MySQL sowieso mit ...