Sicherung von Datenbanken

Allgemein

Während sich die bisherigen Artikel mit der Sicherung von ganzen Systemen beschäftigt haben, liegt bei Datenbanken noch eine Anwendungsebene darüber, die direkt für Backups nutzbar ist. Konkret macht es daher Sinn, von den einzelnen Datenbanken Dumps anzufertigen, diese ggf. auf Funktion zu testen und im Anschluss in die Sicherung übriger Dateien zu integrieren.

Backups von Datenbanken am Beispiel von MySQL

Zwar ist es meist problemlos möglich /var/lib/mysql zu sichern und einfach wieder zu entpacken, dennoch wird davon abgeraten. Es ist besser, vor allem Versionsübergreifend, einen Dump der Datenbank anzulegen und diesen zu importieren, wenn ein Backup eingespielt werden soll. Dafür wird das Tool “mysqldump”, welches standardmässig beim MySQL-Paket dabei ist, genutzt.

Einen kompletten Dump aller Datenbanken mit allen Daten kann man wie folgt erstellen:

mysqldump [options] --all-databases

Um zum Beispiel alle Tabellen und Datenbanken in das File “mysql.dump” zu speichern und dabei eine komprimierte Verbindung zwischen Client und Datenbankserver zu benutzen, wird der folgende Befehl genutzt:

mysqldump -C --all-databases > mysql.dump

Diese Sicherung sollte als Root erfolgen. Es kann sein, dass das Passwort des Root-Benutzers eingegeben werden muss, entsprechend wird zu den optionen noch ein -p hinzugefügt.

Um eine einzelne Datenbank zu sichern, beispielsweise die eines bestimmten Nutzers oder einer bestimmten Seite, kann der folgende Befehl genutzt werden:

# mysqldump [options] db_name
                    mysqldump -Cp kunden_datenbank > kunden_datenbank.dump