Sicherung und Wiederherstellung FAQ
Wie sichere ich einen Kurs?
Siehe Kurssicherung und Automatische Kurssicherung.
Wie stelle ich einen Kurs wieder her?
Siehe Kurswiederherstellung.
Wie sichere ich meine gesamte Moodle-Installation?
Siehe Sicherung der Moodle-Installation.
Was sind die Pros und Cons von Kurssicherung bzw. Sicherung der Moodle-Installation?
Die Sicherung der Moodle-Installation wird empfohlen, um eine vollständige Sicherung aller relevanten Daten für den Notfall schnell verfügbar zu haben.
Die Automatische Kurssicherung ist teurer in Bezug auf Zeitaufwand, CPU-Last und Speicherplatzbedarf. Auch die Wiederherstellung Ihrer Moodle-Installation im Notfall dauert länger. Kurssicherungen sind nützlich, um "frische" Kopien von Kursen zu haben, die wiederverwendet werden sollen, sie sollten aber niemals als alleinige Backup-Strategie dienen (es sei denn, Ihr Hosting-Provider erlaubt keine vollständige Sicherung der Moodle-Installation).
Warum sind die automatischen Kurssicherungen viel kleiner als die manuell erstellten Kurssicherungen?
Das hat mit Code-Design zu tun. Aufgrund der Art, wie Dateien in Moodle 2 verwaltet werden, müssen Dateien nicht (mehr) in die Kurssicherung einbezogen werden, wenn Sie Kurse in derselben Moodle-Site wiederherstellen wollen. Deshalb werden Dateien bei der automatischen Kurssicherung ausgeschlossen, was den Speicherplatzbedarf und den Zeitaufwand erheblich reduziert.
Welche Daten sind in einer Kurssicherung nicht enthalten?
Wenn Sie bei einer Kurssicherung alle Optionen auswählen, dann werden fast alle kursspezifischen Daten gesichert. Beachten Sie jedoch, dass folgendes nicht gesichert wird:
- Testfragen werden nur gesichert, wenn mindestens eine Frage einer Fragenkategorie tatsächlich zu einem Test gehört.
- Bewertungsskalen werden nur gesichert, wenn sie in mindestens einer Lernaktivität verwendet werden.
Der Prozess endet mit einer Fehlermeldung: Error: An error occurred deleting old backup data. Was kann ich tun?
Es kann passieren, dass das Sichern oder Wiederherstellen eines Kurses mit der Fehlermeldung
"Error: An error occurred deleting old backup data".
endet, d.h. alte Sicherungsdaten nicht gelöscht werden können. Im einzelnen passiert während des Prozesses der Kurssicherung oder -wiederherstellung folgendes:
- Alte Datensätze aus der Tabelle mdl_backup_ids der Moodle-Datenbank löschen: Prüfen Sie, ob diese Tabelle existiert, reparieren Sie ggf. die Tabelle und versuchen Sie es erneut.
- Alte Datensätze aus der Tabelle mdl_backup_files der Moodle-Datenbank löschen: Prüfen Sie, ob diese Tabelle existiert, reparieren Sie ggf. die Tabelle und versuchen Sie es erneut.
- Alte Dateien im Unterverzeichnis moodledata/temp/backup des Moodle-Datenverzeichnisses löschen: Löschen Sie dieses Unterverzeichnis auf dem Server und versuchen Sie es erneut.
Bemerkung zu den Punkten 1 und 2: Es gibt verschiedene Möglichkeiten, Tabellen in der Moodle-Datenbank zu reparieren, u.a. mit Hilfe von MySQL Admin.
Bemerkung zu Punkt 3: Die Fehlermeldung besagt, dass das Unterverzeichnis moodledata/temp/backup nicht leer ist und gibt den Pfad zu diesem Unterverzeichnis aus. Wenn Sie per FTP auf dieses Unterverzeichnis zugreifen, können Sie den Inhalt prüfen und löschen. Es kann sein, dass das Unterverzeichnis einfach weitere, leere Verzeichnisse enthält - löschen Sie diese. Oder löschen Sie das gesamte Verzeichnis moodledata/temp/backup. Das kann u.U. etwas länger dauern, aber dafür evtl. mehrere Probleme auf einmal lösen.
Der Prozess endet mit einer Fehlermeldung: XML error: not well-formed (invalid token) at line YYYY. Was kann ich tun?
Dieses Problem kann zu jedem Zeitpunkt beim Wiederherstellungsprozess auftreten. Das passiert, wenn der XML-Parser einen Fehler in der Sicherungsdatei findet, der eine korrekte Ausführung des Prozesses verhindert. Normalerweise wird das durch "unzulässige" Zeichen verursacht, die beim Kopieren von Texten in den Kurs gelangt sind (Steuerzeichen, unzulässige Zeichenfolgen, ...)
Um den Fehler zu beheben, gehen Sie folgendermaßen vor:
- Entpacken Sie die Kurssicherungsdatei in einem leeren Verzeichnis.
- Öffnen Sie die Datei moodle.xml im Firefox. Der Browser zeigt Ihnen an, an welcher Stelle (exaktes Zeichen) das Problem auftritt.
- Bearbeiten Sie die Datei moodle.xml in einem UTF8-kompatiblen Text-Editor und löschen Sie die unzulässigen Zeichen. Speichern Sie Ihre Änderungen.
- TPrüfen Sie die Datei moodle.xml erneut im Firefox. Wiederholen Sie diese Schritte, bis keine Fehler mehr angezeigt werden.
- Zippen Sie den gesamten Verzeichnisinhalt (nicht das Verzeichnis selbst!).
- Stellen Sie den Kurs wieder her. Das sollte nun funktionieren.
- Die Kurswiederherstellung funktioniert immer noch nicht? Siehe nächste Frage.
Außerdem empfehlen wir, das Problem im Moodle-Kurs selbst zu beheben (also dieunzulässigen Zeichen aus den entsprechenden Stellen im Kurs zu löschen). Wenn Sie die Fehler direkt im Kurs beheben, dann gibt es bei der nächsten Kurssicherung keine erneuten Probleme.
Der Prozess endet mit einer Fehlermeldung: moodle xml not found at root level of zip file. Was kann ich tun?
Wenn Sie aus einer gezippten Kurssicherungsdatei wiederherstellen, stellen Sie sicher, dass die Datei moodle.xml im Wurzelverzeichnis liegt. Gehen Sie dazu folgendermaßen vor:
- Entpacken Sie die Kurssicherungsdatei (Beispiel: mycourse.mzb)
- Nach dem Entpacken öffnen Sie das Hauptverzeichnis (Beispiel: mycourse).
- Markieren Sie die (Unter-)Verzeichnisse im Hauptverzeichnis (Beispiel: mycourse) UND die Datei moodle.xml und erstellen Sie für die markierten Einträge eine ZIP-Datei (Beispiel: mycourse_new.mbz).
- Laden Sie die neue Kurssicherungsdatei in Moodle hoch (Beispiel: mycourse_new.zip) und stellen Sie daraus den Kurs wieder her.
Wenn die Kurssicherungsdatei korrekt ist, prüfen Sie die Pfade zu externen Dateien (zip, unzip). Fehlerhafte Einstellungen führen ebenfalls zu Fehlermeldungen (siehe diese Diskussion moodle.xml not found in root... und MDL-14812).
Der Prozess endet mit einer Fehlermeldung: An error occurred while copying the zip file... Was kann ich tun?
Dieses Problem wird wahrscheinlich durch ein Rechteproblem im Zeilverzeichnis verursacht. Kurssicherungsdateien werden nach moodledata/XXX/backupdata kopiert (wobei XXX die Kurs-ID des gesicherten Kurses ist).
Das Problem kann auch auftreten, wenn die Festplatte voll ist.
Um genauere Informationen zu erhalten, aktivieren Sie das Debugging auf der Seite Website-Administration > Server > Debugging (wählen Sie die höchste Stufe - DEVELOPER) und prüfen Sie die Fehler-Logdateien des Webserver.
Ich erhalte immer noch eine XML-Fehlermeldung. Wie kann ich die verkorkste XML-Datei bereinigen?
In einigen Fällen können die XML-Dateien der Kurssicherung Zeichen enthalten, die zum Abbruch der Kurswiederherstellung führen, sogar nachdem Sie die Schritte in der vorherigen Frage befolgt haben. Probiern Sie dann Folgendes:
- Laden Sie das Werkzeug Atlassian XML Cleaner Utility von der Website JIRA Atlassian site herunter.
- Entpacken Sie die problematische Kurssicherungsdateiin einem leeren Verzeichnis. Moodle erzeugt die Kursdateienverzeichnisse und die Datei moodle.xml. Bitte verwenden Sie zum Entpacken die Moodle-Entpacken-Funktionalität.
- Benenne Sie die korrupte Datei moodle.xml um in moodle-unclean.xml.
- Wenn Sie keinen Kommandozeilenzugriff auf den Moodle-Server haben, zippen Sie nur die Datei moodle-unclean.xml mit der Moodle-Zippen-Funktionalität, laden Sie die ZIP-Datei herunter und entpacken Sie sie lokal. Es ist sehr wichtig, die gezippte XML-Datei herunterzuladen, um unerwünschte Zeichen beim Wechsel von einem Betriebssystem zu einem anderen zu vermeiden.
- Verschieben Sie das heruntergeladene Werkzeug Atlassian XML Cleaner Utility in dasselbe Verzeichnis wie die Datei moodle-unclean.xml.
- Führen Sie folgenden Befehl über die Kommandozeile aus:
java -jar atlassian-xml-cleaner-0.1.jar moodle-unclean.xml > moodle.xml
- Wenn Sie das Werkzeug auf Ihrem lokalen Rechner gestartet haben, zippen Sie die gerade erzeugte (und hoffentlich saubere) Datei moodle.xml und laden Sie sie an dieselbe Stelle hoch, von der Sie die Datei moodle-unclean.xml heruntergeladen haben. Entpacken Sie die Datei mit der Moodle-Entpacken-Funktionalität.
- Zippen Sie alles erneut (den gesamten Verzeichnisinhalt, aber nicht das Verzeichnis selbst!).
- Stellen Sie den Kurs wieder her. Das sollte nun funktionieren.
Was bedeutet die Meldung: Einige Ihrer Kurse wurden nicht gesichert.?
Es gibt drei mögliche Gründe für diese Meldung:
- Fehler - das passiert, wenn bei der automatischen Kurssicherung ein Fehler aufgetreten ist und die Sicherung eines bestimmten Kurses nicht abgeschlossen werden konnte. Das sind "kontrollierte" Fehler, d.h. die automatische Kurssicherung wird einfach mit dem nächsten Kurs fortgesetzt.
- Nicht abgeschlossen - das passiert, wenn die Kurssicherung aus ungeklärten Gründen abbricht. Wenn der Cron-Job das nächste Mal ausgeführt wird, erkennt er, dass die letzte automatische Kurssicherung fehlgeschlagen ist und setzt die Sicherung fort, wobei der problematische Kurs übersprungen wird. Eine mögliche Lösung besteht darin, die Apache/PHP Limits zu erhöhen (memory, time of execution...). Wenn Sie einen Blick in Ihre Log-Dateien werfen, können Sie prüfen, ob das Problem in ganz bestimmten Zeitintervallen auftritt (das deutet darauf hin, dass die PHP-Einstellung max_execution_time zu niedrig gesetzt ist).
- Übersprungen - das passiert, wennn ein Kurs für Teilnehmer nicht verfügbar ist und im letzten Monat (31 Tage lang) nicht geändert wurde. Das ist keine Fehlersituation, sondern entspricht der normalen Moodle-Funktionalität, um insbesondere bei großen Installationen mit vielen alten, nicht verfügbaren Kursen die Prozessdauer zu verkürzen.
Warum werden einige Kurse bei der automatischen Kurssicherung übersprungen?
Die Routinen der Automatischen Kurssicherung von Moodle werden angewiesen, Kurse automatisch zu überspringen, basierend auf drei Einstellungen unter dem Menupunkt Website-Administration (oder im Block Einstellungen) > Website-Administration) > Kurse > Sicherung > Automatische Sicherung. Die Moodle-Administratoren verwenden diese Einstellungen, um festzulegen, ob die automatische Kurssicherung Verborgene Kurse überspringen (Standard: 'Ja'), Unveränderte Kurse überspringen (Standard: '30 Tage'), und Seit der letzten Sicherung unveränderte Kurse überspringen (Standard: 'Nein') soll. Bei der automatischen Kurssicherung werden all jene Kurse übersprungen, die ein Kriterium erfüllen.
Warum bricht die Kurswiederherstellung ab?
Wenn Sie versuchen, einen Kurs in einer älteren Moodle-Version wiederherzustellen als der, in der der Kurs gesichert wurde, dann kann dies zu Fehlern und zum Abbruch der Kurswiederherstellung führen. Achten Sie also darauf, dass die Moodle-Version bei der Wiederherstellung dieselbe ist wie bei der Sicherung oder neuer als die Sicherung.
Wenn die Wiederherstellung unerwartet und ohne Fehlermeldung abbricht, dann aktivieren Sie das Debugging und versuchen Sie es erneut. Die dann angezeigten Fehlermeldungen können bei der Problemlösung helfen - wenden sie sich damit an die Experten in den jeweiligen Foren des Kurses Using Moodle auf moodle.org.
Die Wiederherstellung bricht mit folgender Meldung ab: "Der Versuch, das Nutzerkonto XXX wiederherzustellen, wird Probleme bereiten"
Diese Meldung wird angezeigt, wenn
- die Moodle-Site, in der Sie den Kurs wiederherstellen, ein Nutzerkonto XXX (XXX ist der Anmeldename) hat - oft der Administrator,
- die Kurssicherung einen Nutzer XXX (derselbe Anmeldename) enthält und
- diverse Prüfungen ergeben, dass diese Nutzerkonten XXX in der Zielseite und in der Sicherungsdatei nicht übereinstimmen.
Wenn die Punkte 1, 2 und 3 gleichzeitig zutreffen, bricht die Kurswiederherstellung ab, um zu verhindern, dass die Aktivitäten von Nutzer/in XXX (Forumsbeiträge, Testversuche, Aufgabeneinreichungen usw. ) mit dem Nutzerkonto XXX der Ziel-Site verknüpft werden.
Damit beide Nutzerkonten als übereinstimmend erkannt werden, können Sie Folgendes tun:
a) Entpacken Sie die Kurssicherungsdatei mittels unzip und ändern Sie in der Datei users.xml den entsprechenden Nutzer-Datensatz so, dass die Datenfelder email
und <firstaccess> mit den entsprechenden Werten der Ziel-Moodle-Site übereinstimmen, in der Sie den Kurs wiederherstellen wollen.
b) Ändern Sie die Ziel-Moodle-Site und setzen Sie die Datenfelder email
und <firstaccess> so, dass sie mit den Daten aus der Datei users.xml übereinstimmen.
c) Ab Moodle 3.0.3 und nur bei Konflikten mit dem Administrator-Nutzerkonto aktivieren Sie die Einstellung Zulassen, dass Administratoren den Konflikt lösen auf der Seite Website-Administration > Kurse > Sicherung > Standardwerte für den Import. Das führt dazu, dass der Nutzername in der Kurssicherungsdatei umbenannt wird in admin_xyz.
Warum funktionieren einige Links im wiederhergestellten Kurs nicht (mehr)?
Damit Links bei der Kurssicherung- und wiederherstellung korrekt dargestellt werden, müssen die Links als vollständige URLs angegeben sein, z.B. http://site.com/mod/resource/view.php?id=xxx
.
Relative URLs, z.B. /mod/resource/view.php?id=xxx
, ../resource/view.php?id=xxx
oder view.php?id=xxx
können nicht korrekt gesichert und wiederhergestellt werden.
Die Kurswiederherstellung führt zu zerstörten HTML-Tags. Was kann ich tun?
Das wird durch ältere Versionen von libxml2 und PHP verursacht - versuchen Sie, auf die neuesten Versionen zu aktualisieren.
Wie kann ich die Originaldateien aus einer Moodle-Kurssicherungsdatei extrahieren?
Wenn Sie tatsächlich die Originaldateien aus einer heruntergeladenen Kurssicherungsdatei (eine *.mbz Datei) extrahieren wollen, dann können Sie das auf dieselbe Weise tun wie oben beschrieben.
Die Kurssicherungsdatei kann mit jedem Zip/Unzip-Programm geöffnet werden. Wenn Sie die Datei geöffnet haben, müssen Sie Folgendes extrahieren:
- die Datei files.xml
- das Verzeichnis files
Im nächsten Schritt öffnen Sie die Datei files.xml in einem Text-Editor und dann:
- Suchen Sie nach dem Namen der Datei(en), die Sie extrahieren wollen.
- Notieren Sie sich den Wert des zugehörigen Tags contenthash.
- Im Verzeichnis files suchen Sie nach der Datei, die denselben Namen wie der contenthash hat und die stets in einem Unterverzeichnis liegt, dessen Namen mit denselben zwei Buchstaben beginnt wie der Wert von contenthash.
Beispiel: Nehmen wir an, Sie haben eine Kurssicherungsdatei backup_courses-120730.mbz, aus der die Datei files.xml und das Verzeichnis files entpackt wurden, und es gibt eine Datei Leadership.pdf, die für andere Zwecke gebraucht und daher extrahiert werden muss.
Öffnen Sie die Datei files.xml.
1. Suchen Sie nach der Zeichenkette Leadership.pdf, die in unserem Beispiel unter dem folgenden <file id...> Tag gefunden wurde:
<file id="12345"> <contenthash>fb6cf43a9b2d432403c70a2cb4c340dbb6225631</contenthash> : <filename>Leadership.pdf</filename> : <license>allrightsreserved</license> <sortorder>1</sortorder> </file>
2. Notieren Sie sich den Wert von contenthash: fb6cf43a9b2d432403c70a2cb4c340dbb6225631.
3. Da die ersten beiden Buchstaben von contenthash die Buchstaben fb sind, öffnen Sie im Verzeichnis files das Unterverzeichnis fb. Dort finden Sie eine Datei fb6cf43a9b...". Benennen Sie dies Datei um in Leadership.pdf und speichern Sie diese Datei an anderer Stelle.
Wiederholen Sie die Schritte 1-3 für alle Dateien, die Sie benötigen.
Fehlermeldung: MySQL dmlwriteexception error bei der Kurswiederherstellung
Wenn Sie bei der Kurswiederherstellung eine Fehlermeldung dmlwriteexception error erhalten, dann empfehlen wir, InnoDB-Tabellen in der Moodle-Datenbank in das Barracuda-Dateiformat zu konvertieren. Siehe Abschnitt InnoDB-Datenbanktabellen in Barracuda konvertieren im Artikel Administration über Kommandozeile für Details zum Warum und Werkzeuge für die Konvertierung der Tabellen.
Weitere Fragen?
Schreiben Sie bitte in das Backup and Restore-Forum im Kurs Using Moodle auf moodle.org.
Siehe auch
- Backup and Restore-Forum im Kurs Using Moodle auf moodle.org
- databasejournal.com article on repairing database corruption in MySQL - englischsprachiger Artikel
- Sicherung der Moodle-Installation
- Moodle Migration
Diskussionsbeiträge im Kurs Using Moodle auf moodle.org: