Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Backitup: Restore einer SQL-Datenreihe

NEWS

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    11
    1
    265

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.8k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    11
    1
    773

Backitup: Restore einer SQL-Datenreihe

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
backitup restore
5 Beiträge 3 Kommentatoren 592 Aufrufe 5 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • J Offline
    J Offline
    joefarm
    schrieb am zuletzt editiert von
    #1

    Hallo, ich hab zu meinem Problem nichts gefunden: Ich hab mir eine Datenreihe in meiner SQL-Datenbank gelöscht (mit einem javascript Script, das eigentlich nur fehlerhafte Daten löschen sollte). Jetzt würde ich die Datenreihe gerne wieder aus einem der Backups holen. Was für ein Format hat denn die .tar.gz Datei und wie kann man daraus einzelne Werte auslesen bzw. exportieren?
    Ist insofern eigenartig, weil das file so aussieht:
    tar tvf mysql_2019_11_02-03_10_08_backupiobroker.tar
    -rw-r--r-- 1010/1017 4430254493 2019-11-02 03:16 .
    D.h. kein Dateiname?

    RöstkartoffelR 1 Antwort Letzte Antwort
    0
    • J Offline
      J Offline
      joefarm
      schrieb am zuletzt editiert von
      #2

      Ok ich hab die Lösung selbst gefunden. Das ".tar"-file ist kein tar file, sondern einfach ein mit sqldump erzeugtes text-file. Die fehlende Datenreihe habe ich mir dann raus-editiert und per mysql wieder in die Datenbank geschrieben. Hat sich also erledigt.
      Nur: das .tar ist echt verwirrend. Meine "echte" Linux-Zeit ist zwar schon 25 Jahre her, aber mit tar hat man zu meiner Zeit ganze Directories verpackt und nicht ein einzelnes Text-file damit bezeichnet. Hab ich da was verpasst? Warum heißt das backup nicht sowas wie backup.sql.gz?

      smartboartS 1 Antwort Letzte Antwort
      0
      • J joefarm

        Hallo, ich hab zu meinem Problem nichts gefunden: Ich hab mir eine Datenreihe in meiner SQL-Datenbank gelöscht (mit einem javascript Script, das eigentlich nur fehlerhafte Daten löschen sollte). Jetzt würde ich die Datenreihe gerne wieder aus einem der Backups holen. Was für ein Format hat denn die .tar.gz Datei und wie kann man daraus einzelne Werte auslesen bzw. exportieren?
        Ist insofern eigenartig, weil das file so aussieht:
        tar tvf mysql_2019_11_02-03_10_08_backupiobroker.tar
        -rw-r--r-- 1010/1017 4430254493 2019-11-02 03:16 .
        D.h. kein Dateiname?

        RöstkartoffelR Offline
        RöstkartoffelR Offline
        Röstkartoffel
        schrieb am zuletzt editiert von
        #3

        @joefarm sagte in Backitup: Restore einer SQL-Datenreihe:

        Hallo, ich hab zu meinem Problem nichts gefunden: Ich hab mir eine Datenreihe in meiner SQL-Datenbank gelöscht (mit einem javascript Script, das eigentlich nur fehlerhafte Daten löschen sollte).
        ....

        Kannst du mir bitte verraten, um welches Skript es sich gehandelt hat? Kam das auch hier aus dem Forum?
        Ich frage deshalb, weil ich auch mit einem Skript verwaiste Daten aus der SQL-Datenbank löschen wollte, mich aber bisher nicht traute.

        NUC7i3BNH mit Proxmox und ioBroker (VM Debian Buster), Raspi3 (Slave Smartmeter für eHZ easymeter), Hardware CCU2, SMA SB5000TL-21

        J 1 Antwort Letzte Antwort
        0
        • RöstkartoffelR Röstkartoffel

          @joefarm sagte in Backitup: Restore einer SQL-Datenreihe:

          Hallo, ich hab zu meinem Problem nichts gefunden: Ich hab mir eine Datenreihe in meiner SQL-Datenbank gelöscht (mit einem javascript Script, das eigentlich nur fehlerhafte Daten löschen sollte).
          ....

          Kannst du mir bitte verraten, um welches Skript es sich gehandelt hat? Kam das auch hier aus dem Forum?
          Ich frage deshalb, weil ich auch mit einem Skript verwaiste Daten aus der SQL-Datenbank löschen wollte, mich aber bisher nicht traute.

          J Offline
          J Offline
          joefarm
          schrieb am zuletzt editiert von
          #4

          @Röstkartoffel said in Backitup: Restore einer SQL-Datenreihe:

          @joefarm sagte in Backitup: Restore einer SQL-Datenreihe:

          Hallo, ich hab zu meinem Problem nichts gefunden: Ich hab mir eine Datenreihe in meiner SQL-Datenbank gelöscht (mit einem javascript Script, das eigentlich nur fehlerhafte Daten löschen sollte).
          ....

          Kannst du mir bitte verraten, um welches Skript es sich gehandelt hat? Kam das auch hier aus dem Forum?
          Ich frage deshalb, weil ich auch mit einem Skript verwaiste Daten aus der SQL-Datenbank löschen wollte, mich aber bisher nicht traute.

          Das ist sicher eine gute Idee, wenn man mit solchen Skripten vorsichtig ist 😐 Genau weil ich eben nicht vorsichtig war hatte ich mir eine Reihe gelöscht.

          Und mein Skript enthält auch nichts, was erst mal einen Dry-run machen würde. Aber vom Grundprinzip sieht das so aus:

          var sqlid = 0;
          
          var series = [
              'statistics.0.save.sumDelta.modbus.0.holdingRegisters.320_Totale_Erzeugung.month',
              'statistics.0.save.sumDelta.modbus.0.holdingRegisters.118_Totalhomeconsumption.day',
              'statistics.0.save.sumDelta.modbus.1.holdingRegisters.40107_M_Exported.day',
              'statistics.0.save.sumDelta.modbus.0.holdingRegisters.320_Totale_Erzeugung.day', 
              'statistics.0.save.sumDelta.modbus.0.holdingRegisters.114_TotalhomeconsumptionPV.month',
              'statistics.0.save.sumDelta.modbus.0.holdingRegisters.114_TotalhomeconsumptionPV.day',
              'statistics.0.save.sumDelta.modbus.0.holdingRegisters.118_Totalhomeconsumption.month',
              'statistics.0.save.sumDelta.modbus.0.holdingRegisters.112_TotalhomeconsumptionGrid.month',
              'statistics.0.save.sumDelta.modbus.0.holdingRegisters.110_TotalhomeconsumptionBattery.month',
              'statistics.0.save.sumDelta.modbus.1.holdingRegisters.40115_M_Imported.month',
              'statistics.0.save.sumDelta.modbus.1.holdingRegisters.40107_M_Exported.month'
          ];
          
          console.log(series.length);
          series.forEach(clean_series);
          
          function clean_series(item, index) {
              //first get the id
              sendTo('sql.0', 'query', 
                      "SELECT id FROM iobroker.datapoints t where t.name = '" + item + "'", 
                      function (result) {
                  if (result.error) {
                      console.error(result.error);
                  } else {
                      //console.log(JSON.stringify(result.result));
                      sqlid = result.result[0].id;
                      console.log(item + ' ' + sqlid);
                      var query = 'DELETE FROM iobroker.ts_number \
                                  WHERE id = ' + sqlid + ' AND ts % 100000 != 99000'; //delete all entries with ts not ending in 99000
                      console.log (query);
                      sendTo('sql.0', 'query', query, function (result) {
                          //console.log(JSON.stringify(result.result));
                      });
                      };
              });
          };
          

          Das Skript ist in meinem Fall dazu da, aus den Statistik-Werten (in meinem Fall die Tages-/usw.-Werte meiner PV-Anlage) alle Werte zu entfernen, die nicht um 23:59 Uhr erzeugt wurden. Meistens sind es einfach doppelte Werte, aber die sehen in den Graphiken nicht gut aus.
          Also von der Idee her einfach, aber in der Umsetzung nicht ganz ungefährlich.

          1 Antwort Letzte Antwort
          0
          • J joefarm

            Ok ich hab die Lösung selbst gefunden. Das ".tar"-file ist kein tar file, sondern einfach ein mit sqldump erzeugtes text-file. Die fehlende Datenreihe habe ich mir dann raus-editiert und per mysql wieder in die Datenbank geschrieben. Hat sich also erledigt.
            Nur: das .tar ist echt verwirrend. Meine "echte" Linux-Zeit ist zwar schon 25 Jahre her, aber mit tar hat man zu meiner Zeit ganze Directories verpackt und nicht ein einzelnes Text-file damit bezeichnet. Hab ich da was verpasst? Warum heißt das backup nicht sowas wie backup.sql.gz?

            smartboartS Offline
            smartboartS Offline
            smartboart
            schrieb am zuletzt editiert von
            #5

            @joefarm sagte in Backitup: Restore einer SQL-Datenreihe:

            Ok ich hab die Lösung selbst gefunden. Das ".tar"-file ist kein tar file, sondern einfach ein mit sqldump erzeugtes text-file. Die fehlende Datenreihe habe ich mir dann raus-editiert und per mysql wieder in die Datenbank geschrieben. Hat sich also erledigt.
            Nur: das .tar ist echt verwirrend. Meine "echte" Linux-Zeit ist zwar schon 25 Jahre her, aber mit tar hat man zu meiner Zeit ganze Directories verpackt und nicht ein einzelnes Text-file damit bezeichnet. Hab ich da was verpasst? Warum heißt das backup nicht sowas wie backup.sql.gz?

            Hi, wollte heute auch das Backup wieder einspielen, gibt es hier einen Königsweg die Daten wieder zu importieren? Ca. 670MB groß...

            1 Antwort Letzte Antwort
            0

            Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

            Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

            Mit deinem Input könnte dieser Beitrag noch besser werden 💗

            Registrieren Anmelden
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate
            FAQ Cloud / IOT
            HowTo: Node.js-Update
            HowTo: Backup/Restore
            Downloads
            BLOG

            547

            Online

            32.9k

            Benutzer

            83.0k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Anmelden

            • Du hast noch kein Konto? Registrieren

            • Anmelden oder registrieren, um zu suchen
            • Erster Beitrag
              Letzter Beitrag
            0
            • Home
            • Aktuell
            • Tags
            • Ungelesen 0
            • Kategorien
            • Unreplied
            • Beliebt
            • GitHub
            • Docu
            • Hilfe