Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
linux:mysql:backup [2024/01/02 23:00] – psycore | linux:mysql:backup [2024/01/13 23:41] (aktuell) – gelöscht psycore | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | {{tag> | ||
- | ====== MySQL Backup unter Linux ====== | ||
- | |||
- | ===== Einleitung ===== | ||
- | |||
- | MySQL Datenbanken sind in der heutigen Zeit nicht mehr von einem Server wegzudenken. Informationen jeglicher Art können gespeichert, | ||
- | |||
- | Um zu gewährleisten, | ||
- | |||
- | ===== mysqldump ===== | ||
- | |||
- | MySQL bringt ein Tool mit, welches mysqldump heisst. Mit diesem Tool ist es möglich eine Sicherung aller Datenbanken anzufertigen. Zeitgemäße Systeme arbeiten mit einer passwortgeschützten Abfrage. Aus diesem Grund werde ich hier auch nur diese Variante vorstellen. | ||
- | |||
- | Rufen wir mysqldump ohne Parameter auf bekommen wir folgendes zur Benutzung angezeigt: | ||
- | |||
- | <code bash> | ||
- | $ mysqldump | ||
- | Usage: mysqldump [OPTIONS] database [tables] | ||
- | OR | ||
- | OR | ||
- | For more options, use mysqldump --help | ||
- | </ | ||
- | |||
- | Mit | ||
- | |||
- | <code bash>$ mysqldump --help</ | ||
- | |||
- | werden alle zur Verfügung stehenden Optionen angezeigt. Diese sind aber für ein Backup nicht alle relevant. Die wichtigsten Optionen sind für uns: -u -p | ||
- | |||
- | Die Option -u gibt den Usernamen an, der Zugriff auf die Datenbank hat. Die Option -p zeigt eine Passworteingabeaufforderung vor dem Ausführen des Befehls. | ||
- | |||
- | ===== Sichern der MySQL Datenbank ===== | ||
- | |||
- | ==== Sichern einer bestimmten Datenbank ==== | ||
- | |||
- | Um eine bestimmte Datenbank zu sichern benutzen wir einfach folgende Syntax: | ||
- | |||
- | <code bash>$ mysqldump -u USER -p database USERDATABASE > usr1_db.sql</ | ||
- | |||
- | USER entspricht hier dem Benutzer. Die Option -p wird ohne dazugehörigen Parameter übergeben. USERDATABASE entspricht der eigentlichen Datenbank. Wenn alles richtig eingegeben worden ist, bekommen wir eine Passwortabfrage zu sehen. Hier geben wir das Passwort des Benutzers ein uns sollten nun die Datei // | ||
- | |||
- | ==== Sichern aller Datenbanken ==== | ||
- | |||
- | Um alle Datenbanken zu sichern, müssen wir uns als MySQL root anmelden. Folgende Syntax wird benutzt, welche ähnlich funktioniert wie die bereits oben beschriebene: | ||
- | |||
- | <code bash>$ mysqldump -u USER -p --all-databases > full_db.sql</ | ||
- | |||
- | ===== Wiederherstellen der MySQL Datenbank ===== | ||
- | |||
- | Das importieren eines dump files ist ebenso einfach. Hierzu nutzen wir folgende Syntax: | ||
- | |||
- | <code bash>$ mysql -p USERDATABASE -u USER -p < usr1_db.sql</ | ||
- | |||
- | oder um alle Datenbanken wiederherzustellen: | ||
- | |||
- | <code bash>$ mysql -p USERDATABASE -u USER -p < full_db.sql</ | ||
- | |||
- | |||
- | ===== Automatisiertes Sichern ===== | ||
- | |||
- | Um die Datenbank automatisch zu sichern, kann man folgendes Script nutzen, welches Jerome Griessmeier auf seiner [[http:// | ||
- | |||
- | <code bash> | ||
- | # | ||
- | # Backup Script | ||
- | # Author: Jerome Griessmeier | ||
- | # Version: 0.2 | ||
- | # | ||
- | # This Shell Script backup your database | ||
- | # For automating use a cronjob | ||
- | |||
- | # | ||
- | # Pfade setzen/ Setting path variables | ||
- | # | ||
- | MYSQL_DUMP=/ | ||
- | BACKUP_DIR=/ | ||
- | TAR=/ | ||
- | RM=/ | ||
- | DB_NAME=DB_NAME | ||
- | DB_USER=DB_USER | ||
- | DB_PASS=DB_PASS | ||
- | AKT_DATUM=`date +%Y%m%d%H%M` | ||
- | |||
- | # | ||
- | # mysql dump erzeugen / create mysql dump | ||
- | # | ||
- | $MYSQL_DUMP $DB_NAME -u $DB_USER --password=$DB_PASS > | ||
- | $BACKUP_DIR/ | ||
- | |||
- | # | ||
- | # mysql dump komprimieren / Compress data | ||
- | # | ||
- | cd $BACKUP_DIR | ||
- | $TAR -cvzf $AKT_DATUM.backup.sql.tgz $AKT_DATUM.backup.sql | ||
- | |||
- | # | ||
- | # aufraeumen / clean up | ||
- | # | ||
- | $RM $AKT_DATUM.backup.sql | ||
- | </ | ||
- | |||
- | ==== cronjob einrichten ==== | ||
- | |||
- | <code bash> | ||
- | |||
- | cronjob anlegen: | ||
- | |||
- | <code bash>55 2 * * * root / | ||
- | |||
- | //Start des Scripts um 02.55 jede Nacht// | ||
- | |||
- | ===== Quellen ===== | ||
- | |||
- | [[http:// | ||
- | |||