NEWS
Influx Datenbank sichern und wiederherstellen?
-
Hi Leute,
hab mir mal das grafische Auswertungstool Grafana mit Influx als DB installiert (Tutorial Link)
Ist echt nen super sache und gefällt mir wirklich gut. Seit 3 Tagen schreibt der mit und man bekommt optisch echt ansprechende Auswertungen.Jetzt würde ich gern die Influx Datenbank auch mal sichern und wissen, wie man die im Falle einer ioBroker Neuinstallation wiederherstellen kann. Hat einer nen Tipp? Danke!
-
@smarti2015 Dafür gibt es influxd backup/restore
Habe ich selbst schon beim Umzug auf ein anderes System benutzt: Doku -
Leider Offtopic.
Aber hast du abgesehen von Grafana geschafft dir die Daten mal anzeigen zu lassen?
Also über irgendein Administrationstool wie z.B. Time Series Admin?Ich kann ohne Probleme mit meinen Usern Daten in die DB schreiben und über Simple API abrufen. Aber über tools wie Time Series Admin mit dem selben Usern komm ich nicht an die Daten
So beispielsweise Abfragen wie : SELECT * FROM iobroker
-
@SayAndre Jepp, geht:
influx
im Terminal mit der influxDB
show databases
use Datenbankname
show series
und dann ganz rudimentär ohne weitere Selektion
select * from serienname
-
@SBorg sagte in Influx Datenbank sichern und wiederherstellen?:
@SayAndre Jepp, geht:
influx
im Terminal mit der influxDB
show databases
use Datenbankname
show series
und dann ganz rudimentär ohne weitere Selektion
select * from serienname
Das Show Series hat mir scheinbar gefehlt. Werde ich heute Abend mal zuhause ausprobieren. Danke!
-
@SBorg Ich häng mich hier mal mit dran da ich ebenfalls das Problem mit dem Backup habe. Allerdings bekommt ich keine Backup hin. sondern bekomme nur Fehlermeldungen zurück.
Ich hab InfluxDB direkt über Docker installiert. Einrichtung usw inkl. Grafana und auch Chronograph funktioniert soweit. Allerdings klappt das backup nicht. Nach viel Hin und Her hab ich es wenigstens geschafft an die Config Datei zu kommen. dort ist auch
bind-address = "127.0.0.0:8088"
eigetragen so wie in der von dir verlinken Dokumentation.
Allerdings wenn ich im Terminal dann versuche ein Backup zu erstellen kommt nur
root@influxdb1:/# influxd 8888888 .d888 888 8888888b. 888888b. 888 d88P" 888 888 "Y88b 888 "88b 888 888 888 888 888 888 .88P 888 88888b. 888888 888 888 888 888 888 888 888 8888888K. 888 888 "88b 888 888 888 888 Y8bd8P' 888 888 888 "Y88b 888 888 888 888 888 888 888 X88K 888 888 888 888 888 888 888 888 888 Y88b 888 .d8""8b. 888 .d88P 888 d88P 8888888 888 888 888 888 "Y88888 888 888 8888888P" 8888888P" 2020-05-10T16:23:57.138312Z info InfluxDB starting {"log_id": "0MgrFPpW000", "version": "1.8.0", "branch": "1.8", "commit": "781490de48220d7695a05c29e5a36f550a4568f5"} 2020-05-10T16:23:57.138377Z info Go runtime {"log_id": "0MgrFPpW000", "version": "go1.13.8", "maxprocs": 4} run: open server: listen: listen tcp 127.0.0.0:8088: bind: address already in use root@influxdb1:/# influx Connected to http://localhost:8086 version 1.8.0 InfluxDB shell version: 1.8.0 > influxd backup -portable /etc ERR: error parsing query: found influxd, expected SELECT, DELETE, SHOW, CREATE, DROP, EXPLAIN, GRANT, REVOKE, ALTER, SET, KILL at line 1, char 1 Warning: It is possible this error is due to not setting a database. Please set a database with the command "use <database>". > USE iobroker Using database iobroker > influxd backup -portable /etc ERR: error parsing query: found influxd, expected SELECT, DELETE, SHOW, CREATE, DROP, EXPLAIN, GRANT, REVOKE, ALTER, SET, KILL at line 1, char 1
Vielleicht kann mir ja hier jemand helfen. ich würde nämlich gerne
https://github.com/MichielVanwelsenaere/InfluxDB-backup
fürs das Backup einsetzten damit es Täglich mit der Datensicherung mitlaufen kann. Aber auch das funktioniert nicht. Aber Ich denke es würde funktionieren wenn das n normale Backup über erstmal klappen würde.Vielleicht kann mir ja hier jemand weiterhelfen oder hat Nene Tipp für mich.
-
Also ich mache mein Backup von der normalen Linux Kommandozeile aus und nicht unter der Influxdb-Konsole...
Das schaut dann so aus bei meiner Datenbank die iobroker heißt:
root@DietPi:~# sudo influxd backup -portable -database iobroker -host 127.0.0.1:8088 /tmp/iobroker_influx_backup
2020/05/10 20:28:39 backing up metastore to /tmp/iobroker_influx_backup/meta.00
2020/05/10 20:28:39 backing up db=iobroker
2020/05/10 20:28:39 backing up db=iobroker rp=autogen shard=49 to /tmp/iobroker_influx_backup/iobroker.autogen.00049.00 since 0001-01-01T00:00:00Z
2020/05/10 20:28:40 backing up db=iobroker rp=autogen shard=50 to /tmp/iobroker_influx_backup/iobroker.autogen.00050.00 since 0001-01-01T00:00:00Z
2020/05/10 20:28:40 backing up db=iobroker rp=autogen shard=51 to /tmp/iobroker_influx_backup/iobroker.autogen.00051.00 since 0001-01-01T00:00:00Z
2020/05/10 20:28:40 backing up db=iobroker rp=autogen shard=52 to /tmp/iobroker_influx_backup/iobroker.autogen.00052.00 since 0001-01-01T00:00:00Z
2020/05/10 20:28:41 backing up db=iobroker rp=autogen shard=53 to /tmp/iobroker_influx_backup/iobroker.autogen.00053.00 since 0001-01-01T00:00:00Z
2020/05/10 20:28:41 backing up db=iobroker rp=autogen shard=54 to /tmp/iobroker_influx_backup/iobroker.autogen.00054.00 since 0001-01-01T00:00:00Z
2020/05/10 20:28:42 backup complete:
2020/05/10 20:28:42 /tmp/iobroker_influx_backup/20200510T182839Z.meta
2020/05/10 20:28:42 /tmp/iobroker_influx_backup/20200510T182839Z.s49.tar.gz
2020/05/10 20:28:42 /tmp/iobroker_influx_backup/20200510T182839Z.s50.tar.gz
2020/05/10 20:28:42 /tmp/iobroker_influx_backup/20200510T182839Z.s51.tar.gz
2020/05/10 20:28:42 /tmp/iobroker_influx_backup/20200510T182839Z.s52.tar.gz
2020/05/10 20:28:42 /tmp/iobroker_influx_backup/20200510T182839Z.s53.tar.gz
2020/05/10 20:28:42 /tmp/iobroker_influx_backup/20200510T182839Z.s54.tar.gz
2020/05/10 20:28:42 /tmp/iobroker_influx_backup/20200510T182839Z.manifest
root@DietPi:~#Vorher muss aber die Influxdb.config bearbeitet werden...:
Hatte mich damals hiernach gerichtet und entsprechend meinen Anforderungen umgesetzt...:
https://solaranzeige.de/phpBB3/viewtopic.php?t=310
Einen Restore hatte ich auch schon gemacht - ging problemlos.
-
@Sören Dein Problem ist eigentlich nur, dass du zwei Dinge vermischst. "influx" ist direkt das Datenbankmanagement, also Datensätze bearbeiten, anlegen, löschen...
"influxd" ist dann die Konsole, um bspw. ein Backup oder Restore auszuführen.
Du hast dich per influx in das Datenbankmanagement eingeloggt und dann Konsolenbefehle von influxd abgesetzt.Ich gehe nach der offiziellen Doku vor und nutze die "legacy"-Methode (ziemlich am Ende): https://docs.influxdata.com/influxdb/v1.8/administration/backup_and_restore/
Backup (direkt in der Shell):
influxd backup -database <mydatabase> <path-to-backup>
Restore (direkt in der Shell, vorher Influxdb stoppen):
influxd restore -metadir /var/lib/influxdb/meta <path-to-backup> influxd restore -database <mydatabase> -datadir /var/lib/influxdb/data <path-to-backup> sudo chown -R influxdb:influxdb /var/lib/influxdb systemctl start influxdb
Gerade eben wieder nach Umzug von Alt-Rechner auf Neu-Rechner erfolgreich durchgeführt
-
@SBorg Hi natürlich du hast recht da hab ich nicht aufgepasst.
Aber manchmal sieht man den Wald vor lauter Bäumen einfach nicht oder macht einen Fehler und Verrennt sich dann darin total. Manchmal hilft es einfach eine nacht drüber zu schlafen dann läuft es wie von alleine Ich danke euch trotzdem für eure Hilfe
-
@SayAndre
Ich benutze InfluxDBStudio. Vielleicht hilft dir das weiter -
Hallo zusammen,
ich hab einige Adapter im neuen Jahr aktualisiert, unter anderem auch InfluxDB.
Heute ist mir aufgefallen, dass im Zeitraum zwischen dem 12.12.2022 und dem 19.12.2022 alle Datenpunkte weg sind:Ich sichere über Backitup die InfluxDB täglich und hab deshalb diverse Backups auf die ich zurück greifen kann.
Nun die entscheidende Frage: Kann ich NUR die Datenpunkte für den Zeitraum (siehe oben) wieder stellen, ohne die anderen Daten die bis heute in der Datenbank gespeichert wurden zu überschreiben?
Oder gehen mir dann alle Datenpunkte verloren die seit dem Backup in die Datenbank geschrieben wurden? -
@naturfreund Ich habe das so gemacht:
sudo influxd restore -portable -db iobroker -newdb iobroker_bak /opt/iobroker/backups/
Im Verzeichnis /opt/iobroker/backups/ liegen das entpackte influxdb-Backup.
Dann im influxql:
use iobroker_bakUnd dann mit dem SELECT INTO von der Bak-Database in die Original-Database kopieren:
SELECT * INTO iobroker.autogen.EnergyProductionTotalPreviousDay FROM EnergyProductionTotalPreviousDayUnd bei diesem SQL-Statement kannst Du natürlich Deine Datums-Einschränkung mitgeben:
WHERE time >= '2023-01-01T00:00:00Z' AND time <= '2023-08-18T00:54:00Z'
-
@uweram Ich hab das gleiche Problem und es so gemacht wie von dir beschrieben. Ein von BackItUp erstelltes Backup entpackt und anschiessend als iobroker_bak restored.
Dann die Berechtigungen für die iobroker_bak angepasst und schliesslich versucht die Daten zu kopieren.>auth >use iobroker_bak > SELECT * INTO iobroker.autogen.EnergyProductionTotalPreviousDay FROM EnergyProductionTotalPreviousDay name: result time written ---- ------- 0 0
Es werden einfach keine Daten kopiert. In Grafana die iobroker_bak als Datenquelle hinzugefügt und geprüft. Es sind genau die Daten vorhanden, die ich brauche.
Mache ich noch irgendwas falsch, oder übersehe ich etwas?
Noch ein kleiner Hinweis, ich beschäftige mich erst seit letzten Samstag mit iobroker und co. -
@jojo58 said in Influx Datenbank sichern und wiederherstellen?:
SELECT * INTO iobroker.autogen.EnergyProductionTotalPreviousDay FROM EnergyProductionTotalPreviousDay
Hast Du wirklich:
SELECT * INTO iobroker.autogen.EnergyProductionTotalPreviousDay FROM EnergyProductionTotalPreviousDay
geschrieben?Denn den State (Datenpunkt, measurement) "EnergyProductionTotalPreviousDay" habe natürlich nur ich - den musst Du gegen Deinen gewünschten ändern.
Einfach einmal "Show measurements" aufrufen, um alle vorhandenen anzuzeigen.
-
@uweram Jau, habe ich, sorry, wie gesagt, Anfänger. Ich hab keinen Plan von Datenbanken, hab mir sowas aber fast gedacht. Wenn ich "show measurements" aufrufe, bekomme ich eine ziemlich lange Liste von Datenpunkten. Müssen die etwa alle einzeln importiert werden, oder gibts eine Möglichkeit alle Daten zu nehmen?
-
@jojo58 Soweit ich weiß muss man sie einzeln zurückspielen.
-
@uweram Hab die gut 200 Datenpunkte als Textdatei gespeichert, dann in Excel kopiert, dort die Befehlszeile inklusive Zeitbgrenzung zusammengebaut und das Ergebnis über PuTTy eingfügt. Es liefen alle Zeilen sauber durch. Das Ganze hat mit Zusammenbauen etwa 15 Minuten gedauert.
Danke dir...
-
Perfekt - freut mich, dass ich helfen konnte.