Automatische Sicherung von MySQL auf Ubuntu

12

Ich habe einen Ubuntu-Server mit einer MySQL-Datenbank. Ich möchte eine automatische Sicherung dieser Datenbank während der Nacht auf einem anderen Server einrichten (zum Beispiel über).

Ich weiß nicht, was das beste Werkzeug dafür wäre. Wenn jemand einige Ratschläge hat ...

Danke im Voraus.

user1260928
quelle

Antworten:

29

Der einfachste Weg, diese Aufgabe zu automatisieren, ist die Kombination von MySQL-Dumps und einem Cronjob. Auf dieser und anderen Internetseiten finden Sie viele Informationen zu diesem Thema, die jedoch der Vollständigkeit halber dienen sollen:

Erstellen Sie eine mysqldump.sh-Datei

Welches wird den Befehl mysql dump enthalten, den wir in einem Cron-Job einplanen werden (ersetzen Sie Benutzer, Passwort und Pfad entsprechend Ihrer Umgebung):

mysqldump -u root -p<mysql_root_password> --all-databases | gzip > /desired/backup/folder/mysqldb_`date +%F`.sql.gz

Bearbeiten: Wenn das Skript die Sicherung an einem Remotestandort speichern soll, stellen Sie einfach das entsprechende Gerät bereit oder geben Sie es frei und verwenden Sie den Bereitstellungspfad im Skript.

Testen Sie das Skript

Stellen Sie sicher, dass das Skript über Ausführungsberechtigungen verfügt:

chmod +x /path/to/mysqldump.sh

Führen Sie das Skript aus:

sh /path/to/mysqldump.sh

Und testen Sie, ob es richtig funktioniert (Die Sicherungsdatei wird im angegebenen Sicherungsordner erstellt).

Erstellen und planen Sie einen neuen Cron-Job

Geben Sie an einer Eingabeaufforderung Folgendes ein

sudo crontab -e

Fügen Sie am Ende der Datei die folgende Zeile hinzu:

30 23 * * * /path/to/mysqldump.sh

Dadurch wird das Skript jeden Tag um 23:30 Uhr ausgeführt.

Erweitern Sie dieses einfache Skript

Es gibt buchstäblich eine Menge Dinge, die Sie tun können, um diese einfache Sicherungsmethode zu verbessern:

  • Sichern auf ein anderes System
  • Überwachen Sie den Speicherplatz
  • E-Mail-Berichterstattung
  • ...

Beenden Sie also nicht hier und experimentieren Sie! :-)

Verwenden Sie Backup-Tools oder Cloud-basierte Backup-Services

Obwohl die oben beschriebene Methode eine der einfachsten ist und auf Ihre speziellen Anforderungen erweitert werden kann, sollten Sie erwähnen, dass es auch andere Alternativen gibt:

  • Backup-Tools wie AutoMySQLBackup, eine Open-Source-Anwendung, mit der Sie E-Mail-Benachrichtigungen, Komprimierung, Verschlüsselung, Rotation und Art (z. B. inkrementelle) Ihrer Backups einfacher konfigurieren können. Ab Mai 2018 ist es für Ubuntu Server über APT verfügbar.
  • Cloud-basierte Backup-Dienste wie BackupBird, myRepono, Bitcan usw., die interessant sein können, wenn Sie mehrere Datenbankserver verwalten und alle ihre Backups zentral verwalten möchten.

Beachten Sie bitte, dass ich in keiner Weise mit den oben genannten Lösungen und Diensten in Verbindung stehe und sie nur als Referenz aufführe. Verwenden Sie sie daher auf eigenes Risiko.

Nützliche Links / Referenzen:

Cron -> https://en.wikipedia.org/wiki/Cron

MySQL Dump -> https://dev.mysql.com/doc/refman/5.7/de/mysqldump.html

Eduardo López
quelle
4
Verwenden date +%F- Damit wird automatisch eine Kombination aus Jahr + Monat + Datum ausgewählt, die dem Gebietsschema des Benutzers entspricht (z. B. wird angezeigt YYYY-MM-DD).
muru
Oh ja, viel besser. Ich werde die Antwort bearbeiten :-)
Eduardo López
+1 Gute Antwort: genau das, was hier nötig ist, nicht mehr und nicht weniger.
Jos
2
Wenn Sie sudo verwenden müssen, um diese Operation sudo crontab -echmod +x /path/to/mysqldump.sh
auszuführen,
zinon - Danke für die Hinweise! Ich habe die Antwort aktualisiert.
Eduardo López