Es gibt viele Möglichkeiten eine MySQL Datenbank unter Linux zu sichern. Ich möchte im Folgenden auf die Möglichkeiten per Browser mit PHPMyAdmin und per Konsole mit mysqldumb näher eingehen. Eine 3rd Party Möglichkeit mit MySQL Dumper stelle ich Ihnen auch in einem kurzen Überblick vor. {loadposition google} 1. PHPMyAdmin: Sicherung der DB Im Folgenden gehe ich nicht auf die Einrichtung von PHPMyAdmin ein. Die Installation sollte bereits durchgeführt sein. Wechseln Sie im Browser zu Ihrer PHPMyAdmin Installation mit: http://domainoderipadresse/phpmyadmin (Bei Debian Groß- und Kleinschreibung Loggen Sie sich je nach gewählter Authentifizierungsmethode ein. Gehen Sie nun wie folgend beschrieben vor: - Auswahl der MySQL-Datenbank in linken Dropdownmenü - Im rechten Frame den Reiter EXPORTIEREN wählen - Unter den Tabellen ALE AUSWÄHLEN anklicken - Das Häkchen bei SENDEN setzen - Einen Namen dem Datenbankbackup geben 1 / 8
- Eine Art der Kompression wählen (bei kleinen DBs nicht wichtig) - Und mit OK bestätigen Es öffnet sich jetzt das Downloadfenster. Laden Sie die Datei nun herunter. 2. PHPMyAdmin: Wiederherstellung der DB Im folgenden die Wiederherstellung des Backups: Wechseln Sie im Browser zu Ihrer PHPMyAdmin Installation mit: http://domainoderipadresse/phpmyadmin (Bei Debian Groß- und Kleinschreibung beachten) Loggen Sie sich je nach gewählter Authentifizierungsmethode ein. Gehen Sie nun wie folgend beschrieben vor: - Auswahl der MySQL-Datenbank in linken Dropdownmenü - Im rechten Frame den Reiter SQL wählen - DURCHSUCHEN wählen und DB-Backup lokal auswählen - Bei ZEICHENCODIERUNG DER DATEI LATIN1 oder UTF8 wählen - Und mit OK bestätigen 2 / 8
Die Sicherung wird nun wiederhergestellt bzw. in Ihre Datenbank geladen. 3. PHPMyAdmin: Häufige Probleme... Bei Debian: Wenn der Restore / die Wiederherstellung zu lange dauert: Suchen Sie die Datei etc/php4/apache2/php.ini und ändern Sie folgende Parameter: memory_limit upload_max_filesize 4. Alternative: SQLDump Alternativ können Sie ein Backup und die Wiederherstellung auch auf der Konsole durchführen. Diese Methode wird von uns empfohlen. 3 / 8
Folgende Parameter werden im Folgenden verwendet: - dbusername = Ihr Benutzername der Datenbank - databasename = Datenbankname - /verzeichnis/backupname.sql = Verzeichnis und Name der Sicherung Sicherung / Backup der Datenbank: mysqldump --opt -Q -u dbusername -p databasename > /verzeichnis/backupname.sql Wiederherstellung / Restore der Datenbank: mysql -u dbusername -p databasename < /verzeichnis/backupname.sql Alternativ Sicherung / Backup der Datenbank: mysqldump -uuser -ppass DATENBANK > file.sql Wiederherstellung / Restore der Datenbank: mysql -uuser -ppass Datenbank source file.sql 5. Automatisierung: SQLDump 4 / 8
Mit folgedem Script können Sie die unter Punkt 4 genannte Möglichkeit automatisieren #!/bin/sh #Aktuelles Datum für Dateinamen setzen DATUM=`/bin/date '+%Y-%m-%d'` # Backup Database 1: mysqldump --opt -Q -u DATENBANKBENUTZER -B DATENBANK --password=passwort >/ # Backup Database X: #falls mehr als eine automatisch gesichert werden soll mysqldump --opt -Q -u DATENBANKBENUTZER -B DATENBANK --password=passwort >/ ## Restore: # hier nur aufgeführt zwecks Vollständigkeit # evt. erstellen der DBs # mysql -u<benutzer> -p<passwort> # mysql -p mysql>create DATABASE <Datenbank>; # exit; # Einspielen: # mysql -u dbusername -p databasename < /Verzeichnis/backupname.sql ## Beachten: bei System- oder Versionswechsel kommt es oft zu Problemen mit Umlauten. 6. Automatisierung: Häufige Probleme... PHP Scripte werden meist nach einer Ausführungszeit von mehr als 30 Sekunden nach 30 Sekunden abgebrochen. Somit ist ein Backup nur bis einer bestimmten Größe möglich. Dies passiert bei dem Backup als auch bei einer Wiederherstellug. 5 / 8
7. Optimale Lösung: MySQL-Dumper Um die unter Punkt 6 bereits erwähnte Problematik zu umgehen nutzt der MySQL Dumper einen Trick. Einige der vielen Funktionen von MYSQLDumper - einfache Sicherung und Wiederherstellung von MySQL-Datenbanken - MySQLDumper stellt Backups von Fremdprogrammen dank integriertem Parser wieder her - MySQLDumper beherrscht Multipart-Backup. D.h. bei großen Datenbanken kann das Backup automatisch auf mehrere Dateien verteilt werden (die gewünschte maximale Größe der Teildateien einstellbar!). Bei der Wiederherstellung sucht MySQLDumper automatisch die korrekte erste Teildatei, auch wenn versehentlich eine anderere gewählt wurde!!! - SQL-Browser: Du hast Zugriff auf Deine Tabellen. Du kannst Tabellen löschen, Datensätze editieren oder hinzufügen, SQL-Befehle direkt verarbeiten und auch speichern. Vergleichbar mit PhpMyAdmin bzw. somit der Ersatz. - Datenbankübersicht: Prozesse (mit einstellbarer Aktualisierung, Möglichkeit zum Beenden von Prozessen), Variablen, usw. - Verwaltung der Backup-Dateien - automatisches Löschen veralteter Backups nach selbst definierten Regeln (nach Alter der Datei oder nach Anzahl) - über ein mitgeliefertes Perl-Script lassen sich in Verbindung mit einem eingerichteten Cronjob Backupvorgänge automatisieren Installation MySQLDumper Download der Software unter: www.mysqldumper.de/board/download.php alternativ über die Konsole mit wget: wget http://www.mysqldumper.de/board/download.php?id=399 6 / 8
Das herunter geladenen Script wird im /var/www/verzeicnis/ entpackt und die config folgend angepasst: Vorgänge; benutzer; passwort config Datei per chmod auf 777 gesetzt Danach rufen wir im Browser das Script auf: http://host/dumper/install.php Wir testen den Login und legen ein FTP Account an. Nach dem erstellen des Cronjobs: - cronskript: endung=cgi pfad=/usr/lib/cgi-bin/ (speziel Debian) - (später müssen sripte hierhin verschoben werden); Backup per ftp senden speichern! - crondump editiern von.pl auf.cgi und pfad zum config-skript angeben - crondump etc. verschieben nach /usr/lib/cgi-bin/ - touch /etc/cron.hourly/mysqlbackup - mysqlbackup editiern und Skriptinhalt: #! /bin/sh perl /usr/lib/cgi-bin/crondump.cgi config=mysqldumper.conf 7 / 8
einfügen. Das wars. Weitere Informationen zum MySQL Dumper finden Sie hier: Homepage von MYSQLDumper 8 / 8