MT3.2のDBをBerkeleyDBからSQLiteに変更。
Movable Type 3.2-jaにアップグレードしたのは良いが、思わぬ問題が・・・
新規投稿やコメント、再構築時に時間がかかり過ぎる、またサーバーへの負荷がかかり過ぎると言う問題がDBにBerkeleyDBを使っているとあちこちで起こっているようで;;;
この問題に対応させるパッチを見つけたので、それで対応させてみました。
しかし、私のレンタルサーバー会社からつい最近、DBD-SQLiteに対応したと言う通知が来ていたのを思い出し、この際そちらを使おうと思い、試行錯誤の末動くことがわかったので(笑)早速変更しました。
あまりこれに関して知識がなく、また経験不足のためあれこれとトライアンドエラー(笑)繰り返しましたがなんとか変更することが出来ました。
出来てみれば、ほんの数分の作業なので、「なんじゃ、こりゃ」て感じで自分の知識のなさが悲しくなりました;;;;;;;
1)mt-config.cgiをMTのマニアルを参考にSQLiteを使うように変更。
2)mt-db2sql.cgiを使用して、現在のBerkeleyDBの内容をSQLiteのdbファイルにコンバートする。
という、単純な作業で完了します。
これでdbのファイルがすっきり!
さて、効果はどうなのか、まだまだ検証は十分ではないですが今のところ問題無しに動いています。
(各ファイルデータのバックアップはお忘れなく!)
カテゴリ
MovableType悪戦記トラックバック(0)
このブログ記事を参照しているブログ一覧: MT3.2のDBをBerkeleyDBからSQLiteに変更。
このブログ記事に対するトラックバックURL: http://www.k-matsu.com/mt/mt-tb.cgi/559







DBの変更お疲れさまです。
>これでdbのファイルがすっきり!
BerkeleyDBとSQLiteじゃファイル数とか違うんですか?
で、右メニューブロックの下にある(powered by MovableTypeの上)枠は何なんでしょう?中身が読めませんが…;;
どもどもです。
>BerkeleyDBとSQLiteじゃファイル数とか違うんですか?
て言うかフォーマットが違うんでしょうね、BerkeleyDBだとディレクトリーの中にいくつもファイルが出来ているでしょう?
SQLiteだと一つのファイルだけです。
ですからBerkeleyDBだとパスの設定でデイレクトリーを指定していたのがSQLiteだとファイルを指定します・・・・
この辺りが嵌りの一つだったんです;;;;;;;
へへ・・・・・、たぶんfirefoxだと見えると思いますが・・・・・
javascriptです(kagaさんの好きな;;)
「今日は何の日?」ていうお遊びです;;;;;;;
見えないのがあるんだったら消しておこうかなぁ・・・・・
BerkeleyDBからSQLiteへの乗り換え作業(私の場合)
・mt-config.cgiの編集・
63行目、64行目のコメントを取る
ObjectDriver DBI::sqlite
64行目にデータベースのファイルを指定する
Database /データベースファイルまでのパス/mt.db←データベースファイル名は任意
これでmt-config.cgiをアップ上書きをする
(この時点ではまだ、70行目のBerkeleyDB用の設定をコメントにしない)
以上で変換のための準備は整いました。
・mt-db2sql.cgiを使ってコンバート・
次にブラウザーでmt-db2sql.cgiを実行します。
「Done copying data from Berkeley DB to SQL database! All went well.」
で完了です。
最後にmt-config.cgiのBerkeley DB用の設定部分(70行目)をコメントにして再度アップします。
以上で変換できて動く(私の場合動きました)と思います。
上記の要領で不足な部分またアドバイスありましたらコメント頂けるとありがたいです。
あくまでも各自の責任でお願いします、また各必要ファイルはバックアップをお忘れなく!
うーん、そうなんかこんな方法でやるのですね。先に見ればよかった…。
まだ変更する気がなかったのですが、なんか突如やる気になって一から勉強してました。(>_<)
.dbって拡張子なんですね。
で、古いほうのblogで実験してみました。
コンバートした結果MT.pm Line 865にWARNINGと記載されていましたけどなんかうまくいってますね。
ひゃーなんて簡単なの?;;
まーでも勉強し直して再確認することもあったので良しとします。