Das Durchführen regelmäßiger Sicherungen ist ein wesentliches Verfahren für jede Art von Daten. Dieses Tutorial hilft Ihnen dabei, einige der am häufigsten verwendeten Tools zum Sichern und Wiederherstellen Ihrer MySQL-Datenbank kennenzulernen.
Zuerst müssen Sie sich über eine SSH-Verbindung mit Ihrem Server verbinden. Falls Sie dies noch nicht getan haben, empfehlen wir Ihnen, unserer Anleitung zu folgen, um sich sicher mit SSH zu verbinden. Im Falle eines lokalen Servers können Sie zum nächsten Punkt gehen und das Terminal Ihres Servers öffnen.
Verwenden Sie mysqldump
Mysqldump ist eine Anwendung, die immer in jeder MySQL-Installation verfügbar ist und es Ihnen ermöglicht, einen vollständigen Dump Ihrer Daten im Textformat durchzuführen.
Die Befehlssyntax lautet wie folgt:
$ mysqldump -u [username] -p [database] > backup.sql
Wenn Sie diesen Befehl ausführen, finden Sie eine vollständige Datenbanksicherung, die in der Datei backup.sql angegeben ist.
Um die Sicherung wiederherzustellen, verwenden Sie den MySQL-Client wie folgt:
$ mysql -u [username] -p [database] < backup.sql
Abhängig von der Größe der Datenbank können diese Backup-Dateien beträchtliche Größen erreichen, was es schwierig macht, sie zu übertragen oder zu kopieren. Um die Größe der Datenbanksicherung zu optimieren, können Sie die Datei mit gzip komprimieren:
$ mysqldump -u [username] -p [database] | gzip > backup.sql.gz
Wenn Sie möchten, können Sie das aktuelle Datum auch automatisch in den Dateinamen einfügen mit:
$ mysqldump -u [username] -p [database] | gzip > backup_$(date +%F.%H%M%S).sql.gz
Verwenden Sie zum Wiederherstellen stattdessen die folgende Syntax:
$ mysql -u [username] -p [database] < backup.sql
Hinweise zu mysqldump:
Es ist gut zu bedenken, dass mysqldump während des Dumps und Backups einer Datenbank nicht die Konsistenz von Daten zwischen Tabellen garantiert. Wenn während der Sicherung Schreibvorgänge stattfinden, kann die erhaltene Sicherung teilweise und/oder beschädigt sein.
Um dieses Problem zu vermeiden, gibt es bestimmte Optionen, die von der Anwendung bereitgestellt werden:
--lock-all-tables:blockiert alle Schreiboperationen auf allen Tabellen aller Datenbanken
- Sperrtabellen:Diese Option setzt stattdessen die zu sichernde Datenbanktabelle in den schreibgeschützten Modus.
Welche Optionen zu wählen sind, hängt davon ab, ob Sie Daten haben, die sich auf mehrere Datenbanken beziehen oder nicht. In den meisten Fällen ist --lock-tables die ideale Lösung, um die Datenintegrität für jede einzelne Datenbank zu gewährleisten.
mysqldump durch crontab automatisieren
Um das Backup periodisch zu machen, müssen Sie es lediglich per Programmierung zum crontab des Systems hinzufügen, zB einmal täglich. Öffnen Sie zuerst die Crontab, indem Sie Folgendes starten:
$ sudo crontab -e
Fügen Sie nun am Ende der Datei eine Zeile wie folgt hinzu:
00 23 * * * mysqldump -u [username] -p [database] | gzip > /home/utente/backup.sql.gz
Durch das Speichern der Datei erstellt das System eine Sicherung pro Tag (um 23:00 Uhr) in Ihrem Benutzerverzeichnis und überschreibt jeden Tag die vorherige Sicherung.
Automysqlbackup verwenden
Zusätzlich zur Verwendung von mysqldump durch den manuellen Export von Backups können Sie sich auf eines der beliebtesten Dienstprogramme der Branche verlassen:automysqlbackup.
Zuerst müssen Sie das Paket über apt-get installieren:
$ sudo apt-get install automysqlbackup
Nach Abschluss der Installation führt automysqlbackup tägliche Sicherungen im Verzeichnis /var/lib/automysqlbackup durch. Sie können eine Sicherung auch manuell starten, indem Sie Folgendes starten:
$ sudo automysqlbackup
Sobald Sie fertig sind, können Sie die vorhandenen Sicherungen überprüfen, indem Sie einfach den Inhalt des Verzeichnisses auflisten:
$ ls -R /var/lib/automysqlbackup/
/var/lib/automysqlbackup/:
daily monthly weekly
/var/lib/automysqlbackup/daily:
exampledb information_schema performance_schema test wordpress
/var/lib/automysqlbackup/daily/exampledb:
exampledb_2019-08-03_06h48m.Sunday.sql.gz
...
Wenn alles richtig funktioniert hat, werden Sie eine Reihe von Dateien mit .sql.gz-Erweiterungen bemerken, wie oben gezeigt.
Wir empfehlen Ihnen, die zuletzt erstellten Sicherungen regelmäßig zu überprüfen und sicherzustellen, dass sie alle ordnungsgemäß funktionieren.
Automysqlbackup anpassen
Um die Sicherungshäufigkeit von automysqlbackup oder die für den Zugriff auf Ihre Datenbank erforderlichen Zugangsdaten zu ändern, können Sie die Konfigurationsdatei in /etc/default/automysqlbackup.
ändernEinige der Einstellungen sind:
BENUTZERNAME:Benutzername, der verwendet wird, um sich bei der Datenbank anzumelden
PASSWORT:Datenbankpasswort
DBHOST:IP-Adresse oder Hostname
DBNAMES:Namen der zu sichernden Datenbanken
BACKUPDIR:Verzeichnis zum Speichern von Backups
Nachdem Sie die gewünschten Einstellungen geändert haben, speichern Sie die Datei, um die Änderungen zu übernehmen.