MySQL Daten Sichern – automatisches Backup

      Kommentare deaktiviert für MySQL Daten Sichern – automatisches Backup

Einen Server bei einem der großen Hoster (Hetzner, 1&1 usw.) stehen zu haben ist schon toll. Man muss sich keine Gedanken um Stromkosten, Überhitzung und andere Dinge Gedanken machen. An eines sollte man aber immer denken, an die Datensicherung!
Um dies so automatisiert wie möglich zu machen, hier eine kurze Anleitung.
Als erstes müssen wir ein Backup der Datenbank machen. Dies kann man zwar auch über PhpMyAdmin versuchen, ab einer gewissen DB-Größe geht das aber schief. Außerdem ist der Mensch von Natur aus faul, deshalb hier ein Linux-Bash-Script, bzw. das Ganze gleich in die Cronjob (crontab -e) geschrieben:

# m h  dom mon dow   command
 5 0 * * * root /var/backup/backup.sh

Dieser wird täglich um 00:05 Uhr als „root“ ausgeführt.
Die Datei „/var/backup/backup.sh“ sieht dann ungefähr so aus:

mysqldump -ubenutzer -ppasswort -Q --all-databases > /var/backup/mysql_backup.sql
tar -zcvpf /var/backup/backup`date +%Y-%m-%d`.tar.gz /var/backup/mysql_backup.sql

Ein mysqldump mit dem angegebenen Benutzernamen, Passwort und aller Datenbanken wird nach /var/backup ablegt. Dannach wird dieser in eine Datei mit dem aktuellem Datum im Namen gezippt.
Damit die Daten auch vom Server gesichert werden können, gibt es viele Möglichkeiten. Wenn man bei sich einen Linuxserver hat, kann man auch diesen Schritt mit einem Cronjob automatisieren.

 /usr/bin/rsync -aptz -e "ssh -i /home/id_rsa" user@server:/var/backup/ /var/backup/

Dieser Job wird auf dem lokalen Server ausgeführt. Er synchronisiert unser Backup-Verzeichnis mit dem lokalen Verzeichnis und kopiert so die gesicherte Datenbank zu uns.
Das Verfahren zur automatischen Generierung eines SSH-Keys habe ich hier bereits kurz beschrieben.