«
»


MySQL-Datenbanken sichern

Arbeiten auf der Kommandozeile mit "mysqldump"

The  phpMyAdmin  ProjectDer gute alte phpMyAdmin ist ein unschlagbares Tool wenn es darum geht MySQL-Datenbanken zu bearbeiten, Rechte zu vergeben, Tabellen zu reparieren, Datenbanken anzulegen und vieles mehr. Doch beim Dump bzw. beim Einspielen eines Dumpes kommt man bei größeren Datenmengen schnell an die vom Provider vorgegebenen Grenzen für Ausführungszeiten und anderen Beschränkungen. Auch ein regelmäßiges, automatisches Backup der Datenbanken sollte – wie es die Begrifflichkeit bereits verrät – automatisch passieren und nicht gelegentlich per Klick auf den entsprechenden Button auf einer Browser-Oberfläche.

Mit den entsprechenden Rechten auf dem Server geht’s – wie bei Linux üblich – hervoragend auf der Kommandozeile.

Fangen wir doch einfach damit an, eine große Datenbank im laufenden Betrieb zu sichern. Nehmen wir an die Datenbank heißt "cms_wordpress" und wir befinden uns bereits auf der Shell des Servers auf dem die Datenbank liegt. Wechselt nun in euer home- bzw. euer Backup-Verzeichnis und führt den folgenden Befehl aus:

server~# mysqldump -fv –add-drop-table -uroot -p cms_wordpress > cms_wordpress.sql

Die hierbei verwendeten Optionen -f (Force, auch bei Fehlern wird versucht, den Dump fortzuführen) und –add-drop-table sorgt dafür, dass beim Einspielen des Dumpes die zu überschreibenden Tabellen zuvor gelöscht werden). Die Option -v (Verbose) zeigt lediglich was gerade passiert und kann ohne weiteres weg gelassen werden. Das -u setzt den Usernamen, in diesem Fall für den MySQL-root (hier könnte auch ein anderer Nutzer mit entsprechenden Privilegien eingesetzt werden) und -p fragt im zweiten Schritt nach dem Passwort (dieses könnte auch direkt hinter dem -p angegeben werden, doch somit wäre dies in der History sichtbar und das muss nun nicht unbedingt sein).
Je nach Datenbankgröße kann dieser Vorgang einige Zeit in Anspruch nehmen und auch die Prozessorlast ganz schön in die Höhe treiben; nach dem Fertigstellen erhaltet ihr eine ASCII-Datei mit allen Datenbank-Informationen. Einfach mal rein schauen! Was mysqldump hier fabriziert, das hätte man auch per Hand erledigen können …

Möchte man diese Datei nun auf den heimischen Rechner ziehen oder diese zur Sicherheit irgendwo ablegen, empfiehlt sich das Komprimieren per tar-gz. Hierfür in das Backupverzeichnis wechseln und folgenden Befehl ausführen:

server~# tar cvfz cms_wordpress.tgz cms_wordpress.sql

OK, die Datenbank ist nun gesichert und gepackt! Wie aber kann dieser Datenbestand wieder hergestellt werden, also wie spiele ich diese Datenbank wieder ein:

server~# tar xvfz cms_wordpress.tgz
server~# mysql -f -uroot -p cms_wordpress < cms_wordpress.sql

Ein paar Tipps:

  • schaut euch die MySQL-Dokumentation an
  • weitere Optionen wie -Q und –compatible könnten in Betracht gezogen werden
  • die Option -h (Host), wenn man sich nicht auf diesem Server befindet und den Dump von einem anderen Server aus durchführen möchte
  • Einsatz von nice (hierzu wird’s bestimmt noch mal einen eigenen Beitrag geben) hiermit ließe sich Priorität für den Dump herab setzen
bisher ein Kommentar zu "MySQL-Datenbanken sichern"
  1. Hinzugefügt durch Server Support Forum » picxl.de
    am 16.03.2008 um 10:06 Uhr

    [...] (kaputt) machen. Sei es ein Feintunig des Webservers, Ausführen eigner Scripte, Backups, das Handling großer MySQL-Datenbanken oder die Installation zusätzlicher Programme… Hier hilft sicherlich eine entsprechende [...]

Kommentar abgeben




Kommentar (*)

Folgende Tags können verwendet werden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

(*) erforderliche Angaben