Wie führe ich ein komplettes Backup durch?

Wie führe ich ein komplettes Backup durch?

von Björn Stephan -
Anzahl Antworten: 5
Hallo zusammen,

folgende kurze Frage zum Verständnis:
"Wie sichert man am besten seine Lernumgebung (ohne Hoster)?"

Wenn ich die Thematik richtig verstanden habe setzt sich die Sicherung aus zwei Komponenten zusammen.
Bei einer Komplettsicherung müsste ich die Datenbank exportieren und die Verzeichnisse wegsichern.

  1. Wie kann man das automatisieren?
  2. Kann ich auf die moodle-eigene Sicherung zurückgreifen - was müsste ich zusätzlich kopieren?
  3. Wie richtet ihr eure Backups ein? Könnt ihr etwas empfehlen?

Vielen Dank und Grüße
Björn

Anzahl der Bewertungen:  -
Als Antwort auf Björn Stephan

Re: Wie führe ich ein komplettes Backup durch?

von Maik Riecken -
Gähn...

Forensuche... Oder, um einmal Werbung zu machen: http://www.moodleschule.de, Rubrik "Technik", Kurs "Administration von Moodle". Ansonsten sind mysqldump und rsync deine absoluten Freunde... Google und deren manpage (ich weiß, dass das nervt) bringen dich sofort Jahrhunderte weiter.

Gruß,

Maik
Als Antwort auf Maik Riecken

Re: Wie führe ich ein komplettes Backup durch? // Strategie

von Björn Stephan -
Hallo,

hab mich inzwischen in das Thema ein wenig eingelesen. Die Funktionalitäten sind mir jetzt klar.

Mich würde aber trotzdem interessieren, welche Backup-Strategien ihr verfolgt, z.B. wieviele Backupstände vorhalten, in welchen Zyklen welche Komponente sichern, etc...

Leider bin ich auf kein entsprechendes Thema im Forum gestoßen, wo genau diese Fragen auftauchen (auch wenn Ähnliches bisher tausendmal durchgekaut wurde).

Noch ein kurzer Zwischenbemerk:
Habe das PHP-Skript moodle_dumper getestet. Beim Zurückspielen hing sich der Apache auf. Weil mich das stutzig machte habe ich versucht die moodle.sql auf meinem PC (localhost) zu importieren. Gleiches Ergebnis. Gibt es hierfür irgendwelche Erfahrungsberichte???

Grüße
Björn



Als Antwort auf Björn Stephan

Re: Wie führe ich ein komplettes Backup durch? // Strategie

von Maik Riecken -
Hallo Björn,

Für Backupstrategien gibt es keine allgemein gültige Empfehlung. Du bestimmst Zyklen und Komponenten nach deinem persönlichen Sicherheitsbedürfnis. Darüber lassen sich Bücher schreiben!

Meine Erfahrungen mit Backups:
  • hast du es nicht gemacht, stürzt der Server ab
  • hast du es gemacht, lässt es sich nicht wieder einspielen
  • hast du es gemacht und überprüft, ist die einzige Sicherungs CD-ROM im Auto liegen geblieben und durch Sonneneinstrahlung terminiert.
Daraus leiten sich für mich drei Regeln ab:
  1. Mach Backups. Mach sie so, dass diese Arbeit dich nicht nervt oder automatisch abläuft. Das Bewusstsein um die Wichtigkeit von Backups nimmt exponentiell mit der vergangenen Zeit ab.
  2. Überprüfe, ob das Backup funktioniert. Das Restore muss schnell gehen. Gerade in deinem Fall.
  3. Verteile mehrere vollständige Backups auf verschiedenen Datenträger verschiedener Art
  4. Nutze das Geschenk, einen eigenen Server zu haben. Mache Backups über die Konsole. Das geht schnell - Lernaufwand: 2-3 Abende.
Was oft vergessen wird:
Du willst eigentlich kein Backup. Du willst im Falle des Falles ein schnelles Restore deiner Daten in einem möglichst aktuellen Zustand. Deswegen ist dein Ansatz das Funktionieren des Backups auszuprobieren goldrichtig. Kannst du mir nochmal schreiben, was sich das äußert, dass sich der Apache aufhängt? Es ist überhaupt sehr wichtig, hier Fehlermeldungen, genaue Verhaltensweisen usw. zu posten, dann bekomme wir eher Ahnungen von Problemen. moodler_dumper.php hat nämlich ganz klare Grenzen, wenn eine bestimmte Datenbankgröße erreicht ist (ebenso wie phpmyadmin - moodle_dumper.php nutzt dessen Sicherungsroutine und klaubt sich als "luxus" nur die Zugangsdaten automatisch aus der config.php heraus.).

Bei der Wiederherstellung mit phpmyadmin passiert allerdings sehr lange scheinbar nichts (es kommt aber irgendwann ein Fehler - Geduld). Eventuell musstz du in der php.ini einige Werte anpassen, bzw. Rechte am PHP-Tmp-Verzeichnis verändern.

Wenn du Apache als Zombieprozess oder gar nicht mehr in der Ausgabe von top (Konsole) siehst, dann hat er sich tatsächlich aufgehängt - glaube ich aber nicht. Selbst wenn mod_php amok läuft, hält der meist noch die Fahne hoch. Mach dir mal eine Konsole auf dem Server auf, gib da "top" ein und starte das Restore erneut.

Ich sichere unsere Daten periodisch, d.h. wöchentlich mit rsync auf einem billigen Vserver per Shellscript. Das Shellscript fertigt einen Dump der Datenbank an, legt ihn im Moodleverzeichnis ab, und gleicht diesen mit einen gleichartigen Ordner auf dem Vserver ab - dabei werden unterschiedlich Backupstände berücksichtigt und Speicher wird durch Hardlinks gespart. Dieses Setup läuft ohne jedweden Eingriff meinerseits. Zusätzlich sichere ich unregelmäßig manuell auf CD-ROM. Da gibt es tolle fertige Lösungen, z.B. reobackup oder dirvish (für die Shell...).

Wirklich effektiv werden Backups erst über die Konsole. Das mit phpmyadmin und Co. ist ganz nett für den Einstieg, aber aus meiner Sicht nur vermeintlich einfacher.

Soweit mein Senf dazu.

Gruß,

Maik
Als Antwort auf Maik Riecken

Re: Wie führe ich ein komplettes Backup durch? // Strategie

von Björn Stephan -
Hallo Maik,

erst mal großes Dankeschön für deine ausführliche Beschreibung (durch deine Sozialengagement hat dein ausgeschnittenes Profilbild schon jetzt einen Ehrenplatz auf meinem Server inne tongueout).

Hab mir inzwischen ein paar Gedanken zu dem Thema gemacht. Mir schwebt auch schon ein Konzept vor.

Zu dem Restoreproblem:

Der httpd Prozess war noch da, allerdings mit einer CPU Auslastung von ca. 98%!
Nach einer gewissen Wartezeit, erschien im phpmyadmin folgende Fehlermeldung:
Fatal error: Maximum execution time of 300 seconds exceeded in /opt/lampp/phpmyadmin/libraries/import/sql.php on line 43

Meine Datenbank befinden sich noch in dem Zustand "a few days after installation". Demnach nicht allzu groß.

Um welche Werte in der php.ini handelt es sich denn?

Grüße
Björn
Als Antwort auf Björn Stephan

Re: Wie führe ich ein komplettes Backup durch? // Strategie

von Maik Riecken -
Hi Björn,

Er spricht mit dir und bettelt nach Aufmerksamkeit und du hörst ihn nicht.winken. Die Fehlermeldung sagt es:

"maximum execution time of 300 seconds exceeded"

Heißt auf deutsch in etwa:
"Die maximale Ausführungszeit des Scripts wurde überschritten".

Möglichkeit a):
Such mal in der php.ini nach dem Wort "execution". Das geht prima mit Kate, der bei KDE mit an Bord ist - um die Konsole mal wieder zu beschwören: mc (der midnight commander) kann das auch. Wenn unter Windows, dann Ultraedit oder Phase5 oder so. Notepad zerhaut dir die Zeilenumbrüche bzw. deren Kodierung und dann würgt der Apache und macht nach dem Restart gar nichts mehr.

Möglichkeit b):
Lege mal eine neue Datenbank mit phpmyadmin an. Nennen wir sie einmal "$foo". Gehe auf der Konsole in das Verzeichnis, in dem deine moodle.sql-Datei liegt.

Dann folgendes eingeben:
$username sei der MySQL-Nutzer
$passwort sei sein Passwort

mysql -u$username -p$passwort $foo < moodle.sql

Wichtig:
Kein Leerzeichen zwischen -u und $username bzw. -p und $passwort. Nimm eine neue Datenbank $foo!

Meckert er, oder geht es? Mit diesem Befehl spielst du den Dump manuell in die Datenbank ein. Das darf nicht länger als ca. 5-10 Sekunden dauern.

Eventuelle Fehlermeldung posten - könnte an unterschiedliche Zeichensätzen liegen.

Tipp für dich:
Setze die Fehlermeldung (gilt für alle PHP-Fehlermeldungen) in Anführungszeichen und gib sie ins Suchformular (na - nervt es?) von Google ein. Unter den ersten drei bis fünf deutschen Links steht meist die Lösung und der betreffende Parameter der php.ini, an dem du schrauben musst. Du wirst nämlich sehr bald feststellen, dass dir andere Parameter auch nicht gefallen...

Gruß,

Maik