【しばらく編集不可モードで運営します】 編集(管理者用) | 差分 | 新規作成 | 一覧 | RSS | FrontPage | 検索 | 更新履歴

データの移行ではまった体験 - * Turbo Linux 7.0からRedHat 9.0へのデータ移行

目次

Turbo Linux 7.0からRedHat? 9.0へのデータ移行

手違いでTurboLinux7.0の環境を壊してしまったので、思い切ってRedHat9.0に移行しました。 YukiWikiのデータも移行したのですが、そこでちょっとはまった経験を書いておきます。

by ishii-k

Turbo Linux7.0とRedHat9.0の違い

YukiWikiの動作に関係しそうな違いは、

(2003/06/29 ishii-k 追記) 調べてみたら、Berkeley dbのバージョンも変わってました。

移行方法

/mnt/xx/ というのは旧ディスクのマウントポイント。ちょっと伏せ字にしてあります。

トラブルその1 WikiNameがすべて未定義の状態になった。

FrontPageは見れるのですが、WikiNameがすべて"?"付きになり、未定義になってしまいました。DBはdbmopenを使っていました。 dbファイル、wiki.db、info.db、diff.dbは存在し、パーミッションも0666になっていました。ディレクトリのパーミッションも0777にして見ましたが、現象は同じでした。apacheのログには何もエラーはないし。なぜ??

データを壊す覚悟で新しいページを作って見たところ、ちゃんと作成できました。 Yukiwikiディレクトリの中を見てみると、wiki.dbというファイル名ではなく、wikiというファイル名でDBが作られていました。 dbファイルの名前付けルールが変わっているようです。perl5.6からperl5.8に変わった影響なのでしょうか??それとも他に原因があるのでしょうか。 とりあえず、wiki.cgiの65行目以降を

 my $dataname = "$modifier_dir_data/wiki";
 my $infoname = "$modifier_dir_data/info";
 my $diffname = "$modifier_dir_data/diff";
から
 my $dataname = "$modifier_dir_data/wiki.db";
 my $infoname = "$modifier_dir_data/info.db";
 my $diffname = "$modifier_dir_data/diff.db";
に変更。

(2003/06/29 ishii-k 追記)ファイル名を変えればよいのでしょうが、DBファイルの拡張子は .db であってほしかったので、コードを変えてます。

(2004/06/27 N. T.) こちらでは逆のことが起こりました。

 % cp wiki wiki.db
 % cp info info.db
 % cp diff diff.db
とすると正常に動作するようになりました。

 % perl --version 
が5.6なので管理者がperlをバージョンダウンしたのでしょうか?

トラブルその2 dbのオープンでエラーするようになった。

 (dbmopen) ./wiki.db
というエラーが出るようになってしまいました。

オリジナルのdbファイルと、先ほど出来たdbファイルを比べてみると、

 $ file wiki.db <- オリジナルのファイル
 wiki.db: Berkeley DB (Hash, version 5, native byte-order)
 $ file wiki    <- さっき出来たファイル
 wiki: Berkeley DB (Hash, version 7, native byte-order)
 $
となり、versionが違うことが判明。 google様におすがりしてみると、 http://ouchi.nahi.to/diary/?200302c&to=200302230#200302230 このページから、db_upgrade というコマンドがあることを発見。
 $ db_upgrade wiki.db
とやることで、見事にデータを見ることができるようになりました。

知っている人にとっては常識なのでしょうけれど....。いい勉強になりました。