Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:middleware:datenbank

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:middleware:datenbank [2021/05/06 12:24] – [Datenbank zurückspielen] Konflikte und Abhängigkeiten jausoftware:middleware:datenbank [2023/11/12 09:14] (aktuell) – [Middleware-Datenbank] Speicher pro Datensatz jau
Zeile 11: Zeile 11:
  
 <note important>Das Datenbankschema wird durch das für die middleware verwendete doctrine-framework automatisch generiert!</note> <note important>Das Datenbankschema wird durch das für die middleware verwendete doctrine-framework automatisch generiert!</note>
 +
 +Der Speicherbedarf eines Satzes in den Tabellen data und aggregate beträgt 24Byte.
  
  
 ===== Datenbank administrieren ===== ===== Datenbank administrieren =====
  
-Die einfachste Möglichkeit besteht darin, das ganze über die Webobefläche zu administrieren. Für den Fall des Rasperrpi ist das dann <code> "http://raspberrypi/phpmyadmin/" </code>+Die beste Möglichkeit besteht darin über externen SQL-Client (z.B. [[https://www.heidisql.com/download.php|HeidiSQL]]) zu administrieren. Im Falle des RasperryPi-Images ist der Zugang von außen allerdings gesperrt und muss erst [[howto:raspberry_pi_image#einrichten|aktiviert]] werden.
  
 Als Benutzername/Passwort dann entwender vz/demo für Lese- und Schreibzugriffe, vz-admin/secure für Löschzugriffe oder den lokalen Administratorzugang (root/raspberry) der in ''/etc/mysql/debian.cnf'' steht. Als Benutzername/Passwort dann entwender vz/demo für Lese- und Schreibzugriffe, vz-admin/secure für Löschzugriffe oder den lokalen Administratorzugang (root/raspberry) der in ''/etc/mysql/debian.cnf'' steht.
 +
 +Phphmyadmin wäre eine Möglichkeit, aber mit Einschränkungen. Es hat Schwierigkeiten mit großen Datenbanken und ist auf dem Image nicht vorinstallliert.
  
 ===== Datenbank sichern ===== ===== Datenbank sichern =====
 +
 +==== Mariadb Backup ====
 +
 +Auf vielen Linuxdistributionen wird mysql inzwischen durch MariaDB zur Verfügung gestellt. Diese DB besitzt ein Backup-Tool welches in der Lage ist ein konsistentes Backup zu erzeugen, während die Datenbank beschrieben wird. 
 +
 +Auf Debian und Ubuntu muss dieses Tool nachinstalliert werden:
 +
 +  sudo apt install mariadb-backup
 +
 +Ein vollständiges Backup wird erzeugt mittels
 +
 +  sudo mariabackup --backup --target-dir=<Pfad> --user=root
 +  
 +Das Backup wird unter <Pfad> abgelegt. Für ein Restore muss das Backup "präpariert" und dann zurückgeschrieben werden. Dazu ist notwendig:
 +
 +  sudo mariabackup --prepare --target-dir=<Pfad>
 +  
 +  # Datenbank stoppen (Ubuntu)
 +  sudo systemctl stop mariadb
 +  
 +  # Alle Datenbankdateien löschen (siehe /etc/mysql/my.cnf, "datadir" welcher Pfad)
 +  sudo rm -rf /var/lib/mysql
 +  
 +  # Backup zurückspielen 
 +  sudo mariabackup --copy-back --target-dir=<Pfad> --user=root
 +  
 +  # Besitzer der Dateien einrichten
 +  sudo chown -R mysql:mysql /var/lib/mysql
 +  
 +  # Datenbank starten
 +  sudo systemctl start mariadb 
 +  
 +Mit Hilfe des Tools sind darüber hinaus sowohl inkrementelle als auch Delta-Backups möglich. Weitere Informationen finden sich im [[https://mariadb.com/kb/en/full-backup-and-restore-with-mariabackup/|Referenzmanual von MariaDB (englisch)]]): 
 +
 ==== Komplettbackup mit mysqldump ==== ==== Komplettbackup mit mysqldump ====
 Die Standardanwendung Die Standardanwendung
 <code>mysqldump -uvz -pdemo volkszaehler > mysql_backup.sql</code> <code>mysqldump -uvz -pdemo volkszaehler > mysql_backup.sql</code>
-Als Ziel taugt jedes gemountete Verzeichnis, vorzugsweise auf einem externe Datenträger. +Als Ziel taugt jedes gemountete Verzeichnis, vorzugsweise auf einem externen Datenträger. 
-<note important>Mysqldump verursacht einen sehr hohe Last bei der Datenbankanwendung und kann auf dem Raspberry den vzlogger beeinträchtigen!</note>+<note important>Mysqldump verursacht eine sehr hohe Last bei der Datenbankanwendung und kann auf dem Raspberry den vzlogger beeinträchtigen!</note>
 Eine solche Sicherung ist Klartext und kann recht Umfangreich werden. Speicherplatz spart man indem man die Sicherung direkt komprimiert. Eine solche Sicherung ist Klartext und kann recht Umfangreich werden. Speicherplatz spart man indem man die Sicherung direkt komprimiert.
 <code>mysqldump -uvz -pdemo volkszaehler | bzip2 >mysql_backup.bz2</code> <code>mysqldump -uvz -pdemo volkszaehler | bzip2 >mysql_backup.bz2</code>
Zeile 53: Zeile 91:
 <code>mysql -uvz -pdemo volkszaehler < mysql_backup.sql</code> <code>mysql -uvz -pdemo volkszaehler < mysql_backup.sql</code>
 <note>Das bezieht sich auf ein ungepacktes Backup!</note> <note>Das bezieht sich auf ein ungepacktes Backup!</note>
-Falls ein Komplettbackup mit Störung abgebrochen wird kann das an Abhängigkeiten zu Tabellen liegen die noch nicht aufgebatu wurden. In dem Fall auf die separate Sicherung der betreffenden Tabelle zurückgreifen und zuerst wiederherstellen.+Falls ein Komplettbackup mit Störung abgebrochen wird kann das an Abhängigkeiten zu Tabellen liegen die noch nicht aufgebaut wurden. In dem Fall auf die separate Sicherung der betreffenden Tabelle zurückgreifen und zuerst wiederherstellen.
  
 ===== Datenbank nach CSV exportieren ===== ===== Datenbank nach CSV exportieren =====
software/middleware/datenbank.1620296640.txt.gz · Zuletzt geändert: 2021/05/06 12:24 von jau