Manual:Backing up a wiki/ja

From MediaWiki.org

Jump to: navigation, search

他の重要なシステムと同じく、wiki中のデータを定期的にバックアップを行なうことはとても重要である。 このページではMediaWikiを用いた一般的なwikiシステムのバックアップ手順の概要を説明する。

Contents

[edit] 概要

MediaWikiは重要なデータを2種類の方法で保持している。

データベース
ページとその内容、利用者とそのオプション、メタデータ、検索の索引など。
ファイルシステム
ソフトウェア構成ファイル、カスタムスキン、拡張機能、画像(削除されたものを含む)など。

[edit] データベースのバックアップ

[edit] MySQLのダンプ

最も簡便なのは、MySQLに標準で付属するMySQL ダンプツール (mysqldump)を用いることである。これは、バックアップ対象のデータベース名やテーブル名を指定してダンプファイルを作成することができるコマンドラインアプリケーションである。

Linux/UNIXシェル上で実行するコマンドの例:

mysqldump -h $HOST -u $USER -p$PASSWORD $DATABASE -c > backup.sql

Linux/UNIXシェル上で実行するコマンドの例(XMLで出力):

mysqldump -h $HOST -u $USER -p$PASSWORD $DATABASE -c --xml > backup.xml

$HOST,$USER、$PASSWORD、$DATABASEには有効な値を使うこと。

また、バックアップの確実性を期すために、次のオプションをさらに付加することが望ましい場合がある。

-Q         :  テーブルやカラム名をクオート("`"で囲む)する
--hex-blob :  バイナリデータを16進文字列に変換してダンプする

そのほかにも次のようなツールがある。

  • phpMyAdmin:WebベースのMySQL総合管理ツールで、データベースのダンプも可能。
  • MySQL hot backup utility:MySQLに標準で付属しているバックアップツール。
  • Backup MW:MySQLのダンプと同時に、画像ディレクトリ、拡張機能ディレクトリ、LocalSettings.phpもバックアップできるスクリプト集。

[edit] MySQLの文字セットとmysqldumpコマンド

MySQL4.1以降に対する警告: デフォルトのオプションでmysqldumpを用いる場合、データベースのエクスポートが正しく行われない可能性がある。これは、データベースの文字セットが"UTF-8"ではなく、"latin1"と設定されている様な場合である。MySQL 4.1以降の環境でmysqldumpに英語以外の文字コードを処理させると、文字コードの自動変換がデータを破壊して出力することがある。

MySQLのコマンドラインでSHOW CREATE TABLE test;を実行することで、テーブルがどのような文字を使っているかを表示することが出来る。最後の行にDEFAULT CHARSETが表示されるはずである。

もし、前述の手法で最後の行に文字セットが表示されていない場合で、MySQLがインストールされて以来デフォルトの文字セットが変更されていないのであれば、STATUS;コマンドで表示される文字セットでMediaWikiのデータベースが作成されているはずである。

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


"latin1"に設定されている場合は、mysqldumpコマンド行上で、--default-character-set=latin1オプションを使い、変換を防止する。

Linux/UNIXシェル上で実行するコマンドの例:

mysqldump -h $HOST -u $USER -p$PASSWORD --default-character-set=$CHARSET $DATABASE -c > backup.sql

[edit] MediaWiki付属ツールによるXMLダンプ

データベースダンプだけでなく、念のためにここで説明するXMLダンプも行っておくことも推奨する。XMLダンプには、サイトに関連するデータを除く(利用者アカウント、ログなどを含まない)、wikiの内容(すべてのリビジョンを含むwikiページ)を含む。XMLダンプはデータベース構造から独立しているので、MediaWikiの将来の(およびたぶん過去も)バージョンにインポートすることが出来る。

これは、文字エンコーディング問題をより引き起こしにくく、サードパーティのツールによって容易に処理することが出来、メインのデータベースダンプが使えなくなる時によい代替手段になり、まとめて内容を再配布する手段ともなる。

XMLダンプを生成するためのツール、dumpBackup.phpがMediaWikiをインストールしたディレクトリの下のmaintainanceディレクトリに存在する。AdminSettings.phpを正しく設定した上で次のように利用する。

ダンプツールの利用方法の例:

php dumpBackup.php --full > backup.xml

また、Special:Exportを使うことでも、オンラインの特定のページセットのためのXMLダンプを生成するためにも使用でき、そうすることで、このインタフェースを使うと通常タイムアウトになる大量のページのダンプを試みる代わりになる。

wikiにXMLダンプをインポートするためには、コマンドラインツールimportDump.phpを使う。

php importDump.php backup.xml

ページ数が少ないときには、ブラウザ経由でSpecial:Import ページを使うことも出来る(規定値では、これはsysop グループのみに制限されている)。

より速いdumpBackup.phpimportDump.phpの代替として、MWDumperを使うことも出来るが、Javaが必要である。


[edit] ファイルシステム

MediaWikiの重要なデータの一部は、データベース中に保存されていないものも存在する。それらは、ファイルとしてMediaWikiがセットアップされたディレクトリ中に保存されている。たとえば、次のようなものがある。

  • 基本設定ファイル:LocalSettings.phpAdminSettings.php
  • 画像ファイル・レンダリングされた数式等:imagesディレクトリ内
  • スキン:skinsディレクトリ内
  • 拡張機能:extensionsディレクトリ内

これらをバックアップするためのLinux/UNIXシェルスクリプトの例を示す(MediaWikiのセットアップされたディレクトリに移動してから次のコマンドを実行する)

tar zcvf backup.tar.gz LocalSettings.php AdminSettings.php images skins extensions

なお、拡張機能の中にはincludesディレクトリやlanguagesディレクトリ等にファイルを追加するものもあり、これらのファイルも全てバックアップを行う必要がある。

[edit] キャッシュのパージ

キャッシュのパージをする必要があるかもしれない。特に、マイグレーションプロセス中で何らかの設定変更を行なったときは。キャッシュに関するコンフィギュレーションを参照。