Während der mysqldump
Tool ist die bevorzugte Sicherungsmethode für eine MariaDB- oder MySQL-Datenbank oder ein Datenbanksystem. Es funktioniert nur, wenn der Datenbankserver zugänglich ist und ausgeführt wird. Wenn die Datenbank nicht gestartet werden kann oder das Hostsystem nicht erreichbar ist, kann die Datenbank trotzdem direkt kopiert werden.
Ein physisches Backup ist häufig in Situationen erforderlich, in denen Sie nur Zugriff auf eine Wiederherstellungsumgebung (z. B. Finnix) haben, in der Sie die Festplatten Ihres Systems als externe Speichergeräte bereitstellen. Wenn Sie etwas über logische Sicherungen lesen möchten mit mysqldump
,siehe unseren Leitfaden zum Thema.
Zur Vereinfachung wird in diesem Handbuch der Name MySQL verwendet, aber die Anweisungen funktionieren sowohl für MySQL als auch für MariaDB.
Hinweis Die Schritte in diesem Handbuch erfordern Root-Rechte. Melden Sie sich als Root-Benutzer mit su -
an bevor Sie beginnen.
Erstellen Sie eine Sicherung
-
Wenn Sie nicht im Wiederherstellungsmodus (einer Finnix-Sitzung) ausgeführt werden, stoppen Sie
mysql
Dienst:systemctl stop mysql
-
Suchen Sie Ihr Datenbankverzeichnis. Es sollte
/var/lib/mysql/
sein auf den meisten Systemen, aber wenn dieses Verzeichnis nicht existiert, untersuchen Sie/etc/mysql/my.cnf
für einen Pfad zum Datenverzeichnis. -
Erstellen Sie ein Verzeichnis zum Speichern Ihrer Backups. Diese Anleitung verwendet
/opt/db-backups
Sie können dies jedoch an Ihre Bedürfnisse anpassen:mkdir /opt/db-backups
-
Kopieren Sie das Datenverzeichnis von MySQL an einen Speicherort. Der
cp
Befehl,rsync
, oder andere Methoden werden gut funktionieren, aber wir werdentar
verwenden um die Sicherung rekursiv zu kopieren und gleichzeitig zu gzip. Ändern Sie das Datenbankverzeichnis, den Sicherungsdateinamen und das Zielverzeichnis nach Bedarf; der-$(date +%F)
Die Ergänzung des Befehls fügt einen Zeitstempel in den Dateinamen ein.tar cfvz /opt/db-backups/db-$(date +%F).tar.gz /var/lib/mysql/*
-
Starten Sie den MySQL-Dienst neu:
systemctl restart mysql
Ein Backup wiederherstellen
-
Ändern Sie Ihr Arbeitsverzeichnis an einen Ort, an dem Sie den oben erstellten Tarball extrahieren können. In diesem Beispiel wird das Home-Verzeichnis des aktuellen Benutzers verwendet:
cd
-
Stoppen Sie
mysql
Dienst:systemctl stop mysql
-
Extrahieren Sie den Tarball in das Arbeitsverzeichnis. Ändern Sie den Dateinamen des Tarballs im Befehl in den mit dem Datum, auf das Sie wiederherstellen möchten.
tar zxvf /opt/db-backups/db-archive.tar.gz -C .
-
Verschieben Sie den aktuellen Inhalt von
/var/lib/mysql
an einen anderen Ort, wenn Sie sie aus irgendeinem Grund behalten möchten, oder löschen Sie sie vollständig. Erstellen Sie ein neues leeresmysql
Ordner, um Ihr gesichertes DMBS wiederherzustellen.mv /var/lib/mysql /var/lib/mysql-old mkdir /var/lib/mysql
-
Kopieren Sie das gesicherte Datenbanksystem in den leeren Ordner:
mv ~/var/lib/mysql/* /var/lib/mysql
-
Legen Sie die richtigen Berechtigungen für die gerade wiederhergestellten Dateien fest:
chown -R mysql:mysql /var/lib/mysql
-
Starten Sie den MySQL-Dienst neu:
systemctl restart mysql
Weitere Informationen
Weitere Informationen zu diesem Thema finden Sie in den folgenden Ressourcen. Obwohl diese in der Hoffnung bereitgestellt werden, dass sie nützlich sind, beachten Sie bitte, dass wir nicht für die Genauigkeit oder Aktualität extern gehosteter Materialien garantieren können.
- Überblick über Sicherung und Wiederherstellung; MariaDB-Bibliothek
- Datenbanksicherungsmethoden; MySQL-Referenzhandbuch