Wer eine Wissensdatenbank führt muss sich überlegen wie er den Bestand des ebensolchen sichert. Denn nichts ist frustrierender für Nutzer als wenn Inhalte die langwierig erstellt wurden durch nicht regelmäßige Sicherung verloren gegangen sind. Mehr noch sorgt der Verlust in einem Unternehmensrahmen dafür, dass wertvolle Arbeitszeit verloren geht.

Eine laufende Wissensdatenbank Doch wie sichert man ein solches System? Nun, es gibt verschiedene Wege. Zwei möchte ich hier darstellen, denn diese haben sich in meinen Anwendungsbereichen bewährt.

Da wäre zunächst das Datenbankabbild, welches bei allen datenbankbetriebenen Webseiten bzw. Programmen möglich ist. Dieses kann durch eine GUI, Konsole oder Webinterface, wie zum Beispiel PHPMyAdmin oder anderen, geschehen. Hierbei ist jedoch Vorsicht walten zu lassen, denn es gibt immer noch und immer wieder Probleme wegen der Kodierung und der Verwendung unterschiedlicher Systeme. So hatte ich Probleme bei der Einbindung von Datenbanken, welche auf einem Mac exportiert wurden. Ob dieses an der verwendeten Software lag oder die Codepages nicht harmoniert haben lassen wir dahingestellt sein, denn das ist müßig, wichtig ist, man sollte immer darauf achten, dass das System (also Programm und Rechner) welches das Abbild erzeugt hat dieses auch identisch einspielen sollte. Alternativ sollte man zumindest bekannt funktionierende Kombinationen verwenden.

Auf diese Weise kann man einen kompletten Auszug erstellen von dem laufenden System und dieses im Idealfall genau verpflanzen. Dies gilt für alle Vor- und Nachteile, dass heißt das System ist genauso verwohnt und somit ggf. anfällig wie das von dem die Spiegelung erstellt wird. Sollte es Probleme gegeben haben mit dem Wiki werden diese genauso weiter existieren.

Der zweite Weg den ich aufzeigen will ist der mir inzwischen deutlich liebere, denn dieser Erzeugt einen kompletten Export eines Mediawiki mit allen Revisionen, Weiterleitungen und Namensräumen. Diese Exporte enthält die reinen Informationsdaten und können in einem beliebigen anderen mediawiki eingespielt werden um ggf. die Basismodifikationen bereinigen zu können.

Dies geschieht mit einem Backup-Skript, welches im  Maintainance-Ordner der jeweiligen Wiki-Installation zu finden ist. Durch die Einbindung der Konfigurationen im Basisverzeichnis sind keine weiteren Anpassungen notwendig, da alle Einstellungen wie Datenbankzugriffe oder Bezeichnungen direkt eingebunden sind. Es ist lediglich darauf zu achten, dass die Parameter und der Aufruf passfähig sind.

Der Aufruf welchen ich verwende lautet wie folgt:

 1: php dumpbackup.php --full >..\fulldump_%date%.xml

Auf diese Weise weiß das Skript, dass es einen vollständigen Export erstellen soll, also ein komplettes Abbild inklusive allen Revisionen. Dieses wird in eine XML-Datei gespielt, welches sich dann im Basisverzeichnis befindet. Idealerweise sollte diese Datei entweder danach in entsprechende gesicherte Bereiche verschoben werden oder durch die Anpassungen des Pfades direkt auf einem geschützten Netzlaufwerk abgelegt werden. Die Datei erstellt auf diesem Wege die Backupdatei mit dem Dateinamen FULLDUMP mit dem aktuellen Tag. So werden Backups in regelmäßigen Abständen möglich. Mit diesem Dateinamen kann das Skript auch als CronJob oder Eintrag im Scheduler ausgeführt werden.

Ein Backup einspielen geht über die Zeile:

 1: \php importDump.php ..\fulldump_%date%.xml

Wobei dieses auch wieder nur eine Beispielzeile ist. Es sind jedoch auch hier einige Punkte zu beachten, so muss beim Einspielen auf einige Besonderheiten geachtet werden. Zum Beispiel gehen die Statistikdaten, also unter anderem die Views und alle Referenzen auf Bearbeitungen, Reviews etc. verloren. Die Anzahl der Bearbeitungen und letzte Änderungen sowie Linklisten und Suchindex wie auch alle weiteren Veränderungen lassen sich aus den zuvor gesicherten bzw. eingespielten Daten wiederherstellen:

 1: php rebuildrecentchanges.php
 2: //oder alle Informationen
 3: php rebuildall.php

Und somit ist ein sauberer Stand des Wikis schnell und problemlos erstellt. An der Form der Darstellung lässt sich erkennen, dass ich den letzteren, also den Wiki spezifischen Weg bevorzuge. Dies hat mehrere Gründe, einer davon ist, dass man unabhängig vom verwendeten System der Wikianpassungen ist und auch über Versionen hinweg die Daten problemlos verwenden kann. Man hat im Falle, dass man die Daten wieder einspielen muss deutlich weniger Probleme und mögliche Abhängigkeiten.

Share Your Thought