Manual:Backing up a wiki/de

Wie bei jedem derartigen System ist es wichtig, regelmäßig die Daten des Wikis zu sichern. Diese Seite bietet einen Überblick über den Sicherungsvorgang für ein typisches MediaWiki-Wiki; möglicherweise möchten Sie Ihre eigenen Sicherungsskripte oder Zeitpläne anlegen, die an die Größe Ihres Wikis und Ihre individuellen Bedürfnisse angepasst sind.

Übersicht
MediaWiki speichert wichtige Daten an zwei Orten:


 * Datenbank : Seiten und ihr Inhalt, Benutzer und ihre Einstellungen, Metadaten, den Suchindex usw.
 * Dateisystem : Konfigurationsdateien, angepasste Skins, Erweiterungen, Bilder (inkl. gelöschte Bilder) usw.

Sie sollten in Erwägung ziehen, Ihr Wiki vor der Datensicherung read-only, also schreibgeschützt zu machen - siehe auch Manual:$wgReadOnly. Dadurch wird sichergestellt, dass alle Teile der Datensicherung vollständig und fehlerfrei sind.

Datenbank
Die meisten wichtigen Daten des Wikis werden in der Datenbank gespeichert, die i.d.R. sehr leicht zu sichern ist. Wenn Sie das MySQL-Backend benutzen (standardmäßig), stehen Ihnen verschiedene Tools zur Verfügung, um die Datenbank in eine Datei zu "dumpen" (engl. dumping, bedeutet soviel wie "exportieren"). Die dadurch erzeugte Skriptdatei kann verwendet werden, um die Datenbank von Grund auf neu einzurichten.

Das MySQL-Dump-Tool beispielsweise ist ein Kommandozeilenprogramm, das eine Dump-Datei mit dem Namen der Datenbank(en) erzeugen kann. Das Programmverhalten kann durch Standard-Parameter verändert werden, die das Format der Ausgabedatei z.B. durch Setzen des Zeichensatzes anpassen.

Es gibt auch andere Tools, wie zum Beispiel das (kommerzielle) MySQL-Hot-Backup-Utility, das InnoDB-Tabellen während der Laufzeit sichern kann, sowie das bekannte Open-Source-Tool phpMyAdmin, eine webbasierte Anwendung, die zahlreiche Funktionen bietet, um mit einer MySQL-Datenbank zu arbeiten, darunter eben auch ein ausführliches Tool zum Exportieren (Dumpen) von Datenbanken.

Eine beispielhafte Kommandozeile, die Sie von Ihrer Crontab aus starten, könnte so aussehen: /usr/bin/nice -n 19 /usr/bin/mysqldump -u $BENUTZER -p $PASSWORT $DATENBANK -c | /usr/bin/nice -n 19 /bin/gzip -9 > ~/backup/wiki-$DATENBANK-$(date '+%a').sql.gz

Verwenden Sie passende Werte für $BENUTZER, $PASSWORT und $DATENBANK. Durch dieses Skript wird eine Sicherungsdatei mit dem Wochentag im Dateinamen erstellt, so dass Sie ein fortlaufendes Set von Datensicherungen haben. Wenn Sie die Dateien und Erweiterungen ebenfalls speichern möchten, könnten Sie zum Beispiel dieses Tool benutzen.


 * Zeichensatz

Warnung für MySQL 4.1 und jüngere Versionen: Bei einigen allgemeinen Konfigurationen könnte mysqldump die in der Datenbank gespeicherten Artikeltexte beschädigen. Wenn der Zeichensatz Ihrer Datenbank auf "latin1" statt "UTF-8" gesetzt ist, wird mysqldump eine Zeichensatzkonvertierung durchführen, die beispielsweise Umlaute im Text zerstören könnte.

Sie können sich ansehen, welchen Zeichensatz Ihre Tabellen benutzen, wenn Sie einen MySQL-Befehl wie SHOW CREATE TABLE text verwenden. Die letzte Zeile wird dann einen DEFAULT CHARSET-Teil enthalten.

Wenn die letzte Zeile keinen DEFAULT CHARSET-Teil enthält und Sie wissen, dass der Zeichensatz von niemandem verändert wurde, seit die Datenbank eingerichtet wurde, und dass die Wiki-Datenbank mit dem Standard-Zeichensatz der Datenbank erstellt wurde, dann gibt es noch einen anderen Weg, den Zeichensatz herauszufinden: Der STATUS-Befehl zeigt den Standard-Zeichensatz des Datenbankservers (bei Server characterset:). Hier eine Beispielausgabe:

 mysql> status - - - - - - - - - mysql Ver 12.22 Distrib 4.0.20a, for Win95/Win98 (i32) Connection id:         13601 Current database: Current user:          root@localhost SSL:                   Not in use Server version:        4.0.20a-nt Protocol version:      10 Connection:            localhost via TCP/IP Client characterset:   latin1 Server characterset:   latin1 TCP port:              3306 Uptime:                27 days 4 hours 58 min 26 sec 

Benutzen Sie die Option --default-character-set=latin1</tt> in der mysqldump</tt>-Kommandozeile, um die Zeichensatzkonvertierung zu verhindern, sofern der o.g. Standardzeichensatz auf "latin1" eingestellt ist.

Zum Beispiel so: /usr/bin/nice -n 19 /usr/bin/mysqldump -u $BENUTZER -p$PASSWORT --default-character-set=$ZEICHENSATZ $DATENBANK -c | /usr/bin/nice -n 19 /bin/gzip -9 > ~/backup/wiki-sql-$(date '+%a').sql.gz

Dateisystem
Andere Komponenten des Wikis werden von MediaWiki im Dateisystem gespeichert, zumindest dort, wo es sich besser als eine Datenbank eignet, zum Beispiel bei Konfigurationsdateien (LocalSettings.php</tt>, AdminSettings.php</tt>), Bilddateien (inklusive gelöschte Bilder, Thumbnails, mathematische Formeln und SVG-Bilder, sofern vorhanden), Anpassungen des Skins, Erweiterungsdateien usw.

Der beste Weg, diese Dateien zu sichern, liegt darin, sie in eine Archivdatei zu packen, die zum Beispiel das .tar</tt>-Format hat; eine Kompression ist bei Bedarf möglich. Unter Windows können dazu Programme wie WinZip verwendet werden.

Cache leeren
Möglicherweise müssen Sie den Cache leeren, insbesondere dann, wenn Sie Einstellungen im Übertragungsprozess geändert haben. Siehe auch Hilfe dazu.

XML-Dump
Es ist auch eine gute Idee, einen XML-Dump zusätzlich zum Datenbank-Dump zu erstellen. XML-Dumps enthalten den Inhalt des Wikis (Wiki-Seiten mit allen Versionen oder wahlweise nur der letzten Version), jedoch ohne die verwandten Daten (keine Benutzeraccounts, keine Bild-Metadaten, keine Protokolle usw.). XML-Dumps sind von der Datenbankstruktur unabhängig und können in zukünftige (und auch ältere) Versionen von MediaWiki importiert werden. Solche Dumps verursachen meistens auch weniger Probleme mit Zeichensätzen und können leicht von Tools Dritter verarbeitet werden, was sie zu einer guten Absicherung macht, sollte Ihr Hauptdatenbank-Dump unbrauchbar geworden sein.

Um einen XML-Dump zu erstellen, benutzen Sie das Kommandozeilentool dumpBackup.php</tt>, das sich im maintenance</tt>-Verzeichnis Ihrer MediaWiki-Installation befindet. Führen Sie den php dumpBackup.php</tt> ohne irgendwelche Parameter aus, um eine Erklärung der Syntax des Befehls anzeigen zu lassen. Sie müssen bei der Ausführung festlegen, ob Sie eine vollständige Sicherung aller Versionen jeder Seite oder nur die aktuellen Inhalte der Seiten sichern möchten.

Wenn der Versuch, dumpBackup.php zu benutzen, scheitert, prüfen Sie, ob die Erstellung einer AdminSettings.php</tt>-Datei das Problem löst.

Sie können auch für einen Teil der Seiten online einen XML-Dump erstellen, indem Sie die Export-Spezialseite (Special:Export) benutzen, auch wenn der Versuch, größere Textmengen oder längere Versionengeschichten mit diesem Tool zu sichern, meistens an einem Timeout scheitert.

Um einen XML-Dump in Ihr Wiki zu importieren, benutzen Sie das Kommandozeilentool importDump.php</tt>. Für wenige Seiten können Sie auch die Import-Spezialseite benutzen, was aber normalerweise auf die sysop-Benutzergruppe beschränkt ist.

Als Alternative zu dumpBackup.php</tt> und importDump.php</tt> können Sie MWDumper benutzen, was zwar schneller ist, jedoch eine Java-Laufzeitumgebung benötigt.

Skripts

 * Inoffizielles Sicherungsskript von Duesentrieb: ; erstellt eine Sicherung aller Dateien, einen Datenbank- und einen XML-Dump. Verwendung auf eigene Gefahr (was ja eigentlich auf das ganze MediaWiki zutrifft).