Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > Ankündigungen, News und Feedback > Tutorials > [PHP] Datenbank-Backup mit mysqldumper
Antwort
 
Themen-Optionen
Alt 16.03.2006, 08:58   Nach oben    #1
Projektleiter
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.225
Standard [PHP] Datenbank-Backup mit mysqldumper

In diesem Tutorial wird euch die Möglichkeit geboten zu erfahren, wie ihr ein Datenbank-Backup mit Hilfe der freien Software mysqldumper machen könnt.

Alles was wir dafür brauchen ist:
- mysqldumper http://www.mysqldumper.de/board/downloads.php?cat=2

persönlich würde ich (derzeit) Version 1.21 wählen. Aber die werden ja regelmäßig aktualisiert.

Nachdem man die zip-Datei entpackt kann es losgehen.

In die Datei config.php müßt ihr zwei Variablen mit Werten füllen.
In Zeile 16 wird die Variable $config['dbuser'] = ''; mit dem usernamen für die Datenbank und in Zeile 18 $config['dbpass'] = ''; mit dem benötigten Passwort gesetzt.

Zitat:
Zitat von Autor der Software
Das ist nicht notwendig. MSD schreibt bei der Erstinstallation selbst in die config.php. Deshalb wird bei der Installation geprüft, ob PHP die Datei beschreiben kann und gibt gegebenenfalls eine Meldung aus. Ein manuelles editieren der config.php ist nicht notwendig.
Ich persönlich hatte Probleme damit, aber das mag eine Einstellung des Servers gewesen sein.
Ihr könnt es ja erst versuchen, dass MSD die config.php beschreibt, und andernfalls nehmt ihr die unkomfortablere Art...


Dann könnt ihr die Daten auf euren webspace hochladen.

Ich nehme für dieses Beispiel einfach mal an, dass sich die Dateien nun unter www.domain.tld/backup befinden.

Bevor ihr nun die Installation startet solltet ihr noch eine paar Verzeichnisse erstellen und diese mit den notwendigen Rechten (chmod 777) ausstatten. Das kann man bequem mit dem ftp-tool machen.
  • work
  • work/backup
  • work/config
  • work/log
  • work/structure


Zitat:
Zitat von Autor der Software
Dieser manuelle Schritt ist nur notwendig wenn der Server den Safemode eingeschaltet hat. Sonst legt MSD die Verzeichnisse selbst an und versieht sie auch automatisch mit den notwendigen Rechten.

Durch diese umständlich scheinenden Vorbereitungen (welche anhängig von der Serverkonfiguration sind) kann man einige Probleme der Installation umgehen.

Nun also die www.domain.tld/backup/install.php aufrufen und die Sprache auswählen. Im nächsten Schritt dann 'MySQLDumper ohne Installation starten' wählen.
Nun sollte soweit alles konfiguriert sein.


Es kann also das Backup-Programm durch Aufruf über den Browser gestartet werden.
Durch die Auswahl des Menü-Punktes 'Backup' kann man nun Backups erstellen. Dazu sollte JavaSkript aktiviert sein, da sich das Skript mehrfach selbst aufruft um so einem timeout zu entgehen.
Das Backup-file wird unter /work/backup/ in gepackter Form (gz) gespeichert.

Das Wiederherstellen ist ebenso einfach über Wiederherstellen/restore zu erreichen.
Dann einfach das gewünschte Backup auswählen und los geht es...


Soweit so gut - damit wäre es ein funktionierendes tool, aber die schöne Seite dieses Programmes kommt erst noch!

Über configuration/Konfiguration kann man:
  • die Sprache für die Oberfläch wählen: Spanisch, Englisch und Deutsch.
  • einstellen, dass man eine eMail zugestellt bekommen möchte, wenn ein Backup erstellt wurde
  • einstellen, ob man das Backup als Anhang an die eMail haben möchte und bis zu welcher Größe das nur angehängt werden darf.
  • ob das Backup auf einen ftp-Server geschickt werden (kann man zB dann wählen, wenn sein Heim-PC immer online ist und man per dyndns einen ftp-Server daheim stehen hat. So kann man die Backups immer lokal abspeichern).
Das meiner Meinung nach schönste ist aber die Möglichkeit, dass dieses Skript auch per Cronjob aufgerufen werden kann. Dazu bedarf es der Möglichkeit PERL-Skripte ausführen zu können.
Wer über keine eigene cronjobs verfügt kann sich mit div. Anbietern behelfen. Ich nenne an dieser Stelle mal die Dienste von www.cronjob4you.at.

Damit das aber funktioniert sind ein paar Vorbereitungen notwendig.
In den 'Einstellungen' --> 'cronscript' habe ich dafür folgendes eingestellt:



Laut 'Backup' --> 'Backup Perl'
müßte sich nun bei Aufruf von www.domain.tld/backup/msd_cron/crondump.pl?config=mysqldumper.conf das Skript starten.
Da aber in der Regel das Verzeichnis in dem Perl-Skripte ausgeführt werden das cgi-bin - Verzeichnis ist, bedarf es einiger weiterer Einstellungen.

Diese werden unter Credits/Hilfe erklärt:
Zitat:
1. Rufe im MySQLDumper die Seite Backup auf und klicke auf "Backup Perl".
2. Kopiere den Pfad, der hinter Eintrag in crondump.pl für $absolute_path_of_configdir: steht.
3. Öffne die Datei "crondump.pl" im Editor.
4. Trage den kopierten Pfad dort bei absolute_path_of_configdir ein (keine Leerzeichen).
5. Speichere crondump.pl .
6. Kopiere crondump.pl, sowie perltest.pl und simpletest.pl ins cgi-bin-Verzeichnis (Ascii-Modus im FTP).
7. Gebe den Dateien die Rechte 755.
7b. Wenn die Endung cgi gewünscht ist, ändere bei allen 3 Dateien die Endung von pl -> cgi (umbenennen).
8. Rufe die Konfiguration im MySQLDumper auf.
9. Wähle die Seite Cronscript.
10. Ändere Perl Ausführungspfad in /cgi-bin/ .
10b. Wenn die Scripte .pl haben, ändere die Dateiendung auf .cgi .
11. Speichere die Konfiguration.
Nun wird unter 'Backup' --> 'Backup Perl'
ein falscher Pfad für den 'Aufruf im Browser oder für externen Cronjob' genannt.
richtig ist nun:
www.domain.tld/cgi-bin/crondump.pl?config=mysqldumper.conf

Das ist auch das, was ich bei dem cronjob eingeben müßt. Bei dem Dienst von cronjob4you.at wurde dafür die 'Endung' .conf nach Absprache freigeschaltet.



Sicherheit:
Da nun theoretisch jeder ein altes Backup wieder einspielen kann empfehle ich das Verzeichnis /backup mittels .htaccess zu schützen.
Wie das geht erfahrt hier zB hier: selfhtml
Damit wird das Backup-Control-Panel geschützt, das Perl-Skript kann aber weiterhin aufgerufen werden.


Zitat:
Zitat von Autor der Software
Wer als Admin den Dumper nicht vor Fremdzugriffen schützt handelt grob fahrlässig. Es muss doch jedem klar sein, dass ein ungeschütztes Browserscript von jedem aufgerufen werden kann.
Da man mit dem Dumper auch Tabellen und Datenbanken löschen kann, ist klar, welches Risiko das bedeutet.
Nach Angaben des Autoren läßt sich ein Verzeichnisschutz auch mittels MSD erstellen.


Vorteil:
Der absolute Vorteil dieser Lösung ist die Möglichkeit ein Backup mit Perl zu erstellen um so einem time-out des Browsers zu entgehen und damit verbunden die Möglichkeit auch größere Datenbanken sichern zu können.


Bei Problemen mit der Software gilt wie immer: den Hersteller fragen. Dafür wird ein Forum bereitgestellt:
www.mysqldumper.de/board/

Anmerkung:
Komfortabler kann man Datenbank-Backups mit der Konsole machen, wenn man dazu die Möglichkeit hat! Dazu
[Shell] Datenbank-Backup per Konsole

Alte Backups-files wieder löschen:
Um den meist knappen Speicherplatz nicht mit zig Backup-Dateien vollzu-'müllen', welche sich auf kurz oder lang ansammeln werden, bietet MSD eine Einstellung an, alte Backups wieder zu löschen.

Die kann unter 'Konfiguration' -> 'automatisches Löschen' gefunden werden.


Jetzt solltet Ihr eigentlich in der Lage sein, ein regelmäßiges Backup zu machen.

Solltet Ihr Fragen zu dem Tutorial haben, so schreibt bitte einen Beitrag im Forum mit einem Verweis auf dieses Tutorial.
Danke.

Ich hoffe, dass ich Euch hier etwas weiterhelfen konnte.
Bei Verbesserungsvorschlägen würde ich mich über eine Nachricht freuen.

Grüße Jann Hendrik

Geändert von Jann Hendrik (27.03.2008 um 11:10 Uhr).
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[PHP] Mit PHP dynamisch einen RSS-Feed aktualisieren Jann Hendrik Tutorials 0 13.03.2007 09:52
Problem bei Verarbeitung von Templates (Eigene Klassen) dago PHP-Programmierung 21 31.08.2006 16:02
[PHP] Ein sessionbasiertes Loginsystem Ben Tutorials 17 25.12.2005 21:07
Datenbank und Sicherheit sparrow Datenbanken 23 05.11.2005 17:45
[PHP] MySQL-db basiertes Gästebuch Jann Hendrik Tutorials 0 15.02.2005 12:32


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:40 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44