2008年09月18日

MediaWikiの泥臭い復旧

状況

社内ナレッジ用Mediawikiの動いていたサーバーが死んだ。HDDががぐちゃぐちゃ。

サーバーは、ついでなのでOSごと快適に再構築。MediaWikiのDBはダンプをとってあったのでそれ程慌てなかった。が、間抜けな誤算。

ダンプデータの内、ページタイトルに当たる箇所が文字化けしている。

実はダンプの取得を、文字コードの指定に問題のあるphpMyAdminから行っていた為に、テキスト型のラテン文字以外が全て化けていた。本文部分はバイナリ型で記録されるので問題なかったが、ページタイトルは駄目。ページタイトルの付け直しはとても面倒だし、どういう化け方なのか特定しようにも、面倒。

復旧作業

  1. 新サーバーはmy.cnfのエンコーディング指定で文字化け問題対処済みだったが、これをわざと初期設定に戻す
  2. phpMyAdminからダンプデータを使って、MediaWikiのテーブルを復旧
  3. 手書きでMediaWikiのDBからpageテーブルの「page_title」と「page_latest」を取得
  4. textテーブルと、revisionテーブルもCSVで用意
  5. お手軽に、FileMakerへそれぞれのテーブルを投入
  6. リレーションで「page」→「revision」→「text」とつなぎ、各ページの最終状態を取得
  7. XMLとして整形し、新しいMediaWikiにインポート
  8. my.cnfを元に戻し、復旧用に作ったテーブルも削除

引っ掛かったのは、文字化けしちゃった環境の再現と、FileMakerがUTF-8はBOM付きでないと対応していない点ぐらい。

面倒な手作業をしなくて済んだ。なんとかなるもんだ。

タグ:Mediawiki

22:17 | Comment(0) | TrackBack(0) | Neran-Note

この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。