MySQL Datenbank sichern – Raspberry Pi
Datenbank sichern ganz einfach. Cronjob auf dem Raspberry Pi einrichten.
Datensicherheit ist immer eine gute Sache. Auch beim Raspberry Pi hört man immer wieder von SD-Karten die überraschend das Zeitliche segnen. Die Einrichtung eines neuen Systems ist eher eine zeitliche Frage. Wer einmal einen solchen Crash erlebt hat, will aber auf Nummer sicher gehen. Die wichtigsten Daten sind meist die, die zur Laufzeit des Systems erstellt werden. Das ist zum großen Anteil der Inhalt einer Datenbank. Diese lässt sich relativ einfach in zyklischen Abständen sichern.
Logischerweise wäre eine Sicherung, die man auf der SD-Karte ablegt zwecklos, deshalb sollten wir ein externes Speichermedium verwenden. In diesem Beispiel sichern wir auf einem USB-Stick.
Datenbank sichern
Um den USB-Stick nutzen zu können, müssen wir ihn erst einmal einhängen (mount point anlegen). Dazu brauchen wir dessen UUID. Mit dem folgenden Befehl erhalten wir eine Liste der Laufwerke. Daraus müssen wir die UUID des USB-Sticks kopieren.
1 |
sudo blkid -o list -w /dev/null |
Als Nächstes erstellen wir ein Verzeichnis, in das wir den USB-Stick einhängen und die Datenbank sichern.
1 |
sudo mkdir /media/usbstick |
Damit der USB-Stick immer automatisch gemountet wird, öffnen wir die fstab (file system table).
1 |
sudo nano /etc/fstab |
Dort tragen wir den entsprechenden Befehl ein.
Für einen Fat32 formatierten USB-Stick:
1 |
UUID=0012-D687 /media/usbstick/ vfat utf8,uid=pi,gid=pi,noatime 0 |
oder für einen ext4 formatierten USB-Stick:
1 |
UUID=f742a603-29ba-4afe-8114-cdfe43d997d9 /media/usbstick ext4 defaults 0 |
Die UUID muss natürlich entsprechend angepasst werden.
Die eigentliche Sicherung ist dann sehr einfach zu bewerkstelligen. Dazu erstellen wir einfach einen cronjob.
Dazu öffnen wir crontab
1 |
crontab -e |
und fügen folgende Zeile ein:
1 |
0 0 * * * mysqldump -u DBUSER -pPASS DBNAME > "/media/usbstick/$(date +\%Y-\%m-\%d) smart-home.sql" |
Wer sich mit dem cron Dienst noch nicht auskennt, sollte sich kurz die grundlegenden Kenntnisse aneignen. Hier wird die Sicherung täglich um 0:00 Uhr ausgeführt. Die Platzhalter für Datenbankbenutzer, Passwort und Datenbankname müssen angepasst werden. Achtung, beim Parameter „-p“ für Passwort darf kein Leerzeichen zischen Parameter und Passwort eingegeben werden. Der Dateiname wird mit einem Zeitstempel versehen, so bleibt alles schön sortiert.
Um eine Datenbanksicherung wiederherzustellen, geben wir folgendes in die Konsole ein.
1 |
mysql -u DBUSER -pPASS DBNAME < "/media/usbstick/smart-home.sql" |
Wenn die Datenbank noch nicht existiert, muss diese erst angelegt werden.
1 |
mysql -u DBUSER -pPASS -Bse "create database DBNAME" |
Damit haben wir es geschafft. Wie wir sehen, sollte man die Datenbank sichern, um Datenverlust zu vermeiden.