BarkeleyDBからSQLiteへのDB変換【MovableType】

当サイトの記事には広告が含まれます

car-blog

 MovableTypeのバージョン3.2へ乗換をしたいのですが、データベースとしてBarkleyDBを使用していて、再構築時に問題が出る事象を抱えています。そこで、バージョン3.1xのままで、とりあえずデータベースだけ載せ替えをしたらどうかということを思い立ちました。

 データベースとしての候補はMySQLを使用することを最初に考えました。さくらインターネットでMySQL用のDBサーバーが提供されているからです。そしてネット上で情報集めに入りました。すると、さくらインターネットのDBサーバーは評判があまり良くないことを知りました。DBサーバーの負荷が高くて性能的にBarkeleyDBを使うよりも性能が落ちてしまうことがあるようです。


 そこで方針を改めて、SQLiteを使用することにしました。まずは、環境のバックアップです。FTPクライアントを使ってMTをインストールしてあるパスを丸ごとFTPクライアントでダウンロードして手元のパソコンにバックアップをしました。これでサーバー上の環境がもしも壊れてしまっても何とかなります。次にmt-check.cgiを動かしてみて、さくらインターネットにSQLiteがインストールされているか否かを確認しました。

——————————————–
DB_File
Your server has DB_File installed (version 1.808).
DBI (version >= 1.21)
Your server has DBI installed (version 1.42).
DBD::mysql
Your server has DBD::mysql installed (version 2.9004).
DBD::Pg (version >= 1.32)
DBD::Pg がインストールされていないか、もしくはバージョンが古い、もしくは、DBD::Pg を動作させるために必要なモジュールがインストールされていません。 DBI と DBD::Pg は PostgreSQL を使ってデータを管理したい場合に必要です。 DBD::Pg をインストールするのであれば、インストールの説明を参考にしてください。
DBD::SQLite
Your server has DBD::SQLite installed (version 1.09).
————————————————

 Postgresはインストールされていないですが、SQLiteはバージョン1.09がきちんとインストールされているようです。mt-check.cgiを削除して次にこちらのサイトを参考にしてSQLiteのデータベースへの変換作業を進めました。いくつかのブログを運営している関係で全部で3000エントリ以上あるため、非常にエントリーの変換に時間がかかりました。3時間くらいかかったと思います。

 そして、下記のように無事にメッセージが出て無事に変換が完了しました。

Done copying data from DBM to DBI::sqlite! All went well.
Your recommended setting
————————————-
# DataSource /home/xxxxxx/xxxxxx/xxxxxx/db
ObjectDriver DBI::sqlite
Database /home/xxxxxx/xxxxxx/xxxxxx/sqlite/db.dat
————————————-

 絶対パスの一部をxxxxxxに書き換えています。上記の情報をmt.cfgにコピー&ペーストして、mt.cgiがあるところにmt.cfgをFTPクライアントでアップロードしました。ここまでうまくいったので、きっとシャキシャキと動くなるようになるだろうと期待していたのですが、なぜかMovabaleTypeの管理画面に入ると動作がもたついています。

 これはおかしいと思いつつ、一つのエントリーを選んで再構築をしてみたところ、やたらと時間がかかりました。5分くらい待ったでしょうか。やっと再構築が正常に終わりました。これでは全く使い物になりません。何がおかしいのでしょうか? 本当ならば、もう少し原因を追及したかったのですが、明日は会社がありますので、今日は潔くあきらめることにしました。あきらめるのは簡単で、mt.cfgの設定を元に戻して、アップロードするだけです。

 あっけなく、元の環境のBarkleyDBに戻って、サクサクと再構築ができるようになりました。また機会を見つけてリトライしようと思っています。

コメント

  1. 月夜塚-2nd-Blog より:

    BerkeleyDBからSQLiteへ

     やっとMT最新版の「Movable Type 3.2-ja-2」に書き換えたん…

  2. Gabbiano より:

    先日はトラックバックありがとうございました。
    私もMovable Typeの3.2を使ってますが、BarkleyDBのままですよ。
    Release-2 (3.2-ja-2)でBarkleyDBの環境下での不具合は解決されたものと思います。
    今のところ、こちらでは特に問題は生じていません。
    http://www.sixapart.jp/movabletype/news/2005/10/12-1850.html

  3. 臨機応変?管理人 より:

    Rekease-2で不具合は解消されているはずなのですが、私の環境ではうまく動いてくれませんでした。再構築時にエラーが出てしまいます。SQLiteに移行すればきちんと動いてくれると思っていたのですが、これもダメで、八方ふさがりになってしまいました。MovableTypeの新しいバージョンが出てきたら、また確かめてみたいと思います。

  4. Kuro より:

    こんにちは。
    私もさくらインターネットでブログを利用しています。
    MovableType 3.2-ja-2 + BarkleyDB を1度試して 3.17 に戻してます。
    私が確認した症状として、3.2 から搭載されたスパム対策機能を利用してスパムを複数(1個だと成功する)登録しようとすると Internal Server Error になってしまいます。
    リビルドする際の負荷が大きいせいなのかは定かではありません。さくらインターネットは MySQL データベースを1つしか利用できないので迷っています。というのも、PHPBB2フォーラムを利用したいのですが、ブログ側で MySQL を利用してしまうとフォーラムを立ち上げられなくなってしまいますし…。どうしたもんかなあー、てとこです。
    あと、3.2 になってスパムが1日半端ないぐらい来てしまって消しても消してもなくならなかったことを 3.2 をインストールしたとき記憶しています。
    MT-Blacklist 並の機能がないと移行したくないのはホンネではあります。
    ではでは。