Datenlöschung Wartung.php vs. Influxdb

Allgemeine Informationen zum Nachbau und zum Forum.
PV-Monitorung / PV Überwachung

Moderator: Ulrich

Thomas41199
Beiträge: 3
Registriert: Do 18. Aug 2022, 12:58

Datenlöschung Wartung.php vs. Influxdb

Beitrag von Thomas41199 »

Hallo zusammen,

ich monitore seit Januar 2023 den PV Ertrag (und diverse andere Ereignisse) mittels Solaranzeige.

Ziemlich erstaunt war ich Ende Januar 2024, als die historischen Daten von Januar 2023 wochenweise verschwanden. In der Wartung.php war der relevante Eintrag für die Speicherdauer korrekt auf 4 Jahre eingetragen. Um es kurz zu machen: egal was ich eintrage (also auch „0“ für keine Löschung), die Daten gehen „Woche für Woche von Bord“. In der Wartung.log waren Einträge wie „...Daten älter als dem 2019-01-15 wurden gelöscht“ oder „... Daten älter als dem 1999-07-14 wurden gelöscht“; tatsächlich jedoch alle Daten mit dem Verfallsdatum von 1 Jahr. Die Wartung,php habe ich nun umbenannt, damit kein Zugriff mehr darauf erfolgen kann: Ergebnis: die Daten werden weiter gelöscht obwohl in der Wartung.log jetzt richtigerweise keine Löschungen mehr ausgewiesen werden. Meine Vermutung, dass es mit der Influxdb direkt zusammenhängt wurde bestätigt, da die vorgegebene Retention Policy (autogen) auf 1 Jahr eingestellt war. Eine versuchsweise Änderung per Influx-CLI-Tool auf 4 Jahre oder auch auf "unendlich" ist mir gelungen; allerdings mit dem Ergebnis, dass nach der Änderung der Policy die Daten (in Grafana) nicht mehr verfügbar sind. Setze ich die Retention-Policy wieder auf die „autogen“ Einstellung mit 1 Jahr, sind die Daten wieder da. Auch mit geänderter Retentiondauer die historischen Daten aus dem Backup einzuspielen funktioniert nicht, da die ursprünglichen Retentioneinstellungen (1 Jahr) mit dem Backup wieder reaktiviert werden. Die Influxdb.conf ist im Originalzustand, also ohne Einträge im Abschnitt Retention...

Jetzt stehe ich auf dem Schlauch, was übersehe ich? Glücklicherweise habe ich Backups der Datenbank, so dass ich mit den historischen Daten und Retention-Einstellungen experimentieren kann, wenn auch bislang ohne Erfolg. Im Forum habe ich keine Beiträge gefunden, die ein ähnliches Problem ausweisen. Gibt es einen Trick die Datenbank auf eine andere Speicherdauer (z. B. 4 Jahre) einzustellen ohne auf die historischen Daten verzichten zu müssen? Bisher habe ich bewusst auf Updates der Solaranzeigen-Software verzichtet (...never touch a running system), will also nicht ausschließen, dass dieses Thema in neueren Versionen nicht (mehr) existiert. Wer weiß Rat? :prayer:

Danke bis hierin

Thomas

System:
Hardware: Raspi 4 B 4 GB, SSD 256 GB, Huawei WR 6KTL M1 per Dongle (Regler Nr. 62)
Solaranzeige Version 5.10.103-v7l, keine Multiregler, kein Überschussladen

Benutzeravatar
Ulrich
Administrator
Beiträge: 5543
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 124 Mal
Danksagung erhalten: 835 Mal

Re: Datenlöschung Wartung.php vs. Influxdb

Beitrag von Ulrich »

Hallo Thomas,

als ich den Wartungsscript eingeführt habe, gab es, soviel ich weiß, noch gar nicht die automatische Löschung der Daten durch die InfluxDB. Die Datenbank hat sich so schnell weiter entwickelt, dass man kaum die neuen Features alle kennen lernen konnte. Du hast recht, da müsste man sich erst einmal mit vertraut machen. Soviel mir bekannt ist, muss man die Speicherlänge schon bei der Erstellung der Datenbank ändern. Es kann sein, dass man die danach nicht mehr ändern kann. Genau weiß ich das aber nicht.
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

schlmich
Beiträge: 11
Registriert: Do 10. Feb 2022, 10:44
Hat sich bedankt: 2 Mal
Danksagung erhalten: 3 Mal

Re: Datenlöschung Wartung.php vs. Influxdb

Beitrag von schlmich »

Hi,

hast schon mal direkt deine DB gecheckt, wie lange die retention policy eingestellt ist?
mit "influx" kommst du in die DB direkt am Raspi über die Shell.
Dann "use solaranzeige" und im Anschluss "show retention policies"
Das Ergebnis sollte so aussehen.

name duration shardGroupDuration replicaN default
---- -------- ------------------ -------- -------
autogen 0s 168h0m0s 1 true

Hinweis: Bevor du die unteren Befehle verwendest, sichere dir deine DB weg!!!!

Mit z.B. ALTER RETENTION POLICY "autogen" ON "solaranzeige" DURATION 208w
stellst du 4 Jahre ein für die Datenbank "solaranzeige".
und mit ALTER RETENTION POLICY "autogen" ON "solaranzeige" DURATION 0s
sollten die Daten ewig behalten werden. Dann ist der Output wie oben.

LG,
Michael

Thomas41199
Beiträge: 3
Registriert: Do 18. Aug 2022, 12:58

Re: Datenlöschung Wartung.php vs. Influxdb

Beitrag von Thomas41199 »

@Ulrich: Danke für Deine Einschätzung. Ich denke genauso wird es sein.

@schlmich: Danke dir für den Versuch...
Das ganze Procedere hab' ich wie von dir beschrieben durchprobiert. Da ich von Influx keine Ahnung habe, bin ich strikt nach Anleitung (aus dem WWW) vorgegangen und habe per Putty über die Shell (CLI Influx) die relevanten Retention Policy- Befehle (create..., alter,..) mit "2 Jahren", "4 Jahren" und "0s =unendlich" losgeschickt. Der Effekt ist immer der gleiche: Nach jeder Änderung sind die Daten nicht mehr verfügbar (aber eben nicht gelöscht!); die Influx beginnt auch sofort mit der Aufzeichnung neuer Daten. Setze ich auf die Retention-Defaultwerte zurück (bei mir 1 Jahr) kann ich wieder auf die historischen Werte zugreifen.

Was ich noch nicht probiert habe ist, die Retention Policy Werte in der influxdb.conf einzutragen, damit die Datenbank direkt beim Aufruf mit geänderter Steicherdauer gestartet wird. Ich kenne aber die Syntax nicht.

Gruß

Thomas

schlmich
Beiträge: 11
Registriert: Do 10. Feb 2022, 10:44
Hat sich bedankt: 2 Mal
Danksagung erhalten: 3 Mal

Re: Datenlöschung Wartung.php vs. Influxdb

Beitrag von schlmich »

Hi,
welche Version von Influxdb hast den installiert?

Mit dem "ALTER......." ändert man die Retention policy. Wenn du vorher eine neue angelegt hast o.ä. dann wird des nicht funktionieren.
Ich habe bei mir die Influx 1.8.10 installiert. Bei der Version funktioniert es bei mir, wenn ich die Retention Policy AUTOGEN mit ALTER ändere.

Zugriff auf die Daten hast du, wenn du exakt darauf zugreifst, also mittels "Datenbank.retentionpolicy.Measurement"
z.B.: mit [ SELECT * FROM solaranzeige.autogen.AC ORDER BY TIME DESC LIMIT 2 ]

LG,
Michael

Thomas41199
Beiträge: 3
Registriert: Do 18. Aug 2022, 12:58

Re: Datenlöschung Wartung.php vs. Influxdb

Beitrag von Thomas41199 »

@ schlmich

Hallo,

habe auch die Influx 1.8.10. Bisher war ich zu schissig, die "autogen" zu ändern, also immer mit CREATE eine neue Retention erstellt. Mit deinem Hinweis habe ich die vorhandene "autogen" auf 0s (unendlich) geändert, die SHARD DURATION jedoch beibehalten:

ALTER RETENTION POLICY "autogen" ON "solaranzeige" DURATION 0s SHARD DURATION 168h0m0s DEFAULT

Ergebnis: Die historischen Daten sind noch da!!!! :P

DAS war der Trick. Besten Dank.

Werde in den nächsten Wochen ein Auge auf mögliche Datenabgänge werfen; bin aber zuversichtlich, dass sich die Datenlöschung nun -wie geplant- über die Wartung.php steuern lässt.

@Ulrich

Vlt. ist das Thema ein Hinweis in der Wartung.pdf wert.

LG

Thomas

schlmich
Beiträge: 11
Registriert: Do 10. Feb 2022, 10:44
Hat sich bedankt: 2 Mal
Danksagung erhalten: 3 Mal

Re: Datenlöschung Wartung.php vs. Influxdb

Beitrag von schlmich »

Hallo Thomas,

freut mich das es nun geklappt hat.

Ich habe in der Crontab das Wartungsscript deaktiviert, und zwar so:

sudo crontab -e

Dann die Zeile /var/www/html/wartung.php auskommentiern mit einem # am Anfang
Speichern mit F10
Und fertig.

Zur Sicherheit kannst dann im Ordner /var/www/html die Datei wartung.php umbenennen.

Und dann wird gespeichert bis das Speichermedium voll ist. :)

LG,
Mihcael

Wer ist online?

Mitglieder in diesem Forum: dbfan75 und 2 Gäste