MySQL4→5に移行(チカッパ)(2)wp-postsの分割インポート

さて、おそらく普通なら前述の方法ですんなりいくはずの移行ですが、よめいりの場合、すでにDBファイルがかなり大きくなってしまっていたため、もうひと手間かける必要がありました。今後、同じ場面に出くわす方もいるかと思い(また自分へのメモも兼ねて)、ここに残しておきます。

チカッパでは、phpMyAdminでインポートできるファイルの最大サイズは5120KBです。インポートすべきファイルがこれより大きかった場合、どうすればいいのか。

<大きすぎるWPファイルの分割インポート方法>

  • パターンA:
    それぞれのテーブルのデータサイズが5120KBより小さかった場合(5120KBを越えるテーブルがなかった場合)。

    この場合、エクスポート時、いくつかにファイルを区切ってやります。

    1. 古いDBへphpMyAdminでアクセス。
    2. データベースタブを選択。DBを選択。(テーブル一覧が表示されるはず。)
    3. ここでエクスポートタブを選択すると、エクスポートするテーブルを選択することができます。必要に応じて(各ファイルが5120KBを越えないように)区切ってやってください。(通常であれば、wp-postsが一番大きなファイルになるかと思うので、1度目はwp-postsのみでエクスポート、2度目はwp-posts以外のすべてを選択してエクスポート、という2分割でいいのではないかと思います)。「DROP TABLE」追加、「IF NOT EXISTS」追加、ファイルに保存、へのチェックも忘れずに。
    4. 分割エクスポートしたファイルすべてを、新しいDBにインポートしてやればokです。
  • パターンB:
    テーブルのデータサイズが1つでも5120KBを越えてしまっている場合。

    この場合、5120KBを越えてしまっているテーブルについては、テーブル内のデータも分割してやらねばなりません。インポートの方法もちょっとこれまでと違います。

    まず、5120KBを越えていないテーブルについては、パターンAと同じ方法でエクスポート+インポートしてやります。5120KBを越えてしまった問題のテーブル(おそらくはwp-posts)についてのエクスポート+インポートのみ、以下のような手順で進めます。

    1. 古いDBへphpMyAdminでアクセス。
    2. データベースタブを選択。DBを選択。テーブル一覧から、該当テーブル(例えばwp-posts)を選択。(左のフレームから選択しても同じ)。
    3. エクスポートタブを選択。「DROP TABLE」追加、「IF NOT EXISTS」追加、ファイルに保存、にチェックをしてから、
    4. ファイル保存のすぐ上にある、「○○○列をダンプします。開始列は△△△です。」の箇所を修正します。最初の1つ目のエクスポートファイルは、5120KBに収まるように。2つ目からは1000KBに収まるくらいで区切っていきます。

      よめいりの場合、wp-postsは全2915レコードあり、6.8MBあったため、

      •  1500列をダンプ。0からスタート。(1)2.4MB
      •  400列をダンプ。1500からスタート。(2)828B
      •  400列をダンプ。1900からスタート。(3)1.4MB
      •  400列をダンプ。2300からスタート。(4)1.2MB
      •  400列をダンプ。2700からスタート。(5)564B

      というような感じで区切ってみました。

    5. 新しいDBにphpMyAdminでアクセス。ここで、これまでと同じように順にインポートしていけばいいように思いますが、実は同じテーブルでの複数回のインポートは「上書き」されてしまうため、うまくいきません。つまり、(1)→(2)→(3)→(4)→(5)の順でインポートしても、最後に残っているのは(5)のデータのみなのです。
    6. そこで、まずは1つ目のファイル(1)を通常のインポートで取り込んだ後(1つ目を通常のやり方でインポートすることでテーブルができあがります)、
    7. 2つ目以降((2)から(5))のインポートには、phpMyAdminのSQLタブを利用していきます。データベースを選択した状態で(テーブルを選択するのではなく、データベースを選択)、SQLタブを選択。「データベース xxxxxx で SQL を実行する」というフォームを確認。
    8. 2つ目のファイル(2)をエディタで開いて、ヘッダ(?)が終わった後にくる最初の「INSERT INTO」から末尾の「;)」までをコピー。phpMyAdminのフォームにペースト。実行。これで、今度は、同じテーブル内のデータが「上書き」されずに「追加」されたはず。
    9. 以下、(3)から(5)までも同じ手順を繰り返します。最後にテーブルのレコード数を確認。古いDBのそれと合っていれば、無事完了です。

(2つ目以降の((2)から(5)の)ファイルを一括でエクスポートし、エディタで開いて、適宜、フォームにコピー&ペーストするのもいいと思います。が、大きなファイルなだけにエディタが悲鳴をあげがちなので、ここでは予め分割エクスポートしておきました。)

チカッパのphpMyAdminでは、エクスポート・インポート時に圧縮・解凍する機能がないようですが、サーバによってはそれらの機能を提供している場合もあるようです。その場合、圧縮せずにエクスポート、エディタで開いて手直し(コメントアウトなど必要に応じて)、圧縮してインポート、などの方法で、大きいファイルでも乗り切れる場合があるようです。ご参考までに。

今回もまた、いくつものサイトにお世話になりました。どうもありがとうございました。

<助けていただいた(参考にした)サイト>

ネタフリネット » wordpress2.9のためにMySQL5のやつにしてみた(チカッパの場合)
http://www.netafuri.net/?p=1337

MySQLを4から5へ(さくら+WPの場合) « Waviaei
http://waviaei.com/2009/05/24/mysql-4-5-sakura-wordpress/

HashiMのたわごと(?) : 2009年3月14日(土曜日) – MySQLを4から5へ
http://kita2.net/nisshi/2009/03/140611

WordPress 2.9 アップデートのための MySQL バージョンアップ | site hirac
http://hirac.info/site/archives/wordpress-2-9-update-mysql-version-up/

WordPressサイトのハッスルサーバーからヘテムル (heteml)への移転手順その② | 無料で使える情報探す「おぼえがき」
http://oboegaki.net/website/server/heteml-3.html

主婦にもデキる! WordPress講座 ~ブログで夢を叶えよう~
http://archive.mag2.com/200907122118510000289570000.html
★特にこちらのサイトに非常に助けられました! ありがとうございました!

MySQL4→5に移行(チカッパ)(1)通常の手順

WPが2.9.xになりました。2.9系からはMySQL4.1.2以上が必要になったとのこと。チカッパのMySQLは4.0.26ですから、MySQL4→5への移行が必要です。手順は以下の通り。

<前提>

  • チカッパ利用です。WPはMySQL4に設置してありますが、MySQL5も利用可能です。データベース(以下DB)は2つつくることができます(現在1つだけ利用、1つは未使用)。
  • リスク回避のため、MySQL4に現在設置してあるDBは残したまま、MySQL5に新しいDBをつくってそこにクローンをつくることとします。

<おおまかな手順>

  1. MySQL5に新しいDBを作成します。
  2. MySQL4の旧DBよりデータをエクスポートします。
  3. MySQL5の新DBにデータをインポートします。
  4. FTPでwp-config.phpを書き換え、MySQL4→5へDBを切り替えます。

<詳細な手順>

  1. チカッパのコントロールパネルより、MySQL5に新しいDBを作成します。
  2. 古いDB(MySQL4)へphpMyAdminでアクセス(Japanese-utf-8)。
    • エクスポートタブを選択。
    • 構造の中の
      「「DROP TABLE」を追加する」
      「「IF NOT EXISTS」を追加する」
      にそれぞれチェック。
    • 「ファイルで保存する」にチェック。

    実行する、でエクスポート。

  3. 新しいDB(MySQL5)へphpMyAdminでアクセス(Japanese-utf-8)。
    • インポートタブを選択。
    • 「ファイルをインポートする」>「テキストファイルの場所」でさきほどエクスポートしたデータファイルを選択。

    実行する、でインポート。

  4. FTPでWPフォルダ>wp-config.phpにアクセス。一番上にある「MySQL設定」のうち、DB_NAMEとDB_HOST(変更した場合はDB_USERも)を新DBのものに変更。
  5. 完了!

※ 手順2と手順3の間に、エクスポートしたファイル開いて「CREATE DATABASE」からはじまる行と「USE」からはじまる行をコメントアウトする(行頭に「– 」をつける)必要があるかもしれません。わたしの場合は(この後また詳しく書いていきますが、ファイルが大きすぎて)すべてのファイルを一括エクスポートすることができず分割エクスポートしたためかコメントアウトすべき箇所が見つからず、コメントアウトはしないままインポートしました。

Twitterのバックアップ法を考えてみた(7種類くらい)

自分はそんなことない!と思っていましたが、Twitterが生活の一部になるに従い、ブログへの投稿は着実に減っています。復帰せねばと思いつつ…。(そんなリハビリも兼ねての今日の投稿)。

ようやく、というかなんというか、最近Twitterの話題をよく目にするようになりましたね。本家がいよいよモバイルに正式対応したり、他社が似たサービスを取り込んだり。まだこれからしばらくは盛り上がるんだろうなと思います。

生活の一部になると、気になってくるのがバックアップ。はじめたばかりの頃はあまり気に留めないかもしれないけれど、数ヶ月、数年単位で使っているうち、ライフログ(生活の記録、人生の記録)という言葉が実感を伴ってくるんですよね。「あれっていつだっけな」「あのときってどんなだっけ」という疑問が自分のTwitterログを検索することでハッキリしたりします。それにはやはりローカルへのバックアップ。Twitter本家で遡れるのは、3200発言まで(だったかな?)なので、できればそれ以内にはバックアップを開始したいところ。

ということで、バックアップ方法・数種類のご紹介です。

[a-1] バックアップ with Twitter RSS

おそらく一番手軽なのがこれ。twitter本家はそれぞれのアカウントごとにデフォルトでfeedを吐き出していますから、「http://twitter.com/自分のアカウント名」にアクセスし、そのページのfeedを購読すればok。購読して以降(設定によっては少し前から)のログがとれることと思います。このfeedに対しては、feed readerでずっとログを残しておく(一定期間が過ぎても、あるいは、一定発言以上になっても、ログを削除しない)設定にしておく必要があるでしょう。わたしは、(通常のfeed readerには別のアプリを使っていますが)Twitterのログに関しては、Mail.appのRSSで取り込んでます(検索しやすく、常時起動しているので)。

[b-1] バックアップ with TweetBackup

他社によるバックアップサービス。無料。Twitterアカウントでサインアップできます。日に1度(?)自動でバックアップをとってくれ、RSS形式、テキスト形式、HTML形式の3種類から選択してファイルをエクスポートすることができます(一括)。安定性に不安があるとの情報も(そもそも本家からして不安があるわけですけれども)。バックアップファイルを取得するには、わざわざここのサイトに行かねばならないので、勝手に降ってくるRSSなどに比べると少し手間ですが、過去のバックアップもとってくれるのはうれしい(3200発言より前のものは、Twitter本家の仕様によりとれないと思う)。以下、丁寧に説明されているページ。

[b-2] バックアップ with Twilog

国産のバックアップサービス。無料。Twitterアカウントでサインアップ。3200発言まで遡ってログを取得してくれる。以降、最長12時間ごとにバックアップ。つぶやきを日ごとにまとめて記録&表示してくれるのが特徴で、ブログ風にとっても見やすく表示してくれます(画像だって展開してくれちゃう)。設定画面より、CSV(SJIS)、CSV(UTF8)、XML(UTF8)の3種類でファイルエクスポート可。発言の削除や利用中止(退会)の機能がまだないけれど(必要な場合は、作者さんにtwitterで直接依頼)、とてもセンスがよく、今後に期待。RSSを吐いているので、本家の毎発言ごとのfeedがうっとうしい方は、これを登録する手もアリ。ただし、1日2度以上バックアップ&feedを吐くようなので、ブログのdaily posts等に応用するのはむずかしいかも(daily postsを実現したい方はcとdを参照)。

[c-1] バックアップ with WP+TwitterTools

WordPressな人にはおなじみのプラグインTwitterTools。たくさんある機能の中に「自動でtweetsをDBに貯め込みdaily/weekly postsをつくってくれる」というものがあります。自分の手のうちにデータが残るというのはやはり安心ですよね。環境によってはうまく動かないことがあるようです(わたしもそう)。

[c-2] バックアップ with WP+Yahoo!pipes”Twitter Digest”+WP-o-Matic

TwitterToolsがうまく動かない場合でも、こんな組み合わせで、同じようにDB蓄積+daily postsを実現することができます。今のよめいりtweetsは、この方法を利用して投稿させています(つぶやきカテゴリ内)。ちょっと敷居が高いかな。でも汎用性の高い方法なので、一旦設定してしまえば、後々いろいろ応用がききます。欠点は、20tweets/日までしか拾ってくれないこと(TwitterDigestの仕様)。また、日付の区切りが日本のそれではないので、日付に関してはアバウトな点です。

[d-1] バックアップ with WP+twitill

日本の作者さんによる「Twitterのつぶやきをまとめてブログに投稿」するサービス。mixiとメール送信に対応。実際に使ったことはないので想像になりますが、WPでメールでの投稿を可能な状態に設定しておけば、このサービスのメール送信と組み合わせて、WPへのまとめ投稿が可能になるのではないかと思います。まとめる間隔を1日〜7日で指定できるのが面白い。ほかにも、ヘッダー・フッター設定や、クライアント名(投稿元)によるフィルタリングなど、かなり細かな設定が可能です。国産なのでおそらく日本時間で動いているであろうこともポイントが高いですね。TwitterToolsの代替として使いやすいのではないかなと思います。

あ、必ずしもブログと連携させる必要はないのかな? RSSって何? Wordpressって何? という方がメールで(1日〜7日ごとに)バックアップをとっておくのにも使えるのかもしれません。

[d-2] バックアップ with WP+twtr2src

こちらもまた、日本人の作者さんによる「tweetsをまとめてメールしちゃうよ」的サービス。twitill同様、試していませんが、おそらくWPへのdaily postsが可能になるはず。こちらのサイトで手順が丁寧にまとめられています(解説はBloggerの設定についてですが、WPにも応用できると思います)。

ちなみに、ここよめいりでは、全体のfeedからはtwitterのdaily postsは抜いています(…のつもりが、抜けてませんでした、すみません! たぶんしばらく前のWPのバージョンアップ辺りから? あわてて修正。今後は大丈夫だと思います。ご迷惑おかけしました)。ブログ投稿の合間にtweetsが挟まるのであれば問題ないのですが、tweetsの間にブログ投稿が挟まるような(ブログ投稿の頻度が低い)場合、tweetsってちょっとうるさく感じてしまうので。わたしが使っているのは、WPのSideblogプラグインのおまけ的機能ですが、SimplyExcludeプラグインなどはその機能に特化したものかも(未使用)。

しっかりローカルにバックアップをとって、安心のtwitterライフを送りましょう〜。
 
 
<追記(2011/09/20)>
WP-o-Matic+TwitterDigest@Yahoo!pipesで自動投稿させていたつぶやきですが、twitter本家で何か(feed URL?)変更があったためでしょうか、8月下旬くらいからうまく投稿できなくなっていました。そのため現在は、WP-o-Matic+Twilog RSSで投稿させています。

 Twilog feed
 http://twilog.org/rss-feed/アカウント名

でWP-o-Maticのcampaignをつくればok。ちなみに現在のtwitter本家feedは、

 Twitter本家feed
 http://twitter.com/statuses/user_timeline/アカウント名.rss

で取得できます。また、ひさしぶりにaddonを探してみたら、WP-o-Maticを簡易にしたようなものを見つけました。

 WordPress › RSS Digest « WordPress Plugins
 http://wordpress.org/extend/plugins/rss-digest/screenshots/

各種feedから、daily/weeklyでのまとめ自動投稿(digest post)が可能です。設定も簡単。ただ古いfeedが下になってしまう点は好みかな。わたしはこれが苦手で導入を見送りました。いずれ設定で変更できるようになるといいですね。

七五三準備

ほたる、今年は七五三です。

決まっていることは、3才のときと同じように、かつてわたしが着た着物を着ること。でも、3才のときと違うのは、ままがいないこと、そして、ババの頭がもうはっきりしていないこと。

桐のタンスから、たぶんこれかな、という着物をひっぱり出したはいいものの、本当にこれでいいのかどうか(着物の色は覚えているけれど、帯なんかはよく覚えてない)、必要なものが足りているのかどうか、髪飾りなどの小物が時代遅れのものになっていないかどうか、そんななにもかもがわからない。

どうしたものかと頭を抱えた後、ふと、そうだ、と思って、以前(まだままがいる頃に)ほたるの浴衣を買った呉服屋さんに、ひっぱり出したものすべてを持ち込んでみることにしました。

結果、そこそこきれいな状態で保管されているので事前にクリーニングに出す必要はないということ、ゆきも丈も少し大きめだけど直すほどではないということ、ほぼすべて揃っているけれどいくつか足りない小物があるということ(これはそちらで買わせていただくことにしました)、髪飾りも今持っているもので十分だということ、など教えていただくことができ、ほーっとひと安心しました。

ひっぱり出したときには、途方に暮れるあまり、いっそすべてがセットになっているレンタルの方が失敗がないのでは… などとも思いましたが、かつてババがこだわって選んでくれた思い出の着物、できればやはりこれを着せたいなぁと思ったので、その希望が叶いそうでうれしいです。

虫歯撃退

小さい頃から、おどろくほど虫歯に悩まされてきたほたるですが、ここ数年、めきめきと丈夫な歯になってきています。

保育園に通っていたため、甘いものを与える機会がほかの子と比べてさほど多かったわけでもなく。最初に虫歯が見つかってからは、手入れもそれなりにしてきたつもりだったのだけど。それでも毎年、保育園の歯科検診では必ず数本新たに虫歯が見つかってしまい、ガックリきていました。人には、歯垢ができやすいタイプと、虫歯ができやすいタイプがあると聞くけれど、ほたるは間違いなく後者だろうなぁと。そう、少し前までは。

そのほたるの歯に変化があらわれてきたのは、数年前。

最初に気がついたのは、歯ではなく、爪でした。薄くて割れやすかったほたるの爪が、急に頑丈になってきたのです。それまであまり積極的にとっていなかった牛乳を、新しい保育園で飲みはじめた頃からでした。牛乳のおかげ、かどうかはわかりません。たまたま年齢的に丈夫になってくる時期だったのかもしれないし、保育園の他の食事のせいだったかもしれない。でも、牛乳かなぁ、という感じはしています。牛乳については、わたし自身が授乳の際に(何度も乳腺を詰まらせて)豆乳に切り替えてから、必ずしもいいイメージばかりは抱いていないのですが、それでも、牛乳の可能性が高いかなと。ちょびっと牛乳を見直しました。

それから少しして、ほたるに新たな習慣も加わりました。キシリトールのガムを噛むことと、電動歯ブラシ(音波)を使うようになったことです。キシリトールは、ちちの勧めで。ガムをかんで虫歯が減るなんてそんな都合のいい話があるんだろうか〜とわたし自身は懐疑的だったのですが、まあほたるは喜んでいましたので、しばらく様子を見ることにしました。電動歯ブラシは、これまでも何度か試したことはあったのですが、ようやくくすぐったがらずに使える年齢になったので、解禁。

こうして、

 牛乳を飲み、
 食後にキリシトールガムをかみ、
 電動歯ブラシを使うようになったことで、

ほたるの歯は(目に見えて)透明感を取り戻し、ここ数年、歯科検診でも新たな虫歯は見つかってません。すごい!  このどれがいい影響を与えているのか、実はまるで関係がないのか、そこのところはわたしにはわかりませんが、もし、頑張っても頑張っても虫歯ができるというお子さんをお持ちの方がいらしたら、上記、お試しになってみてもいいかもしれません。

(今朝の新聞で、こどもへの虐待を見抜く1つの方法として「虫歯があまりに多い場合」というのがあることを知り、うわ〜、と思い、投稿してみました。)