メニュー
ひとぅ
新しいもの好きな「ひとぅ」が2007年10月からガジェット製品や雑貨、面白いウェブサービスなどの情報を発信しています。お得な情報や役立つTIPSも人気です。
アーカイブ
カテゴリー

adiaryのデータベースをMySQLに移行しました。

  • URLをコピーしました!

※当サイトではアフィリエイト広告を利用しています

ひとぅブログではadiaryをMySQLは使わず、テキスト版(擬似データベース)を利用していました。サイドバーのSystem Infoの欄に「RDBMS : pseudo DB」と表示されていればテキスト版です。

テキスト版のメリットはMySQLやPostgreSQLが利用できないサーバでもadiaryが動作する点と、日記の記事が1ファイルずつ出力されるので何だか精神的に安心感があります。(何ともいい加減な表現ですね。すんません。(^_^;))

私のような技術が無くMySQLとか言われてもSQL文を発行できないものに取っては、テキスト版は大きな魅力です。またバックアップもFTPで簡単にできる点も大きなメリットです。

また、adiaryの場合、テキスト版だとMySQLに処理速度が劣るかと言えば、実はそうでもないのが凄いのです!1,000記事程度では速度の低下はまったく気にならないレベルです。(数十ミリ秒遅延する程度です。)

ただ、1,000記事を超えるとファイル数が多くなり管理が煩雑になると言う点がネックになりだします。テキストファイルのメリットがデメリットに変わる分岐点ですね。(もちろんadiaryの問題ではありません。)

事実、ひとぅブログでも700記事を超えても快適な表示速度を維持しページ生成に要する時間はわずか90ミリ秒でした。

しかし、adiaryのヘビーユーザーさんたちが相次いでMySQLに移行しつつあったので、何だか私も移行したくなっちゃいました(^_^;)。(何という安易な理由!)これまでも他のサイトで移行経験はあったのですが、記事番号がずれる、という問題があったため泣く泣く諦めた記憶があります。(インターネットに公開していないという事情もあり。)

実は、記事番号を変えることなく、問題無くMySQLに移行できる事が分かりましたので移行を決意しました。URLが変わらないので嬉しいです!! 感謝感謝です。

気になるMySQLへ移行した効果ですが、約60ミリ秒で表示できるようになりました。……約30ミリ秒の短縮。あまり変わらないほど高速なadiaryでした!!

これで大量のテキストファイルからお別れです。MySQLのバックアップ方法は「CORESERVER.JPでMySQL(DB)を自動バックアップする方法」でご紹介していますのでご参考ください。

また、CORESERVERはファイル数制限(1フォルダで10万ファイル、1アカウントで20万ファイル)があるのでファイル数を減らす効果もありますね。

以下にMySQLへの移行作業手順をご紹介します。ご参考まで。

目次

adiaryをテキスト版(擬似データベース)からMySQL版に乗り換える方法

adiary2.07以降で有効です。2.06以前のバージョンをお使いの場合は、まずはadiaryを最新版にアップデートして下さい。
MySQLへのデータ移行は手順は難しくありませんが、一度でうまくいかない場合もあります。データのバックアップを必ず取り、すぐに復旧が可能な状態で行ってください。
以下の説明に起因するトラブルには一切責任は負いかねますのでご了承のほどよろしくお願いします。自己責任で移行作業を行って下さい。

  1. FTPソフト「/db/」フォルダ以下すべてのファイルをバックアップのためダウンロードします。(バックアップが不要な場合はこの手順は不要ですが、バックアップを取られることを強く推奨します。)
  2. MySQLのデータベースを準備する。(データベース名、ユーザー名、パスワード)
  3. サーバから「adiary.conf.cgi」をFTPソフトでダウンロードします。
  4. テキストエディタで「adiary.conf.cgi」を開き147行目付近の
    <$DB = loadpm('DB_pseudo', "<@data_dir>db/")>
    

    をコメントアウトします。

    #<$DB = loadpm('DB_pseudo', "<@data_dir>db/")>
    

    153行目付近の

    #<$DB = loadpm('DB_mysql', 'database=adiary', 'adiary', 'test', 1.connection_pool, 'ujis')>
    

    のコメントアウト「#」を削除し、データベース名、ユーザー名、パスワードを書き換えます。

    <$DB = loadpm('DB_mysql', 'database=testdb', 'testuser', 'testpassword', 1.connection_pool, 'ujis')>
    

    ファイルを上書き保存します。まだこの時点ではFTPでアップロードはしません。

  5. adiaryにログイン後、「管理」をクリックし「管理メニュー」画面を表示。
  6. 「▼管理 」→「エクスポート(データ出力)」をクリックし「エクスポート」替えmんを表示。
  7. 下の画面のように初期状態から「非表示コメント・トラックバックを出力しない」をOFF、「key記法(+記事番号)による日記帳内リンクを時刻指定に書き換え(リンク先保持)」をONと選択の上、「エクスポート」ボタンをクリックし、「XXXXX_export_adiary.xml」ファイルをダウンロードします。
    20090523_210000.png
  8. 「管理メニューに戻る」をクリックで管理メニュー画面を表示し、「▼管理 」→「日記帳/すべての日記の削除」をクリックし「日記帳の削除」画面を表示。
  9. 「すべての日記(記事)の削除」の「すべての日記を削除する」ボタンをクリック。(「日記帳を削除する」ではありません。
  10. 「本当に良ければ ‘Yes’ と入力 →」のボックスに「Yes」と入力し「すべての日記を削除する」をクリック
  11. 4で編集をした「adiary.conf.cgi」ファイルをFTPソフトで上書きアップロードします。(必要であれば上書き前のファイルをバックアップください。)
  12. 管理メニュー画面で「▼管理」→「インポート(データ入力)」をクリックし「日記のインポート」画面を表示。
  13. 下の画面のようにエクスポートしたファイルを指定し、「記事ID(番号)を保存する」をONにした上で、「インポート」をクリックします。
    20090523_211000.png
  14. 記事のインポート画面が表示されます。しばらく待ちましょう♪
  15. インポートが完了したら過去の記事番号が変わっていないかを確認します。
    (サイドバーにSystem Infoを表示されている方は、「RDBMS : MySQL」に変わっていることも確認。)

以上です。さらなる快適な、adairyライフをご満喫下さい!(*^_^*)。

参考・刺激された記事♪

  • adiaryのDBをpseudo DBからMySQLへ変更したらURIが変わったでござる – 浅学少識日記帳
  • アドバイスに従って再度インポートしたらエントリのURIが元に戻ったでござる – 浅学少識日記帳
  • DB変更時に記事URI (pkey) を保持する – adiary開発日誌

この記事が気に入ったら
フォローしてね!

この記事をシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次