昨日のエントリー書き込んだ後、いつも通りサイトを再構築していると見慣れない画面が!?
Internal Server Errorと表示され、何度やっても同じような500エラーが出てしまう。月額125円からの「さくらのレンタルサーバ」
がメンテナンスでもやってるのかと思って、時間をおいてもう一度再構築してみたものの変化なし。
何かMovableTypeの問題かな?といろいろググって見ると、Six Apartにこんな記事がありました。
どうもBerkeley DB環境にて、再構築時におけるメモリー使用量の増加により、再構築できない現象が発生するみたい。でもこの記事によると、MT3.2-ja-2ではこの不具合の修正が完了してるはずなのに。。。
さらにググって見ると、この不具合を解消するには、再構築時のページ数を減らしたり、rebuild 支援ツールを使ったりといくつか方法があるようなんですが、根本から解決したかったので、この際データベースを移行することにしました。以前から再構築の時間が遅くてイライラしていたこともあり、SQLiteに移行することに。MySQLでもよかったんですが、MySQLに移行してもそんなに再構築のスピードが変わらない、または逆に遅くなることもあるらしいので...。
移行の際は、Ogawa::Memorandaさんのmt-db-convert.cgi: MTデータベースの相互変換CGIスクリプトを利用させていただきました。備忘録として手順を記載しておきます(さくらインターネットの場合です)。
1.mt-db-convert.cgiをダウンロードし、mt.cgiと同じ階層にアップロード。
2.mt-db-convert.cgiのパーミッションを755に。
3.ブラウザでmt-db-convert.cgiを実行。
4.左側の「Source DB Configuration」は現在の設定なので何もさわりません。
右側の「Destination DB Configuration」で、一番上のObjectDriverをSQLiteに。上から3番目のDatabaseを、左側のDataSource「-------/db」の階層内にデータファイルを作成する(ご自分の環境に合わせてください)ので、「-------/db/sqlite.db」と記入。convertをクリック。
5.mt-db-convert.cgiが実行され、
Done copying data from DBI::mysql to DBI::sqlite! All went well.
と表示されれば成功。その下にmt-config.cgiの変更箇所が表示されるので、その通りにmt-config.cgiの内容を変更すれば終了。
無事サイトの再構築が終了してくれました。なんとなくBerkeley DBの時より早くなった気がします。思ったより簡単に終わったのでちょっと拍子抜け。
追記:SQLite移行によるtagsのNotFoundについて
SQLite移行後のエントリーで、エントリー上部に設定したキーワードをクリックすると、NotFoundになってた。データベースのパス関係かなと思っていたら、mt-xsearch.cgiの27行目に'mt.cfg'のファイル名が。???MT3.2に移行後、このファイルはmt-config.cgiに変わっているので、これをmt-config.cgiに書き換えてあげればOK。








