Mediawiki

Aus SchnallIchNet
Wechseln zu: Navigation, Suche

Inside Wiki

wiki internal stuff

sidebar navigation

to add/delete links from you sidebar navigation edit the following site:

MediaWiki:Sidebar


javascript inclusion

edit/create page:

MediaWiki:Common.js


Backup & Maintenance

  TODO: Mach et schoen

Das Sichern und Wiederherstellen einer MediaWiki-Installation zählt zu den lästigen Pflichten eines Systemadministrators, der ein solches Wiki betreut. Allerdings garantiert auch ein regelmäßiges Backup keine wiederherstellbaren Sicherungskopien; komprimierte Backups können nicht nur fehlerhaft sein, sondern auch vollkommen unbrauchbar - beispielsweise wenn wichtige zu sichernde Dateien vergessen werden, oder der Datenbank-Dump eine Zeichensatzkonvertierung durchführt, die nicht-englische Zeichen irreparabel zerstört. Dieser Artikel enthält einige Hinweise, um solche Desaster zu vermeiden.

Das Sichern einer MediaWiki-Installation besteht grundsätzlich aus zwei bzw. drei Schritten:

  1. Sichern der Datenbank
  2. Sichern des Programmverzeichnisses und der Konfigurationsdateien LocalSettings.php und ggf. AdminSettungs.php
  3. Ggf. Sichern von Mediendateien

Auch die Arbeitsschritte beim Wiederherstellen sind überschaubar, wenngleich noch einige zusätzliche Schritt erforderlich sind. Backup

Die prinzipiellen Arbeitsschritte zum Anlegen eines Backups sind: Sichern von Programm- und Mediendatien

Folgender Aufruf sichert das Programmverzeichnis und die Konfigurationsdateien einer MediaWiki-Installation, die sich in $PATH (z.B. /var/www/host/wiki) befindet, und komprimiert die Sicherungskopie mit bzip2:

   # tar cjf wiki.'date +%a'.tar.bz2 $PATH

Auch hier wird die Kurzform des aktuellen Wochentags in den Archivnamen eingefügt.

Wenn die Mediendateien nicht innerhalb von $PATH gespeichert werden, muss eine entsprechende zweite Sicherung hier für angelegt werden. DB-Dump herstellen

Mit folgendem Aufruf wird ein Datenbank-Dump mit der Bezeichnung dump.dbs angelegt:

   # mysqldump -Cc -u$USER -p$PASSWORD --default-character-set=$CHARSET dump.dbs $DATABASE

Auch hier sind wieder die Variablen durch gültige Werte zu ersetzen.

Alternativ kann man für MediaWiki auch das mitgelieferte Skript dumpBackup.php verwenden, das einen XML-Dump generiert. Restore

Die prinzipiellen Arbeitsschritte zum Wiederherstellen eines Backups sind: 1. Wiederherstellen von Programm- und Mediendateien

Entpacken des bzw. der Sicherungsarchive, entweder in der Shell oder - etwas übersichtlicher - in einem Tool wie mc. tar sorgt dafür, dass die Verzeichnisstruktur exakt wiederhergestellt wird. 2. Anlegen der Datenbank

In MySQL:

   mysql> create database wikidb;

3. Zuweisen der DB-Zugriffsrechte

In MySQL:

   mysql> grant create, select, insert, update, delete, lock tables 
   on wikidb.* to 'wikiuser'@'localhost' identified by 'password';
   flush privileges;

4. DB Import

   # mysql -u$USER -p$PASSWORD $DATABASE < dump.dbs

Hinweis: $DATABASE mus bei gesicherter und wiederhergestellter Datenbank nicht identisch sein. Will man also beispielsweise seine MediaWiki-Datenbank umbenennen, ist dies der Weg, den man wählen sollte. Probleme Zeichensatz

Ein ausgesprochen undurchschaubares Kapitel ist der Umgang von MySQL mit Zeichensätzen. Werden die Daten in der Datenbank beispielsweise in "latin1" und nicht in "UTF-8" gespeichert, versucht mysqldump, diese Daten zu konvertieren. Das kann zur Zerstörung der gespeicherten Textdaten führen, nicht nur in MediaWiki, sondern beispielsweise auch in Drupal. Ähnliches gilt auch beim Wechsel von MySQL 4.1 auf neuere MySQL-versionen.

Auskunft gibt MySQL mit dem Kommando status:

   mysql> use wikidb;
   mysql> status;

Das ergibt eines Ausgabe wie:

   [...]
   Server characterset: latin1
   Db characterset: latin1
   Client characterset: latin1
   Conn. characterset: latin1
   [...]

Für welchen Zeichensatz eine Datenbank konfiguriert ist, bekommt man laut MediaWiki Manual auch heraus mit einem Kommando wie

   > SHOW CREATE TABLE text

Das führt jedoch bei uns zu einer Fehlermeldung, obwohl die entsprechende Tabelle existiert:

   mysql> show create table text;
   ERROR 1146 (42S02): Table 'wikidb.text' doesn't exist

Mit der mysqldump-Option "--default-character-set=latin1" kann die Zeichensatzkonvertierung underdrückt werden. Cache

Es kann erforderlich sein, den Cache von MediaWiki zu leeren; siehe hierzu:

   * Cache

Automatisierung

Das MediaWiki Manual schlägt zum Automatisierung der Datenbank-Backups folgenden Cron-Job vor:

/usr/bin/nice -n 19 /usr/bin/mysqldump -u $USER -p$PASSWORD $DATABASE -c | /usr/bin/nice -n 19 /bin/gzip -9 > ~/backup/wiki-$DATABASE-$(date '+%a').sql.gz

Hier müssen noch die Variablen $USER, $PASSWORD und $DATABASE durch gültige Werte ersetzt werden, dann sollte der Cron-Job regelmäßige Dumps generieren, in deren Dateinamen auch der Wochentag verzeichnet ist.