Hilfe:WIKI migrieren

Zur Navigation springen Zur Suche springen
Ein vorhandenes Wiki auf einen anderen Rechner auslagern

Datenbankgröße reduzieren

Vor der Übertragung eines WIKIs auf einen anderen Rechner sollte die Datenbank von überflüssigen Einträgen befreit werden.

Folgende Tabellen können der Dokumentation zufolge problemlos geleert werden:

TRUNCATE objectcache;
TRUNCATE l10n_cache;
TRUNCATE pagelinks;
TRUNCATE recentchanges;
TRUNCATE archive;

Folgende Tabellen können vermutlich ohne Beeinträchtigung geleert werden:

TRUNCATE categorylinks;
TRUNCATE templatelinks;
TRUNCATE externallinks;
TRUNCATE log_search;
TRUNCATE logging;

Nicht benötige Versionsgeschichten löschen

In der Wikipedia und allen auf der Software MediaWiki basierenden Wikis bleiben alle Bearbeitungen erhalten. Wenn man das nicht möchte, kann man die alten Versionen aus der Datenbank löschen.

In Windows aus der Kommandozeile aufrufen:

Server-Pfad\php\php.exe Server-Pfad\htdocs\Wiki-Verzeichnis\maintenance\deleteOldRevisions.php --delete

direkt im maintenance-Verzeichnis des Wikis (damit ist sichergestellt, dass man nicht versehentlich das falsche Wiki erwischt, falls man mehrere Wikis betreibt):

Server-Pfad\php\php.exe deleteOldRevisions.php --delete

zum Beispiel

c:\wiki\php\php.exe deleteOldRevisions.php --delete

Für Wartungsskripte, die die Datenbank ändern, muss in der LocalSettings.php Datenbankadministrator $wgDBadminpassword und Passwort $wgDBadminpassword gesetzt sein, die normale Angabe $wgDBuser ist dafür nicht hinreichend.

Die Erweiterung MaintenanceShell bietet die Möglichkeit, Wartungsskripte innerhalb des Wikis ausführen

Versionsgeschichte einzelner Seiten entfernen

Zunächst die betreffende Seiten löschen und die letzte Version wieder herstellen, dann die Tabelle archive leeren. Dadurch entstehen in der Tabelle text verwaiste Einträge, die nachträglich gelöscht werden müssen.

Verweiste Text-Einträge abfragen
SELECT * FROM text WHERE old_id not in (SELECT DISTINCT rev_text_id FROM revision)
Verweiste Text-Einträge leeren

Zuerst die Tabelle der gelöschten Versionen leeren

TRUNCATE archive;
DELETE FROM text WHERE old_id NOT IN (SELECT DISTINCT rev_text_id FROM revision);

Kommentare aus der Versionstabelle löschen

Diese Aktion sollte User Brion VIBBER zufolge sicher sein.

UPDATE revision SET rev_comment=''

Usernamen aus der Versionstabelle löschen

UPDATE revision SET rev_user_text=''

Updatedatum aus der Versionstabelle löschen

Gelöschte Seiten können danach nicht mehr wieder hergestellt werden.
UPDATE Revision SET Rev_Timestamp = '' WHERE Rev_Page = 1

Versionsgeschichte komplett löschen

DELETE FROM Revision WHERE Rev_Id NOT IN (SELECT DISTINCT Page_Latest FROM Page);
DELETE FROM Text WHERE Old_Id NOT IN (SELECT DISTINCT Rev_Text_Id FROM Revision);

Alle SQL-Statements zum Kopieren

TRUNCATE objectcache;
TRUNCATE l10n_cache;
TRUNCATE pagelinks;
TRUNCATE recentchanges;
TRUNCATE archive;
TRUNCATE categorylinks;
TRUNCATE templatelinks;
TRUNCATE externallinks;
TRUNCATE log_search;
TRUNCATE logging;
DELETE FROM Revision WHERE Rev_Id NOT IN (SELECT DISTINCT Page_Latest FROM Page);
DELETE FROM Text WHERE Old_Id NOT IN (SELECT DISTINCT Rev_Text_Id FROM Revision);
UPDATE Revision
   SET Rev_Comment = '', Rev_User_Text = ''
-- ,Rev_Timestamp = '2000-01-01 00:00:00'
;

Migration eines Wikis auf einen anderen Server/Rechner

Grundsätzlich kann das Wiki übertragen werden, indem das Verzeichnis images und die Datenbank kopieren werden.

Wenn die Datenbank zu umfangreich geworden ist, kann sich beim SQL-Import der Datenbank ein Problem ergeben, weil dieser nicht vollständig ist. Die Beschränkungen max_execution_time in der php.ini können einen unerwünschten Abbruch des Imports bewirken.

Nach dem Import muss das Maintenance-Script refreshlinks.php ausgeführt werden.

Schrittweises Vorgehen

  1. SQL-Datenbank exportieren (für alle Fälle)
  2. Größe der SQL-Datenbank durch Löschen alter Versionen und Leeren der Linktabellen reduzieren
  3. SQL-Datenbank exportieren
  4. evtl. einzelne Tabellen exportieren
  5. Wiki Unterverzeichnis images auf einen Datenstick kopieren
  6. XAMPP auf neuem Rechner aufsetzen
  7. Wikisoftware in XAMPP-Unterordner htdocs kopieren
  8. SQL-Datenbank anlegen
  9. SQL-Datenbank importieren
  10. falls der Import nicht vollständig ist (Vergleich der Zahl der Datenbanksätze; es müssen auf alle Fälle 52 Tabellen sein V1.30.0), div. Limits erhöhen C:\xampp/php/php.ini (XAMPP Konfiguration)
    post_max_size = 750M
    upload_max_filesize = 750M
    max_execution_time = 5000
    max_input_time = 5000
    memory_limit = 1000M

    in der Datei C:\xampp\mysql\bin\my.ini diese Zeile hinzufügen max_allowed_packet = 200M
    in der Datei config.inc.php (erreichbar über XAMPP Konfiguration) die Zeile $cfg['ExecTimeLimit'] = 300; durch $cfg['ExecTimeLimit'] = 0; ersetzen bzw. einfügen und XAMPP erneut starten
  11. es sollte die Meldung Der Import wurde erfolgreich abgeschlossen, xxx Abfragen wurden ausgeführt. (datenbankname.sql) kommen
  12. Wiki Setup aufrufen
  13. falls Wiki Setup beim Einrichten der Datenbank hängen bleibt, die in der Fehlermeldung bezeichnete Tabelle aus dem Ursprungswiki kopieren (hier ist der Export der einzelnen Tabellen hilfreich)
  14. vor dem ersten Aufruf des Wikis den Ordner images kopieren
  15. oder nur die Bilddateien kopieren
    xcopy C:\xampp\htdocs\wiki\images\*.jpg *.* /k/r/e/i/s/c/h
    xcopy C:\xampp\htdocs\wiki\images\*.png *.* /k/r/e/i/s/c/h
  16. nun sollte das Wiki einsatzbereit sein
Es ist sowieso eine gute Idee, eine Kopie des Wikis auf einem anderen Rechner zu erstellen, damit kann man „gefährliche“ Operationen ausprobieren.