[configDB] neuer Befehl 'configdb dump' verfügbar

Begonnen von betateilchen, 22 Mai 2016, 18:50:33

Vorheriges Thema - Nächstes Thema

Hauswart

Danke!

DBRep hat auch noch eine schöne Option mit maximaler Anzahl von Backups :)  aber beides nur wenn du Zeit und Lust hast.
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

betateilchen

Zitat von: Hauswart am 01 Dezember 2017, 11:40:33
Gibt es denn die Möglichkeit den Dump an einem anderen Ort zu sichern?

Ab dem morgigen Update.


configdb attr dumpPath /tmp


und schon wandern die dumps nach /tmp/ anstatt nach ./log/ (Das Verzeichnis ist natürlich frei wählbar, /tmp war nur ein Beispiel)




Zitat von: Hauswart am 02 Dezember 2017, 13:53:04
Option mit maximaler Anzahl von Backups

Was meinst Du damit?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Hauswart

Super danke. Ich meinte folgendes:
dumpFilesKeep - Es wird die angegeben Anzahl Dumpfiles im Dumpdir gelassen (default: 3). Sind mehr (ältere) Dumpfiles vorhanden, werden diese gelöscht nachdem ein neuer Dump erfolgreich erstellt wurde. Das globale Attribut "archivesort" wird berücksichtigt.


Gesendet von iPhone mit Tapatalk
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

betateilchen

Zitat von: Hauswart am 03 Dezember 2017, 16:03:39
Sind mehr (ältere) Dumpfiles vorhanden, werden diese gelöscht

Das lässt sich out-of-the-box per logrotate auf Betriebssystemebene einrichten.
Deshalb will, muss und werde ich das nicht nachbauen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

onkel-tobi

Hi zusammen,

wie sieht es denn mit der Möglichkeit aus, in einen anderen Pfad zu dumpen? Und evtl auch ein überschreiben nach einer bestimmten Anzahl von Tagen oder ähnliches?

@Hauswart: Hast du das sonst in deinem Skript so angewendet und könntest dieses bereitstellen?

Danke & Gruß,
Tobi

CoolTux

Zitat von: onkel-tobi am 12 Oktober 2019, 11:13:47
Hi zusammen,

wie sieht es denn mit der Möglichkeit aus, in einen anderen Pfad zu dumpen? Und evtl auch ein überschreiben nach einer bestimmten Anzahl von Tagen oder ähnliches?

@Hauswart: Hast du das sonst in deinem Skript so angewendet und könntest dieses bereitstellen?

Danke & Gruß,
Tobi
Zitat von: betateilchen am 02 Dezember 2017, 20:51:21
Ab dem morgigen Update.


configdb attr dumpPath /tmp


und schon wandern die dumps nach /tmp/ anstatt nach ./log/ (Das Verzeichnis ist natürlich frei wählbar, /tmp war nur ein Beispiel)

Um alte Dumps weg zu sichern und später zu löschen nimmt man logrotate
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

onkel-tobi

Hm,

ich scheine das mobil irgendwie überlesen zu haben, auch das mit dem logrotate...

Sorry dafür.

Danke & Gruß,
Tobi



Gesendet von iPhone mit Tapatalk

TWART016

Ich mache ein dump über configdb dump unzipped.

Wenn ich mir die Datei nun ansehe, ist sie quasi leer:

-- MySQL dump 10.13  Distrib 8.0.20, for Linux (x86_64)
--
-- Host: 192.168.178.15    Database: fhem
-- ------------------------------------------------------
-- Server version 5.5.5-10.4.12-MariaDB-1:10.4.12+maria~bionic

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `fhemversions`
--

DROP TABLE IF EXISTS `fhemversions`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `fhemversions` (
  `VERSION` int(11) DEFAULT NULL,
  `VERSIONUUID` char(50) COLLATE utf8_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `fhemversions`
--

LOCK TABLES `fhemversions` WRITE;
/*!40000 ALTER TABLE `fhemversions` DISABLE KEYS */;
INSERT INTO `fhemversions` VALUES (9,'c16989116e4470e1a3b8c13d5420ac04'),(8,'5eb3ffb63617b22a142358c4475aedb8'),(7,'b3d540b7ae31b27b81c0cb1492f5eea9'),(6,'dada12d1890aafa778d0e620164fe6ee'),(5,'a82eb2e20b5d5beda95404eb01926545'),(4,'81b861b5c1a2b2f340bdc8dab5efed58'),(3,'e2844e480caf7c4f43a8910e6ad23519'),(2,'a42740a8b0ef0b1f0915ed4b620724ea'),(1,'788e47f53e3de55013c9a9358d520a27'),(0,'677fdaffde49befb35c68b91c33d7a23');
/*!40000 ALTER TABLE `fhemversions` ENABLE KEYS */;
UNLOCK TABLES;


Die DB hat 6 Tabellen

betateilchen

Zitat von: TWART016 am 28 Juni 2020, 01:14:38
Die DB hat 6 Tabellen

Keine Ahnung was Du da zusammenfrickelst, die configDB benutzt jedenfalls nur 4 Tabellen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

TWART016

#54
Zitat von: betateilchen am 28 Juni 2020, 11:17:01
Keine Ahnung was Du da zusammenfrickelst, die configDB benutzt jedenfalls nur 4 Tabellen.
Da sind noch 2 Tabellen von DBLog dabei. Ob die nun im dump enthalten sind ist mir erstmal egal.

Sollten nicht die 4 Tabellen von configDB enthalten sein?

Edit: Diese Tabellen habe ich:
mysql> show tables;
+-----------------+
| Tables_in_fhem  |
+-----------------+
| current         |
| fhemb64filesave |
| fhemconfig      |
| fhemstate       |
| fhemversions    |
| history         |
+-----------------+
6 rows in set (0.01 sec)


Hier ein paar Auszüge aus fhemconfig:
mysql> select * from fhemconfig;
+----------+---------------------+------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------+
| COMMAND  | DEVICE              | P1                                       | P2                                                                                                                                                                                                                                      | VERSION | VERSIONUUID                      |
+----------+---------------------+------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------+
| #created | by                  | cfgDB_Init                               | NULL                                                                                                                                                                                                                                    |       0 | c16989116e4470e1a3b8c13d5420ac04 |
| attr     | global              | logdir                                   | ./log                                                                                                                                                                                                                                   |       1 | c16989116e4470e1a3b8c13d5420ac04 |
| attr     | global              | logfile                                  | %L/fhem-%Y-%m-%d.log                                                                                                                                                                                                                    |       2 | c16989116e4470e1a3b8c13d5420ac04 |
| attr     | global              | modpath                                  | .                                                                                                                                                                                                                                       |       3 | c16989116e4470e1a3b8c13d5420ac04 |
| attr     | global              | userattr                                 | devStateIcon devStateStyle icon sortby webCmd                                                                                                                                                                                           |       4 | c16989116e4470e1a3b8c13d5420ac04 |
| attr     | global              | verbose                                  | 3                                                                                                                                                                                                                                       |       5 | c16989116e4470e1a3b8c13d5420ac04 |
| define   | telnetPort          | telnet                                   | 7072 global                                                                                                                                                                                                                             |       6 | c16989116e4470e1a3b8c13d5420ac04 |
| define   | web                 | FHEMWEB                                  | 8083 global                                                                                                                                                                                                                             |       7 | c16989116e4470e1a3b8c13d5420ac04 |
| attr     | web                 | allowfrom                                | .*                                                                                                                                                                                                                                      |       8 | c16989116e4470e1a3b8c13d5420ac04 |
| define   | Logfile             | FileLog                                  | %L/fhem-%Y-%m-%d.log FakeLog                                                                                                                                                                                                            |       9 | c16989116e4470e1a3b8c13d5420ac04 |
| attr     | global              | userattr                                 | cmdIcon devStateIcon devStateIcon:textField-long devStateStyle icon sortby webCmd webCmdLabel:textField-long widgetOverride                                                                                                             |       0 | 5eb3ffb63617b22a142358c4475aedb8 |
| attr     | global              | logdir                                   | ./log                                                                                                                                                                                                                                   |       1 | 5eb3ffb63617b22a142358c4475aedb8 |
| attr     | global              | logfile                                  | %L/fhem-%Y-%m-%d.log                                                                                                                                                                                                                    |       2 | 5eb3ffb63617b22a142358c4475aedb8 |

betateilchen

Das heißt, Du hast sowohl die Tabellen von DbLog als auch die Tabellen von configDB in einer einzigen Datenbank?

Das ist ein Vorgehen, von dem regelmäßig abgeraten wird. Warum? Erlebst Du gerade...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

TWART016

Zitat von: betateilchen am 28 Juni 2020, 16:33:42
Das heißt, Du hast sowohl die Tabellen von DbLog als auch die Tabellen von configDB in einer einzigen Datenbank?

Das ist ein Vorgehen, von dem regelmäßig abgeraten wird. Warum? Erlebst Du gerade...

Hatte ich ja. Habe jetzt eine neue Datenbank nur für die config angelegt. Es sind jetzt nur die 4 Tabellen, trotzdem ist der dump quasi leer:
-- MySQL dump 10.13  Distrib 8.0.20, for Linux (x86_64)
--
-- Host: 192.168.178.15    Database: fhem-config
-- ------------------------------------------------------
-- Server version 5.5.5-10.4.12-MariaDB-1:10.4.12+maria~bionic

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `fhemversions`
--

DROP TABLE IF EXISTS `fhemversions`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `fhemversions` (
  `VERSION` int(11) DEFAULT NULL,
  `VERSIONUUID` char(50) COLLATE utf8_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `fhemversions`
--

LOCK TABLES `fhemversions` WRITE;
/*!40000 ALTER TABLE `fhemversions` DISABLE KEYS */;
INSERT INTO `fhemversions` VALUES (2,'0387423d62b9581dc868891d99cf5a56'),(1,'334ff02cc718bd67740d9eef6c1ccbff'),(0,'8d76880488f552aaf801b0b1458a8d04');
/*!40000 ALTER TABLE `fhemversions` ENABLE KEYS */;
UNLOCK TABLES;


Muss noch etwas beachtet werden, wenn der DB Host auf einem anderen Server läuft?

TWART016

Ich konnte es nun herausfinden. Der Server hat mit diesem Befehl das gleiche Ergebnis erhalten:
mysqldump -h 192.168.178.15 -P 33061 --user=fhemuser --password=fhempassword -Q fhem-config > /home/tim/dump.sql

Als Output ist das erschienen
mysqldump: [Warning] Using a password on the command line interface can be insecure.
mysqldump: Couldn't execute 'SELECT COLUMN_NAME,                       JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')                FROM information_schema.COLUMN_STATISTICS                WHERE SCHEMA_NAME = 'fhem-config' AND TABLE_NAME = 'fhemb64filesave';': Unknown table 'COLUMN_STATISTICS' in information_schema (1109)


Mit diesem Zusatz --column-statistics=0 sind nun die Daten in dem dump
mysqldump -h 192.168.178.15 -P 33061 --user=fhemuser --password=fhempassword --column-statistics=0 -Q fhem-config > /home/tim/dump.sql

Output ist nun nur noch das Warning.

Gefunden habe ich es hier:
https://serverfault.com/questions/912162/mysqldump-throws-unknown-table-column-statistics-in-information-schema-1109

Gibt es die Möglichkeit es in das Modul mit einzubauen?

amenomade

#58
Du kannst das auch in deiner my.cnf Datei standardmässig deaktivieren:
[mysqldump]
column-statistics=0

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

TWART016

Zitat von: amenomade am 29 Juni 2020, 02:06:32
Du kannst das auch in deiner my.cnf Datei standardmässig deaktivieren:
[mysqldump]
column-statistics=0


Du meinst das ist die /etc/mysql/my.cnf auf dem DB Server eintragen?
Das habe ich gemacht, erhalte jedoch das gleiche Ergebnis.