Cazperのつれづれ日記: ロリポップ MYSQLのデータベース鯖を移すの巻

« 祝新年快楽 2007 | メイン | 初笑い »

2007年1月 1日

panda01.gif ロリポップ MYSQLのデータベース鯖を移すの巻

私は、レンタルサーバとしてロリポップを利用しているのですが、安かろう重かろう…という事でサーバに過負荷が掛かってると感じる時が多くあります。

特に、Blogの更新の時には泣かされます。

データベースをMySQLではなくてSQLiteに変えようかとも考えたのですが、他の手段を試してからでも遅くは無いと思い探していました。

そうすると、「ロリポのMySQLサーバ移動 → 動作劇的改善」というエントリーを見つけたので、移動してみました。

更新プロセスは引用させてもらいます。

(0. 念のためMovable Type自体のバックアップをしておく。
左バナーの「ユーティリティ」>「読み出し/書き出し」をクリック、「エントリーの書き出し」タブをクリック、「・・・からエントリーを書き出す」ボタンを押す)

1. ロリポップのphpMyAdminへログイン
http://user.lolipop.jp/pma/で、Languageをja-utf8にして選択、実行したあと、ユーザ、パスワード、現在使っているsqlサーバを選択してログイン
※このときのブラウザは、IEではエクスポートでフリーズしてしまった。Firefoxで成功した。理由は不明。

2. 旧データのエクスポート
右フレームの「エクスポート」をクリック
Lucky bagさんMovableType備忘録に従い、画面が出た後、「ファイルで保存する」「完全な INSERT 文を作成する」にチェックを入れ、「実行する」をクリック
作成された.sqlファイルを保存する
正しくできたか確認したければ、テキストエディタ(ただしUTF8が読めること)で作成した.sqlファイルを読んで、文字化けがないか見るとよい。

3. ロリポップユーザページで古いDBを削除、新しいDBを作成
ロリポのユーザー専用ページでログイン後、「WEBツール」「データベース作成」でまず既存データベースを削除、その後新規作成をする。サーバを選び、パスワードを設定するだけ。もしいくつかサーバを選べるのならば、最も数字の大きいサーバを選択したほうが良い。(8月5日現在、mysql15ができています)
データベース名は前と同じものができます。

4. 新しいDBにデータをインポート
再びphpMyAdminにログイン、新サーバを選択、ユーザ名(LAxxxxxxxx)とパスワードを入力してログイン
左フレームの5つある画像ボタンの真ん中のSQLボタンをクリック
「インポートファイル」のタブを選択し、「参照」でエクスポートしたsqlファイルを選択して「実行する」をクリック
データベースができたことを確認します。

5. Movable Typeの設定変更
mt-config.cgiのDBHostの項目に、新サーバのアドレスを書き込み、FTPでWebサーバにアップデート。(Unbridled blog)

基本的には、上記の操作で良いのですが…バックアップしたエクスポートデータが2Mbyte以上の場合には問題が発生します。

というのも、phpMyAdmin上からでは2Mbyte(2048Kbyte)以上のファイルはインポート出来ないのです。そこで、同じようなBlogシステムであるWordPressのデータバックアップをしているEZ-INFOさんの手法を利用させてもらいました。

エクスポートファイルを分割するために利用したエディターソフトはTeraPadを利用しました。エクスポートファイル(*.sqlファイル)を2MByte以内に納めるように分割していきます。

具体的には次のルールを適用しましょう。
●分割したファイルの一番最初が以下のように
DROP TABLE IF EXISTS `mt_category`;
CREATE TABLE `mt_category`(****)**;
といったブロックで始まる場合には、ファイルの先頭に「USE データベース名;」 を書き込む
例:
USE LA****;
DROP TABLE IF EXISTS `mt_category`;
CREATE TABLE `mt_category`(****)**;

●また、以下のブロックの途中ではファイルを分割しないこと。
DROP TABLE IF EXISTS `mt_category`;
CREATE TABLE `mt_category`(****)**;

●INSERT INTO の周辺ではファイルを分割しても良いが、INSERTからセミコロン;までの間では区切って分割しない事。
例:右文の途中ではファイルを分割しない → INSERT INTO `mt_comment` (****);


インポートし終わったら、バックアップ前のテーブル数とインポート後のテーブル数が同数である事を確認してください。また、ダブルチェックの意味を含めて、インポート完了後のデータファイルを再度エクスポートしてみて、バックアップ前のファイル容量と比較してください。容量がほぼ同じであれば大丈夫でしょう。(念のため、ファイルの中身をエディタで確認して、どの程度違うかを確認すると尚良いでしょう。数行程度の違いしかなければ問題無いでしょう。)


<余談ですが・・・>
なんで、ブログシステムがこんなに重たくなるのでしょう。ブログをそんなに頻繁に更新している人が居るとは思いません。そうだとすると、鯖が重たくなる理由は、スパムトラックバックやスパムコメントによる影響と考えて間違いないでしょう。日にスパムトラックバック・コメントが合わせて400個程打ち込まれているので、それを処理するだけでもウェブ鯖が重たくなります。

更に、古いシステムを利用している場合は、スパムコメント・トラックバックが来てもウェブを更新してしまうのでウェブサーバが激しく重たくなります。こう考えると、スパムコメントやスパムトラックバックを打ち込んでいる業者は業務妨害として訴えられるべきだと思いますが…。

投稿者 cazper : 2007年1月 1日 20:39 | b_entry.gif
     

トラックバック

このエントリーのトラックバックURL:
http://www.cazoo.jp/cgi/mt/mt-tb.cgi/1280

コメント