再構築時にエラーが...Berkeley DBからSQLiteに移行

先日の出来事。

エントリー書き込んだ後、いつも通りサイトを再構築していると見慣れない画面が!?

Internal Server Errorと表示され、何度やっても同じような500エラーが出てしまう。契約しているさくらのレンタルサーバ プレミアムがメンテナンスでもやってるのかと思って、時間をおいてもう一度再構築してみたものの変化なし。

スポンサーリンク

何かMovableTypeの問題かな?といろいろググってみると、Six Apartにこんな記事がありました。

Movable Type 3.2日本語版 Release-2 の提供を開始 | Movable Type ニュース

Berkeley DB環境にて、再構築時におけるメモリー使用量の増加により、再構築できない現象が発生する不具合を修正しました。(ogawa)

どうも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。

スポンサーリンク

この記事をシェアする

  • このエントリーをはてなブックマークに追加

よく読まれている関連記事はこちら

このブログ「SKEG*log(スケッグログ)」を購読する

さくらのレンタルサーバ プレミアムがメンテナンスでもやってるのかと思って、時間をおいてもう一度再構築してみたものの変化なし。

" class="fbkoudoku-l-cut-img" />
この記事が気に入ったら
「いいね!」しよう。
最新記事をお届けします。
● 最新記事をRSSで配信中です。feedlyへの登録はこちらからお願いします。