【 2007年9月10日 】

SQLiteがパンク?

 いつものようにブログに投稿しようとしたところ、「アップデート中にSQLエラーが発生しました: database disk image is malformed(1) at dbdimp.c line 401」をメッセージが出て、投稿できない。

20070910-01.JPG

 ググってみたところ、どうやらSQLiteのデータベースがパンクしているみたい。さて、困った。

 SQLiteは通常のファイルをデータベースとして使っているので、FTPソフトで確認すると、19MBほど。Movable Typeの管理メニューから確認すると、大量の迷惑トラックバックが1万3000件もあった。そりゃパンクするはずだ。

 しかしこの時点で、「迷惑コメント/トラックバックを空にする」を押しても、削除できなくなってしまっている。

 そこでデータの移し替えで対処することにした。

 

1.mt-db-convert.cgiを借用

 Ogawa::Memorandaさんmt-db-convert.cgiをダウンロードし、解凍。メモ帳などでmt-db-convert33.cgiを開き、32行目にある「MT::Log」を削除し、自分のサーバにアップロード。実行権を付与。

2.SQLiteからSQLiteにコンバート

 先ほどアップロードしたファイルをブラウザで開き、SQLiteからSQLiteにもちろんファイル名を替えてコンバート。これだけでファイルは16MBほどになった。

3.mt-config.cgiの変更

 FTPソフトでサーバのmt-config.cgiをダウンロードし、メモ帳などでSQLiteのファイルを指定している箇所(64行目あたり)を新しくコンバートしたファイルを参照するように変更。再びサーバにアップロード。

4.迷惑トラックバックの削除

 Movable Typeの管理メニューで迷惑トラックバックを思う存分削除。

5.再びコンバート

 迷惑トラックバックを削除しただけではファイルサイズは減らないので、mt-db-convert.cgiを使い、再びSQLiteから新しいSQLiteにコンバート。これでファイルはなんと3MBほどになった。

6.mt-config.cgiの再変更

 mt-config.cgiをさらに新たにつくったファイルを参照するように変更してアップロード。

 

 これでご覧のように投稿できるようになったし、心持ち動作が機敏になったような気もする。よかった、よかった。

トラックバック(0)

トラックバックURL: http://www.ohzapper.com/mt4home/mt-tb.cgi/1943

コメントする

アーカイブ

広告

広告