Manual:Backing up a wiki/ja

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

概要
MediaWikiは重要なデータを二カ所に保存する:


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

データベース
ほとんどのwiki中のデータはデータベースに格納され、それは、通常バックアップが簡単である. MySQLバックエンドを使っているとき(規定値)、いろいろなユーティリティがデータベースをファイルに"ダンプする"ことの支援に使え、すなわち、データベースを再構成するために使えるスクリプトファイルを生成し、もしも必要ならば、スクラッチからすべてのデータをその中に入れる.

例を挙げると、MySQL ダンプツールは、バックアップ対象のデータベースの名前を与えられるダンプファイルを作成することができるコマンドラインアプリケーションである. 動作は、たとえば文字エンコーディングを設定する、出力ファイルフォーマットをカスタマイズする標準パラメータを使って変更できる.

そのほかにもツールがあり、それは(商用) MySQL hot backup utilityで、動作中にInnoDBテーブルをバックアップ出来、著名なサードパーティオープンソースである phpMyAdmin ツールは、データベースのエクスポート(ダンプ)のための数多くのオプションを含む、MySQLデータベースと広く会話する機能を含むwebベースのアプリケーションである.

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には有効な値を使うこと. これは、ファイル名中に平日の名前を含むバックアップファイルを書き込むことが出来、一連のバックアップを持つことが出来る. もしも、同様にファイルと拡張を保存したいならば、これを使ってもよい.

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

MySQLのコマンドラインで を実行することで、テーブルがどのような文字を使っているかを表示することが出来る. 最後の行に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

ファイルシステム
MediaWikiは、データベース中に挿入するよりもより適当である、wiki中のその他のコンポーネントをファイルシステム中に格納し、たとえば、それは、サイトの構成ファイル、(LocalSettings.php、AdminSettings.php)、画像ファイル(削除イメージ、サムネイル、もしも使えるようになっていれば、レンダリングされた数式、SVGイメージも含む)、スキンのカスタマイゼーション、拡張ファイルなどである.

それらのバックアップを取るもっともよい方法は、それをアーカイブファイルに置くことでそれはたとえば、もしも指定すれば圧縮される.tar</tt> ファイルである. Windowsでは、もしも使えればそれはWinZipのようなアプリケーションである.

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

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

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

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

ダンプツールの利用方法の例： php dumpBackup.php --full > backup.xml

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

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

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

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