Manual:Backing up a wiki/de

From MediaWiki.org

Jump to: navigation, search

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.

Contents

[edit] Ü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.

[edit] 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 in der mysqldump-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

[edit] 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, AdminSettings.php), 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-Format hat; eine Kompression ist bei Bedarf möglich. Unter Windows können dazu Programme wie WinZip verwendet werden.

[edit] Cache leeren

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

[edit] 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, das sich im maintenance-Verzeichnis Ihrer MediaWiki-Installation befindet. Führen Sie den php dumpBackup.php 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-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. 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 und importDump.php können Sie MWDumper benutzen, was zwar schneller ist, jedoch eine Java-Laufzeitumgebung benötigt.

[edit] Skripts

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