Historian DB defekt

Das Langzeitarchiv für HomeMatic

Moderator: Co-Administratoren

Antworten
Benutzeravatar
Bernd-Joras
Beiträge: 732
Registriert: 26.03.2016, 09:33
Hat sich bedankt: 34 Mal
Danksagung erhalten: 40 Mal

Historian DB defekt

Beitrag von Bernd-Joras » 01.02.2024, 10:43

Hallöle mit einem Historian Problemchen …

Gestern nach dem Updtate auf Version 3.73.9.20240130 ist mir aufgefallen, dass mein Historian Version 3.5.0 nicht mehr läuft.

Die Historian DB ist ca. 6 Jahre alt (Historian auf sparsam konfiguriert) und hat eine Größe von 4,6 GB
Die Historian DB liegt auf einem 30 GB USB Stick welcher mit f2fs formatiert ist.

Der angezeigten Fehler ist wie folgt zu sehen ..

Code: Alles auswählen

Datei fehlerhaft beim Lesen des Datensatzes: "/media/usb1/ccu-historian/history.mv.db". Mögliche Lösung: Recovery Werkzeug verwenden File corrupted while reading record: "/media/usb1/ccu-historian/history.mv.db". Possible solution: use the recovery tool [90030-214]

Die Datenbank ist bereits geschlossen The database has been closed [90098-214]
org.h2.jdbc.JdbcSQLNonTransientConnectionException: Die Datenbank ist bereits geschlossen 

Ich habe nun gedacht, kein großes Drama, spiele ich halt ein Backup (script.sql) ein ...
Das hat dann leider mit keinem Backup von/vor 1, 20, 60, 360 Tagen funktioniert und stellte sich so dar ...

Code: Alles auswählen

Datebankimportprotokoll   => FEHLER: java.io.IOException: No space left on device 
Also nun neuer leeren Stick probiert, neu formatiert (f2fs) .... 3 Jahre alte 1,2 GB Historian DB probiert, nichts zu machen.

Wahrscheinlich ist jetzt ggf. sowieso besser neu anzufangen mit dem Historian Daten, aber ich finde schon man sollte wissen warum hier nichts geht, so haben Backups sonst ggf. wenig sinn. Ich habe schonmal vor ca. 2 Jahren erfolgreich ein Recovery Historin machen können, nur jetzt geht irgendwie nichts mehr.

Ich würde trotzdem gerne das "Recovery Werkzeug" benutzen / testen komme aber irgendwie mit den vielen unterschiedlichen Beschreibungen nicht klar. Kann hier vielleicht jemand aushelfen ... ?

Hat noch jemand eine Idee ... ? Danke vorab ... Bernd


Nachtrag: Moment mal ... da geht gerade doch noch was .... melde mich wieder ... BGB
2 Standorte mit je RPi3B+ RaspberryMatic 3.75.7.20240420 / RPI-RF-MOD | Externe USB-Platinen Antenne | 2x LAN_RF_GW | 1x LAN_RS485_GW | ca. 170 Geräte davon 35x IP | ca. 250 Programme |>600 Kanäle | Addons: CUX-Daemon, XML-API, hm_pdetect, E-Mail, CCU-Historian

Benutzeravatar
Bernd-Joras
Beiträge: 732
Registriert: 26.03.2016, 09:33
Hat sich bedankt: 34 Mal
Danksagung erhalten: 40 Mal

Re: Historian DB defekt

Beitrag von Bernd-Joras » 01.02.2024, 11:52

Also, habe es doch hinbekommen meine alten Historian Daten zu behalten 😊

Meine Fehler waren ….
Habe versucht das Restore über die Historian GUI zu machen indem ich die script.sql (oder umbenannt in backup.sql) versucht habe mittels Datenbankimport einzulesen. => Das funktioniert wie geschrieben nicht …

Alte Doku von mir gefunden und so „erfolgreich“ restored …

Code: Alles auswählen

!# HISTORIAN Restore
!# Die automatisch generierte Backup-Datei.zip muss entpackt werden.
!# Die entpackte script.sql  muss dann in backup.sql umbenannt werden.
!# Die backup.sql muss dann nach /usr/local/ccu-historian/ccu-historian kopiert werden.
!# (Die backup.sql muss dann nach /usr/local/addons/ccu-historian/ccu-historian kopiert werden.

!# Der Historian muss beendet werden (SSH / PUTTY)
!# cd /usr/local/addons/ccu-historian/ccu-historian
!# /usr/local/etc/config/rc.d/ccu-historian stop

!# Die alte Datenbank muss gelöscht oder umbenannt werden
!# (liegt auf dem Stick /media/usb0/ccu-historian => history.mv.db)
!# rm /media/usb0/ccu-historian/history.mv.db)

!# Nun muss nachfolgender Befehl ausgeführt werden ...
!# Nach einiger Zeit (ca. 5-15 Min.) sollte die wiederhergestellte Datenbank im Original Verzeichnis des USB-Sticks liegen.

!# cd /usr/local/addons/ccu-historian/ccu-historian
!# /opt/java/bin/java -jar ccu-historian.jar -config ../ccu-historian.config -runscript backup.sql

!# Dann kann der Historian wieder gestartet werden und die DB getestet werden.
!# /usr/local/etc/config/rc.d/ccu-historian start
Warum die DB nun gestorben ist … keine Ahnung … aber wieder einmal was dazugelernt … nach jedem Update irgendeiner Art und oder Reboot alles wichtige testen …

Ich habe jedoch noch immer unter "Werkzeuge => im Menu Datenpunktkonfiguration" diesen Fehler ...

Code: Alles auswählen

Tabelle "D_BIDCOS_RF_OEQ0168749_0_STICKY_UNREACH" nicht gefunden Table "D_BIDCOS_RF_OEQ0168749_0_STICKY_UNREACH" not found; SQL statement: SELECT COUNT(*) FROM D_BIDCOS_RF_OEQ0168749_0_STICKY_UNREACH [42102-214]
Interessanterweise ist die entstandene „history.mv.db“ nur noch < 1GB … und trotzdem scheinen alle Daten vorhanden ….

Vielleicht kann mir dennoch jemand einen Tipp geben, ob und wenn wie, man versuchen kann eine Historian DB zu reparieren.
Vielleicht jedoch ist das auch gar kein DB Fehler ... ?

BGB
2 Standorte mit je RPi3B+ RaspberryMatic 3.75.7.20240420 / RPI-RF-MOD | Externe USB-Platinen Antenne | 2x LAN_RF_GW | 1x LAN_RS485_GW | ca. 170 Geräte davon 35x IP | ca. 250 Programme |>600 Kanäle | Addons: CUX-Daemon, XML-API, hm_pdetect, E-Mail, CCU-Historian

PaulM
Beiträge: 319
Registriert: 16.02.2015, 17:05
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 129 Mal
Danksagung erhalten: 35 Mal

Re: Historian DB defekt

Beitrag von PaulM » 01.02.2024, 11:56

siehe Handbuch:
https://github.com/mdzio/ccu-historian/ ... -datenbank

habe allerdings keine eigenen Erfahrungen damit

Gruß
PM
Mit Mut und Entschlossenheit gegen Intoleranz

Benutzeravatar
Bernd-Joras
Beiträge: 732
Registriert: 26.03.2016, 09:33
Hat sich bedankt: 34 Mal
Danksagung erhalten: 40 Mal

Re: Historian DB defekt

Beitrag von Bernd-Joras » 01.02.2024, 11:58

Danke ... genau das habe ich auch gefunden ... aber nicht wirklich bei mir umsetzen können ... genau dort, brauche ich Hilfe ... Danke
2 Standorte mit je RPi3B+ RaspberryMatic 3.75.7.20240420 / RPI-RF-MOD | Externe USB-Platinen Antenne | 2x LAN_RF_GW | 1x LAN_RS485_GW | ca. 170 Geräte davon 35x IP | ca. 250 Programme |>600 Kanäle | Addons: CUX-Daemon, XML-API, hm_pdetect, E-Mail, CCU-Historian

PaulM
Beiträge: 319
Registriert: 16.02.2015, 17:05
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 129 Mal
Danksagung erhalten: 35 Mal

Re: Historian DB defekt

Beitrag von PaulM » 01.02.2024, 12:03

man bräuchte vermutlich eine Anleitung wie man auf einem anderen Windowsrechner CCU-Historian installiert und zum Laufen bekommt, um die Reparatur dort in Ruhe durchführen zu können
Mit Mut und Entschlossenheit gegen Intoleranz

Benutzeravatar
Bernd-Joras
Beiträge: 732
Registriert: 26.03.2016, 09:33
Hat sich bedankt: 34 Mal
Danksagung erhalten: 40 Mal

Re: Historian DB defekt

Beitrag von Bernd-Joras » 01.02.2024, 12:28

Die Fehlermeldung in der Historian GUI unter "Werkzeuge => im Menu Datenpunktkonfiguration kann man aufklappen ...
Vielleicht kann nun jemand sagen was zu tun wäre ... Danke vorab, Bernd

Code: Alles auswählen

org.h2.jdbc.JdbcSQLSyntaxErrorException: Tabelle "D_BIDCOS_RF_OEQ0168749_0_STICKY_UNREACH" nicht gefunden
Table "D_BIDCOS_RF_OEQ0168749_0_STICKY_UNREACH" not found; SQL statement:
SELECT COUNT(*) FROM D_BIDCOS_RF_OEQ0168749_0_STICKY_UNREACH [42102-214]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:502)
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:477)
	at org.h2.message.DbException.get(DbException.java:223)
	at org.h2.message.DbException.get(DbException.java:199)
	at org.h2.command.Parser.getTableOrViewNotFoundDbException(Parser.java:8398)
	at org.h2.command.Parser.getTableOrViewNotFoundDbException(Parser.java:8369)
	at org.h2.command.Parser.readTableOrView(Parser.java:8358)
	at org.h2.command.Parser.readTablePrimary(Parser.java:1863)
	at org.h2.command.Parser.readTableReference(Parser.java:2334)
	at org.h2.command.Parser.parseSelectFromPart(Parser.java:2772)
	at org.h2.command.Parser.parseSelect(Parser.java:2878)
	at org.h2.command.Parser.parseQueryPrimary(Parser.java:2762)
	at org.h2.command.Parser.parseQueryTerm(Parser.java:2633)
	at org.h2.command.Parser.parseQueryExpressionBody(Parser.java:2612)
	at org.h2.command.Parser.parseQueryExpressionBodyAndEndOfQuery(Parser.java:2605)
	at org.h2.command.Parser.parseQueryExpression(Parser.java:2598)
	at org.h2.command.Parser.parseQuery(Parser.java:2567)
	at org.h2.command.Parser.parsePrepared(Parser.java:724)
	at org.h2.command.Parser.parse(Parser.java:689)
	at org.h2.command.Parser.parse(Parser.java:661)
	at org.h2.command.Parser.prepareCommand(Parser.java:569)
	at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:631)
	at org.h2.engine.SessionLocal.prepareCommand(SessionLocal.java:554)
	at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1116)
	at org.h2.jdbc.JdbcStatement.executeQuery(JdbcStatement.java:92)
	at mdz.ccuhistorian.Database.getCount(Database.groovy:323)
	at mdz.ccuhistorian.ExtendedStorage.getCount(ExtendedStorage.groovy:118)
	at dpconfig$_run_closure2$_closure4$_closure9$_closure62$_closure64$_closure65.doCall(dpconfig.gy:302)
	at dpconfig$_run_closure2$_closure4$_closure9$_closure62$_closure64$_closure65.doCall(dpconfig.gy)
	at dpconfig$_run_closure2$_closure4$_closure9$_closure62$_closure64.doCall(dpconfig.gy:284)
	at dpconfig$_run_closure2$_closure4$_closure9$_closure62.doCall(dpconfig.gy:282)
	at dpconfig$_run_closure2$_closure4$_closure9$_closure62.doCall(dpconfig.gy)
	at dpconfig$_run_closure2$_closure4$_closure9.doCall(dpconfig.gy:281)
	at dpconfig$_run_closure2$_closure4$_closure9.doCall(dpconfig.gy)
	at dpconfig$_run_closure2$_closure4.doCall(dpconfig.gy:250)
	at dpconfig$_run_closure2$_closure4.doCall(dpconfig.gy)
	at dpconfig$_run_closure2.doCall(dpconfig.gy:44)
	at dpconfig$_run_closure2.doCall(dpconfig.gy)
	at mdz.ccuhistorian.webapp.PageRenderer$_runSafe_closure2.doCall(PageRenderer.groovy:55)
	at mdz.ccuhistorian.webapp.PageRenderer$_runSafe_closure2.doCall(PageRenderer.groovy)
	at mdz.ccuhistorian.webapp.WebUtilities$_catchToLog_closure1.doCall(WebUtilities.groovy:83)
	at mdz.ccuhistorian.webapp.WebUtilities$_catchToLog_closure1.doCall(WebUtilities.groovy)
	at mdz.Exceptions.lambda$0(Exceptions.java:84)
	at mdz.Exceptions.catchToLog(Exceptions.java:74)
	at mdz.Exceptions.catchToLog(Exceptions.java:84)
	at mdz.ccuhistorian.webapp.WebUtilities.catchToLog(WebUtilities.groovy:81)
	at mdz.ccuhistorian.webapp.PageRenderer.runSafe(PageRenderer.groovy:53)
	at mdz.ccuhistorian.webapp.PageRenderer.writeContent(PageRenderer.groovy:302)
	at mdz.ccuhistorian.webapp.PageRenderer$_writeBody_closure7$_closure11.doCall(PageRenderer.groovy:155)
	at mdz.ccuhistorian.webapp.PageRenderer$_writeBody_closure7$_closure11.doCall(PageRenderer.groovy)
	at mdz.ccuhistorian.webapp.PageRenderer$_writeBody_closure7.doCall(PageRenderer.groovy:150)
	at mdz.ccuhistorian.webapp.PageRenderer$_writeBody_closure7.doCall(PageRenderer.groovy)
	at mdz.ccuhistorian.webapp.PageRenderer.writeBody(PageRenderer.groovy:149)
	at mdz.ccuhistorian.webapp.PageRenderer$_writeDocument_closure5.doCall(PageRenderer.groovy:121)
	at mdz.ccuhistorian.webapp.PageRenderer$_writeDocument_closure5.doCall(PageRenderer.groovy)
	at mdz.ccuhistorian.webapp.PageRenderer.writeDocument(PageRenderer.groovy:119)
	at mdz.ccuhistorian.webapp.PageRenderer$_render_closure1.doCall(PageRenderer.groovy:25)
	at mdz.ccuhistorian.webapp.PageRenderer$_render_closure1.doCall(PageRenderer.groovy)
	at mdz.ccuhistorian.webapp.WebUtilities$_catchToLog_closure1.doCall(WebUtilities.groovy:83)
	at mdz.ccuhistorian.webapp.WebUtilities$_catchToLog_closure1.doCall(WebUtilities.groovy)
	at mdz.Exceptions.lambda$0(Exceptions.java:84)
	at mdz.Exceptions.catchToLog(Exceptions.java:74)
	at mdz.Exceptions.catchToLog(Exceptions.java:84)
	at mdz.ccuhistorian.webapp.WebUtilities.catchToLog(WebUtilities.groovy:81)
	at mdz.ccuhistorian.webapp.PageRenderer.render(PageRenderer.groovy:22)
	at dpconfig.run(dpconfig.gy:427)
	at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1459)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656)
	at org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:319)
	at org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:273)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:201)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:516)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
2 Standorte mit je RPi3B+ RaspberryMatic 3.75.7.20240420 / RPI-RF-MOD | Externe USB-Platinen Antenne | 2x LAN_RF_GW | 1x LAN_RS485_GW | ca. 170 Geräte davon 35x IP | ca. 250 Programme |>600 Kanäle | Addons: CUX-Daemon, XML-API, hm_pdetect, E-Mail, CCU-Historian

Benutzeravatar
Bernd-Joras
Beiträge: 732
Registriert: 26.03.2016, 09:33
Hat sich bedankt: 34 Mal
Danksagung erhalten: 40 Mal

Re: Historian DB defekt

Beitrag von Bernd-Joras » 01.02.2024, 17:00

Erst einmal Entwarnung ... scheinbar läuft wieder alles so wie es soll ... war viel Handarbeit ;-) werde dann später Berichten ... Danke BGB

Hallöle und der Versuch das ganze einmal zu beschreiben …
Ich bemerkte, dass mein Historian Version 3.5.0, bzw. die Datenbank (DB) Fehler zeigte.

Code: Alles auswählen

Datei fehlerhaft beim Lesen des Datensatzes: "/media/usb1/ccu-historian/history.mv.db". Mögliche Lösung: Recovery Werkzeug verwenden File corrupted while reading record: "/media/usb1/ccu-historian/history.mv.db". Possible solution: use the recovery tool [90030-214

Die Datenbank ist bereits geschlossen The database has been closed [90098-214]
org.h2.jdbc.JdbcSQLNonTransientConnectionException: Die Datenbank ist bereits geschlossen
Vermutlich ist das bei einem meiner letzten Stromausfälle Szenarien passiert.

Die Historian DB ist ca. 6 Jahre alt (Historian auf sparsame Datenpunktkonfiguration konfiguriert) und hat eine Größe von 4,6 GB
Historian DB liegt auf einem 30 GB USB Stick welcher mit f2fs formatiert ist.
Hier jedoch auch ehrlich mitgeteilt, dass die Datenpunktkonfiguration in den letzten 2 Jahren definitiv zu kurz gekommen ist.
Nachdem die DB aus einem Backup wiederhergestellt war, war diese dann auch nur noch ca. 1 GB groß. (siehe Beschreibung weiter oben => /ccu-historian.config -runscript backup.sql)

Der Historian startete nun fehlerfrei aber die Datenpunktkonfiguration zeigte Fehler.

Code: Alles auswählen

org.h2.jdbc.JdbcSQLSyntaxErrorException: Tabelle "D_BIDCOS_RF_OEQ0168749_0_STICKY_UNREACH" nicht gefunden
Table "D_BIDCOS_RF_OEQ0168749_0_STICKY_UNREACH" not found; SQL statement:
SELECT COUNT(*) FROM D_BIDCOS_RF_OEQ0168749_0_STICKY_UNREACH [42102-214]
Nachdem ich diesen Datenpunkt händisch aus der Datenpunktliste gelöscht (Datenpunkte inkl. Historie löschen) habe, zeigte sich bei der Datenpunktkonfiguration der nächste Fehler, bzw. der nächste fehlende Datenpunkt.
Diesen also auch gelöscht … und der nächste fehlende … usw. das Spiel habe ich dann geduldig mit ca. 50 fehlenden Datenpunkten wiederholt.
Nachdem alle fehlenden Datenpunkte gelöscht waren, zeigte die Datenpunktkonfiguration keine fehlenden Datenpunkte mehr an. (keine Fehler)

Ich könnte mir denken, dass diese fehlenden Datenpunkte auch von mir selbst verursacht worden sind, da ich gesehen habe, dass es beim
Konfigurieren der Datenpunkte (Datenpunktkonfiguration)zu Verzögerungen in der Webseitenansicht kommt und ich ggf. mitten im noch laufenden Konfigurationsprocess schon weitergeklickt habe… das aber nur am Rand.

Nun habe noch ein -recalc und -compact gemacht und die DB ist mit allen meinen gewünschten Datenpunkten nur noch 260 MB groß.

Gelernt habe ich daraus …
1. Keine Stromausfälle ungeachtet und unkontrolliert lassen.
2. Vor und nach „jedem“ Update alles zu prüfen.
3. Die Historian Datenpunktkonfiguration regelmäßig anzupassen / zu konfigurieren.
4. Von zeit zu Zeit ein -recalc und -compact machen

Vielleicht hilft das mal einem …. Danke und ein schönes Wochenende
2 Standorte mit je RPi3B+ RaspberryMatic 3.75.7.20240420 / RPI-RF-MOD | Externe USB-Platinen Antenne | 2x LAN_RF_GW | 1x LAN_RS485_GW | ca. 170 Geräte davon 35x IP | ca. 250 Programme |>600 Kanäle | Addons: CUX-Daemon, XML-API, hm_pdetect, E-Mail, CCU-Historian

Antworten

Zurück zu „CCU-Historian“