Blog

Live Suche

Das große Webserver-Backup Tutorial (Teil1) - MySQL

Webserver Sicherungen kosten Zeit und Nerven. Wenn man hier keinen Automatismus erstellt, liegen Backups oft eine ganze Zeit zurück. Spätestens wenn dann einmal die Webseite nicht mehr erreichbar ist, denkt man wieder an die letzte Sicherung und bekommt oft einen Adrenalinschub. In diesem Tutorial möchte ich dir Schritt für Schritt erklären, wie es gar nicht erst soweit kommen muss.

Mal ehrlich: Jeder von uns ist doch schon mindestens einmal in der Situation gewesen in dem einem das Herz stehen bleibt; Server nicht erreichbar, Webseite zerschossen, Datenbank futsch. Drei von vielen möglichen Ursachen die einem die Schweißperlen auf die Stirn treiben und einem spätestens nach missglückten Rettungsversuchen, über den Zeitpunkt des letzten Backups nachdenken lassen. Wie oft habe ich schon vergessen regelmäßig Sicherungen zu ziehen und war spätestens über eine funktionierende Versionierung meiner Arbeiten erfreut. Doch alle Situationen zum trotz ist das Thema Webserver-Backups immer noch ein leidiges Thema.


Shared Hosting / Webhosting

Im besten Fall hast du einen Premium Hoster wie die netcup GmbH. Dieser bietet eine freiwillige Backup-Lösung für jedes Webhosting-Paket und verlangt erst beim Zurückspielen der Daten einen Obolus. Natürlich gibt es auch noch Lösungen in den verschiedenen Web Panels wie Plesk, cPanel oder Webmin um sich zeitgesteuerte Sicherungen erstellen zu lassen. Im schlimmsten Fall kann man sich nicht auf den Hoster verlassen und man muss sich manuell per MySQLDumper und FTP in regelmäßigen Abständen eine Sicherung ziehen. Bei billig Hostern gibt es keinen Platz für Prokrastination.

Root-Server

Wer sich allerdings für einen dedizierten Root Server (auch vServer / VPS) entschieden hat, bekommt weitaus mehr Möglichkeiten seine Daten oder gar die Webseiten seiner Kunden zu sichern. Als Kommandozeilen-Akrobat kannst du mit den verschiedensten hauseigenen Befehlen und Routinen deine Backups erstellen. Hinzu kommt die zeitgesteuerte Ausführung von Befehlen und Skripten über Cronjobs. Mit den Rechten als Root-User haben wir die große Macht der Open Source Gemeinde auf deiner Seite und diese wirst du dir im folgenden Tutorial zunutze machen.

In diesem Teil der Tutorial-Reihe, werde ich dir erklären wie du Onsite-Backups (lokal) deiner MySQL Datenbank automatisiert anlegst.

MySQL-Datenbank sichern

Ein schnelles Datenbank Backup kann man mittels mysqldump erstellen. Dazu muss in der Kommandozeile nur folgende Syntax beachtet werden:

mysqldump [arguments] > file_name 

Standardmäßig schreibt mysqldump die Informtionen als SQL statements, deswegen denk an die Endung .sql. Wenn du alle Datenbanken speichern willst benutze die Option --all-databases.

mysqldump --all-databases > dump.sql 

Wenn du mehr über mysqldump erfahren willst, solltest du dir die Dokumentation dazu durchlesen.

Nun kannst du dir überlegen wie du eine geeignete Automatisierung mittels Cronjob schaffst oder du bedienst dich eines genialen und freien Tools Namens AutoMySQLBackup

AutoMySQLBackup

Mit diesem Skript können alle Datenbanken auf dem Server gesichert und in beliebig definierbaren Vergangenheitsintervallen vorgehalten werden. Das Script kümmert sich außerdem um das automatische Löschen alter Dumps. Die letzte aktuelle Version findest du auf Sourceforge.

​Falls du auf einem Debian basierten System arbeitest, kannst du AutoMySQLBackup aus dem Repository installieren:

apt-get update && apt-get dist-upgrade
apt-get install automysqlbackup 

Auf allen anderen Systemen kannst du das Installationsskript von sourceforge herunterladen und anschließend konfigurieren und installieren:

mkdir /home/backup
cd /home/backup
wget http://downloads.sourceforge.net/project/automysqlbackup/AutoMySQLBackup/AutoMySQLBackup%20VER%203.0/automysqlbackup-v3.0_rc6.tar.gz
tar xfvz automysqlbackup-v3.0_rc6.tar.gz  
./install.sh
### Checking archive files for existence, readability and integrity.

automysqlbackup ... exists and is readable ... md5sum okay :)
automysqlbackup.conf ... exists and is readable ... md5sum okay :)
README ... exists and is readable ... md5sum okay :)
LICENSE ... exists and is readable ... md5sum okay :)

Select the global configuration directory [/etc/automysqlbackup]:
Select directory for the executable [/usr/local/bin]:
### Creating global configuration directory /etc/automysqlbackup:

success

### Copying files.


if you are running automysqlbackup under the same user as you run this install script,
you should be able to access it by running 'automysqlbackup' from the command line.
if not, you have to check if 'echo $PATH' has /usr/local/bin in it

Setup Complete! 

Du kannst bei der Installation die Standardordner durch Enter bestätigen oder einfach einen alternativen Pfad angeben.

Als nächstes musst du AutoMySQLBackup noch konfigurieren. Dazu öffnest du die Konfigurationsdatei aus dem vorher angegeben Pfad.

nano /etc/automysqlbackup/automysqlbackup.conf 

Die Config ist sehr gut Kommentiert, was es leicht machen sollte die eigenen Wünsche umzusetzen. Damit du hier mindestens eine laufende Konfiguration hast, passt du mindestens die nachfolgenden Zeilen je nach Wunsch an und kommentierst diese aus:

CONFIG_mysql_dump_username='root'
CONFIG_mysql_dump_password='YourPassword'
CONFIG_mysql_dump_host='localhost'
CONFIG_backup_dir='/var/backup/db'
CONFIG_do_monthly="01"
CONFIG_do_weekly="5"
CONFIG_rotation_daily=6
CONFIG_rotation_weekly=35
CONFIG_rotation_monthly=150
CONFIG_mysql_dump_port=3306
CONFIG_mysql_dump_compression='gzip' 

​Für den ersten Durchlauf würde ich die Option "dry-run", ganz am Ender der Config-Datei, einschalten. Dadurch kannst du später deine Einstellungen testen, ohne direkt die Backups zu schreiben. 

Nun lege entsprechend deiner Einstellung mindestens folgendes Verzeichnis an, in der die Sicherungen abgelegt werden.

mkdir /var/backup/db 

​Anschließend führst du einen Testlauf durch.

automysqlbackup 

Kontrolliere nun die Ausgabe auf Warnungen und Fehler. Lief alles durch, kannst du die Option (falls eingestellt) "dry-run" wieder auskommentieren und das Skript nochmal starten. Je nach Datenbankgröße dauert dies nun eine Weile. Nachdem das Backup-Skript durchgelaufen ist, kannst du dein Ergebnis in /var/backup/db bestaunen.

Cronjob Automatisierung

​Damit du nicht immer manuell das AutoMySQLBackup Skript ausführen musst, legst du dir noch einen Cronjob unter /etc/cron.d an und automatisierst damit den ganzen Prozess.

0 4    * * *          root     automysqlbackup 

Damit wird jeden Tag um 04:00 Uhr das Script mit Root-Rechten ausgeführt. Somit ist die Sicherung der MySQL-Datenbanken automatisiert, und wir können uns im zweiten Teil, dem Sichern der Dateien, widmen.

0
Doppel-Jubiläumsjahr bei DENIC

Ähnliche Beiträge

Ich stimme zu, dass diese Seite Cookies für Analysen verwendet.