Mariadb zu groß - Aufräumen ?!

Hallo,
meine mariadb ist nach ein paar Monaten schon 30gig groß
Ist wahrscheinlich jede menge Müll drin.
Wie kann man sie aufräumen bzw. vermeiden das zu viele Werte gespeichert werden.
Backup und Neustart dauern deshalb sehr lange.

Schau dir das mal in Ruhe an. Vor allem in Bezug auf purge_keep_days und exclude

Wie lange speicherst Du Deine Daten denn (30 Tage / 12 Monate / x Jahre)?

Dachte an ein Jahr …
aber brauche natürlcih nicht 1000 entities sondern eher 50

ist ja ein mega aufwand den filter im Recorder zu setzten. Ich weiss ja nicht mal welche entitäten er speichert. ( Denke da gerade an camera entities und update dinger …)

@sirector wenn ich die keep days z.b. auf 5 setzte kann ich keinerlei langzeitanalysen machen.
gerade im Energiebereich wäre das wichtig für mich.

Im Energie Dashboard werden die Daten ewig gespeichert.
Für alles andere würde ich eher die InfluxDB und Grafana nehmen…

@fazer1000 InfluxDB und Grafana und grafana denke ich machen nur die Auswertung. ( muss ich mich noch mit beschäftigen) Das die DB unkontrolliert wächst hängt doch damit nicht zusammen, oder ?

jetzt hab ich den gefunden:

sollte ich mal anschauen …

@simon42 danke !

1 „Gefällt mir“

Mit der InfluxDB und Grafana geht die Auswertung besser.
Mann kann auch die MariaDB und Grafana nehmen.
Aber für langzeit Datenspeicherung ist die InfluxDB besser.
Ich weiß ja nicht wie du HA installiert hast.
Am besten finde ich, HA als VM auf Proxmox und dann die MariaDB in einem LXC und die InfluxDB und Grafana in einem anderen LXC.

zur zeit noch Rasp4. Mein nuc ist in der Post;)
Dachte eigentlcih an direkte instalation. Wobei ich testweise auf einem alten Laptop Proxmox mit einer VM mit HA laufen habe.
Was bitte ist LCX ? bin froh das ich gerade mal ne VM mit HA geschafft habe.
Ist es nicht sinnvoller HA direkt auf dem Nuc zu istallerien ( siehe Video von Simon)
Noch kann ich flexibel sein.
Wichtig war mir vor dem Umzug die db kleiner zu bekommen.

Proxmox und VM und LXC hat einige Vorteile.
Wenn Du die MatriaDb und die InfluxDB in extra LXC packst, bleiben die Einzelnen Backups schön klein.
Ausserdem kannst du dann auch die Backups von der VM und den LXC´s machen. Sehr einfach das ganze.
Guck mal hier.

@fazer1000
nach 5 h bin ich nicht wirklich viel weiter.
Was ich geschafft habe auf Proxmox:
Installation von HA in VM
MariaDB in einem LXC
InfluxDB in einem LXC
Grafana in einem LXC

Habe alles einträge laut deinem link für mariadb gmacht. und dann auch den Eintrag:

recorder:
  db_url: mysql://myname:mypassword@IPvonMariadb:3306/homeassistant?charset=utf8mb4

eingetragen. Aber da kommt scheinbar nichts an. Bzw, sehe ich durch löschen der home-assistant_v2.db, das diese nach einem reboot wieder angelegt wird, was ich denke heist, das nicht in dei mariadb geschrieben wird.Ein UI oder eine logdtei vermisse ich um fehler zu finden.

zu Influx: Habe Version 2 gewählt. das wars aber an Einstellungen. In der
/etc/influxdb/influxdb.conf soll man nun konfigurieren … nur was in einer leeren Datei ??
Aber ich kann wenigsten ein UI öffnen. Das sieht aber ganz anders aus als die HA Integration und ich habe keine Ahung wie ich da überhaupt die DB anlegen soll ect.

zu Grafana …
instaltion durch … UI geht aber ohne DB ziemlich Sinnfrei. Hoffe du kannst mir helfen

Moin, das ist ja nicht so schön.
Das Problem ist, ich habe dieses Wochenende keine Zeit. Wir sind mit der ganzen Familie auf einen Campingplatz. Leider ohne WLAN.
Das tut mir jetzt leid.
Aber hier sind ja noch einige die in etwa die gleich Konfiguration haben.
Die lassen dich bestimmt nicht hängen. :+1:

Vielleicht eins nach dem anderen:

MariaDB

hast Du bei der Installation den Adminer installiert?
Hast Du den User admin angelegt in der MariaDB?
Wenn ja dann gehe bitte in einen Browser und rufe diesen auf:
http://IT-MariaDB/adminer/
Dann mit dem User admin anmelden.
Sieht es dann bei Dir wie folgt aus?

dann klicke auf “homeassistant” und es sollte so wie folgt aussehen

Dann oben auf den Link Rechte, dann sollte es wie folgt aussehen

dann auf den obersten. Eintrag klicken und dann sollte es wie folgt aussehen

passt das alles bei Dir so?

habe einen anderen user mit admin rechten erstelle. Adiminer hab ich ( noch nicht ) installiert. passiert jetzt. Danke schon mal ! Wie kann ich den nachinstallieren ?
Brauche ich einen user der Admin heist ?

habe jetzt eine neue Installation eine weitere Installation von mariadb gestartet, mit adminer.
Habe aber keine Ahnung wie ich den Benutzer admin anlegen soll. Musste auch sonst nicht einstellen wie bei der Erstinstallation ohne Adiminer

Das mit dem Nachinstallieren vom Adminer kann ich Dir leider nicht sagen. Wenn Du die Installation mit der obigen Hilfe gemacht hast, dann wäre da alles dabei gewesen und ich dachte da wurde auf der User admin mit aufgeführt.
Habe gerade nachgeschaut. Das war in der Installationsbeschreibung enthalten. Ich habe neben dem admin noch einen User “homeassistant” angelegt. Sollte das bei Dir nicht sauber sein, dann kannst du Dir ja einfach eine neue LXC anlegen und nochmals MariaDB installieren.
Die alte LXC kannst Du dann ja löschen.

Hier steht alles was zu machen ist…
Besser findest du es in der Beschreibung der MariaDB Installation


mysql
'Prompt will change to MariaDB [(none)]>

Create a new local admin (Change the username and password to match your preferences)

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
'Give local admin root privileges (Change the username and password to match above)

GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
'Now, we'll give the user admin root privileges and password-based access that can connect from anywhere on your local area network (LAN), which has addresses in the subnet 192.168.100.0/24. This is an improvement because opening a MariaDB server up to the Internet and granting access to all hosts is bad practice.. Change the username, password and subnet to match your preferences:

GRANT ALL ON *.* TO 'admin'@'192.168.100.%' IDENTIFIED BY 'password' WITH GRANT OPTION;
'Flush the privileges to ensure that they are saved and available in the current session:

FLUSH PRIVILEGES;

'command below this, exit the MariaDB shell:
exit

'Log in as the new database user you just created:
mysql -u admin -p

'Create a new database:
CREATE DATABASE homeassistant;

'command below this, exit the MariaDB shell:

exit
'⚠️ Reboot the lxc
'Checking status.

systemctl status mariadb

ich habe dann nur zusätzlich zum admin-User einen homeassistant wie folgt angelegt

'direkt nach den Befehlen CREATE DATABASE homeassistant;
CREATE USER 'homeassistant'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO 'homeassistant'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
GRANT ALL ON *.* TO 'homeassistant'@'192.168.100.%' IDENTIFIED BY 'password' WITH GRANT OPTION;

192.168.100.% muss Deine MariaDB IP sein. Also z.B. 192.168.178.%
und ‘password’ muss du eben durch "dasIstEinPasswort’ ersetzen.

:crayon:by HarryP: Zusammenführung Doppelpost.
*@ryhoruk *
Bitte für Nachträge/Korrekturen die “bearbeiten” Funktion (geht 24h) verwenden. Danke!

bin weiter. habe jetzt erst mal testweise nur einen admin user angelegt im setup. Jetzt schreibt er wohl die DB !!

jetzt ist mir nur nicht klar was ich noch mit den Benutzern machen soll … 2. Bild

wenn das so bei Dir funktioniert, dann würde ich es so lassen.

Wenn sich die Zahlen in Deinem ersten Screenshot ändern, dann funktioniert es. :+1:

Super … ja geht … Ich würde aber noch gerne das admin passwort ändern. Wo kann ich das machen ?

Eine Baustelle fertig …
Wenn du mir bei der nächsten “influxdb” helfen kannst würde ich mich freuen. Viele Dank für Deine Hilfe !

Du musst in der Konsole in die mariaDB rein gehen (mysql ist glaube der Befehl dafür) und dann sollte wohl folgendes helfen

SET PASSWORD [ FOR user_name ] = 
 { 
     PASSWORD('plaintext_password1')
   | OLD_PASSWORD('plaintext_password2')
   | 'encrypted_password'
 };

also

SET PASSWORD FOR admin = 
 { 
     PASSWORD('plaintext_password1')
   | OLD_PASSWORD('plaintext_password2')
   | 'encrypted_password'
 };

eventuell geht auch folgendes

SET PASSWORD FOR 'admin'@'localhost' = PASSWORD('newpassword');

Aber kein Gewähr. Ich habe das noch nie gemacht…

Wenn es geklappt hat, dann einfach wieder melden.

der 1. Befehl geht nicht. Der 2. Theoretisch …
Allerdings nur für Adminer. Homeassistant will das neue Passwort nicht. bzw. die schnittstelle. Habe unterschiedliches probiert auch mit reboot ohne Erfolg.
Ist nicht so schlimm. Wenn ich die finale Version installiere muss ich darauf achten gleich ein vernünftiges zu wählen.
Die mariadb Baustelle ist damit erst mal erledigt für … Danke !

Okay versuchen wir es mit infuxDB.
Hast Du Version 1 oder 2 installiert?
→ bei der 1er kann ich Dir nicht weiter helfen.

Hast Du alles gemacht wie im YouTube-Film von @simon42?
Und dann hoffe ich du hast Dir den infuxDB Token gesichert.

Falls ja, dann rufe in einem Browser mal

IP-der InfluxDB auf mit dem Port
z.B.: 192.168.178.xxx:8086

Dann solltest Du sowas sehen.

Wenn das so ist, dann melde Dich dort einfach mal mit dem User admin an :wink:

dann sollte es wie folgt aussehen

oben links ist dann deine homeAssistant DB zu sehen. Wenn das so ist, dann gehe in Deine configuration.yaml und füge folgende Zeile hinzu

influxdb: !include influxdb.yaml

dann lege eine Datei influxdb.yaml an und dort dann folgenden Code
host, port, token musst Du füllen. Mit include/exclude definierst Du was in die influxDB eingespielt werden soll und was explizit nicht.

#Config für die influxDB
api_version: 2
ssl: false
host: 192.168.178.xxx
port: 8086
token: TokeCode
organization: homeassistant
bucket: homeassistant
tags:
  source: HA
tags_attributes:
  - friendly_name
default_measurement: units
include:
  domains:
    - sensor
    - binary_sensor
    - sun
  entities:
    - input_number.strompreis
    - input_number.strompreiseinspeisung
#exclude:
#  entities:
#    - zone.home
#  domains:
#    - persistent_notification
#    - person
#include:
#  domains:
#    - sensor
#    - binary_sensor
#    - sun
#    - light
#    - cover
#  entities:
#    - weather.home

Wenn Du danach homeAssistant neu gestartet hast sollten Daten in die influxDB fliessen.
Wenn Du Dich dann in der InfluxDB anmeldest und auf “Data Explorer” gehst siehst du möglicherweise folgendes. Links homeassistant zeigt an, dass was in dieser DB steht sobald die 2. Spalte die einen measurement-Filter anzeigt. Hier kannst Du dann z.b. W auswählen und dich langsam durchhungern einfach einen Entität auswählen und “Submission” klicken. Dann wird darüber eine Grafik oder die Rohdaten angezeigt.

Mit dem Button “Script Editor” kannst Du dir den SQL-Code dafür anzeigen lassen und dann raus kopieren und so ein zu eins in grafana rein kopieren. Das erspart viel Tipparbeit. Achtung recht im Query Designer es ist ein Unterschied ob du “mean, median oder last” auswählst.

1 „Gefällt mir“