BerkeleyDBからSQLiteに移行

MobavleType 3.2 への移行を考えてテストをしているわけなんですが、BerkeleyDB に関してはテンプレートに recently_commented_on 利用していると問題があります。

この件については ogawa さんの下記の記事が非常に参考になり、加えてこの件に関するパッチも作成されておられます。

Ogawa::Memoranda : MT 3.2でrecently_commented_onとBerkeleyDBに嵌っている人が多い件について

要するに、「recently_commented_on の仕様変更」と「MT::Entry->comment_latestでやたらメモリを消費するという、BerkeleyDB特有の問題」によってメモリ消費量増大やパフォーマンス低下が発生し、リビルドでタイムアウトしてしまうことがある、ということですね。

ただ当サイトにおいては、エントリー数増加に伴ってリビルドなどのパフォーマンスが悪く、以前から他のDBMSに移行しようと考えていました。ロリポップ!では MySQL も利用できますが、いかんせんMySQLのサーバ負荷が読めないため二の足を踏み、騙し騙し BerkeleyDB のまま運用していました。

そこで CHEEBOW さんの「MovableTypeで行こう!」に書かれていた記事

MovableTypeで行こう!: BarkeleyDBからSQLiteへ移行してみる

でロリポップ!にも SQLite モジュールがインストールされている事を知り、いい機会なので早速 MT3.2 より先に SQLite へ移行してみることに。

移行作業にあたっては、ogawa さんの下記記事が参考になりました。

Ogawa::Memoranda : SQLiteをMovable Typeで使ってみる

実際に移行時に使ったのは、これもやはり ogawa さんの下記 CGI スクリプト

Ogawa::Memoranda : mt-db-convert.cgi: MTデータベースの相互変換CGIスクリプト

を利用し、BerkeleyDB -> SQLite にコピー。mt.cfg をさくっと変更してデータの移行を確認。リビルドで完了。

ogawa さん、大変参考になる記事をありがとうございました。

9 Comments

コメントを残す

メールアドレスが公開されることはありません。