« 消えたコメント-レビュー(1) | メイン | 眞鍋かをりさんのブログへトラックバック »

2008年01月11日

消えたコメント-レビュー(2)

 “消えたコメント”問題のレビューの続きです。
 
  消えたコメント-レビュー(1)(IT屋もりたの今時パソコン日記)
 
 
[ステップ4 解決策の実施]
 
 [ステップ3]で決めた解決策を実施するステップです。不具合の事象毎にご説明いたします。
 
 ⅰ.(新規エントリーの投稿が出来ない)
   この件につきましては、次の2つの対応に分かれます。
   (a) 一時的にコメント投稿受付を不可にする暫定的な対応
   (b) コメントテーブルを正常な状態に回復させる、本来の対応
 
   (b)につきましては、ⅱ.(コメントの投稿が出来ない)を解決することにより、この問題も解決しますので、以下のⅱ.でご説明いたします。
 
   (a)(一時的にコメント投稿受付を不可にする)の具体的な方法は、下図の通りになります(Movable Type 3.31-jaの管理画面)。
    Movable Typeの管理画面において、設定 - コメント/トラックバックの順に進み、“投稿を受け付ける条件”を「すべて」から「なし」に変更します。


   画面最下部にある「変更を保存」をクリックし、さらに「サイトの再構築」をクリックしてブログを再構築しますブログ全体の再構築を推奨します)。

 

 
 ⅱ.(コメントの投稿が出来ない)につきましては、
   この件の解決策は、“一旦コメントテーブルを削除(DROP TABLE)して、再作成(CREATE TABLE)する”というものでした。
 
   具体的に実行したSQL文は次の通りです(注1)
 
    drop table mt_comment;
 
    CREATE TABLE `mt_comment` (
     `comment_id` int(11) NOT NULL auto_increment,
     `comment_blog_id` int(11) NOT NULL default '0',
     `comment_entry_id` int(11) NOT NULL default '0',
     `comment_ip` varchar(16) default NULL,
     `comment_author` varchar(100) default NULL,
     `comment_email` varchar(75) default NULL,
     `comment_url` varchar(255) default NULL,
     `comment_commenter_id` int(11) default NULL,
     `comment_visible` tinyint(4) default NULL,
     `comment_text` text,
     `comment_created_on` datetime default NULL,
     `comment_modified_on` timestamp(14) NOT NULL,
     `comment_created_by` int(11) default NULL,
     `comment_modified_by` int(11) default NULL,
     `comment_junk_score` float default NULL,
     `comment_junk_status` smallint(6) default '0',
     `comment_last_moved_on` datetime NOT NULL default '2000-01-01 00:00:00',
     `comment_junk_log` mediumtext,
     PRIMARY KEY (`comment_id`),
     KEY `comment_created_on` (`comment_created_on`),
     KEY `comment_entry_id` (`comment_entry_id`),
     KEY `comment_blog_id` (`comment_blog_id`),
     KEY `mt_comment_junk_score` (`comment_junk_score`),
     KEY `mt_comment_junk_status` (`comment_junk_status`),
     KEY `mt_comment_last_moved_on` (`comment_last_moved_on`)
    ) TYPE=MyISAM AUTO_INCREMENT=57753 ;

 
   (注1) 実際にこのSQL文を実行するためには、端末エミュレータを立ち上げ、mysqlコマンドを実行します。これらの細かい操作についての記述は省略しました。
 
 
 ⅲ.(過去の全コメントデータが消えた)
   この件の解決策は、
   (1) バックアップファイル(最終取得日:2007年10月30日)の中からコメントデータのみを取り出します。
   (2) 取り出したコメントデータを、上記ⅱ.で再作成したコメントテーブル(mt_comment)の中に入れる。
  の2ステップでした。
 
   (1) バックアップファイルの中からコメントデータのみを取り出す。
 
     これを実現するために、対象のサーバーとは別のサーバーを使用しました。手元にあったバックアップ(MYSQLのdumpファイル)は、DB全体をまるごと1つのファイルに出力してあったためです。もしこれをまるごとリストア(復元)してしまうと、DB(つまりブログ)全体がバックアプを採取した時点に戻ってしまうからです(たとえDB全体を1つのファイルとして出力してあっても、指定したテーブル毎にデータを復元する方法があるのかもしれません。しかし知識不足の為、今回は上記の方法を採りました)。
 
    ・先ず対象とは別のサーバー上のDBに、バックアップデータを復元(リストア)します。
 
     具体的にはレンタルサーバーの管理画面(コントロールパネル)に用意されているデータベース操作ツールの「復元」機能を使用しました(下図がその画面です)。


    ・次にこのDBの中からコメントテーブルのデータのみを、dumpファイルに出力します。
 
     具体的には、次のようにmysqldumpコマンドを実行しました。
 
     mysqldump -u uuuuuuu -p -t ddddddd mt_comment > mysql_mt_comment_nocreate.dump
 
     ※ DB名の後ろに、テーブル名 mt_commentを指定することにより、コメントテーブルのデータのみ抽出できます。
     ※ 実際にはuuuuuuuの部分はユーザ名、dddddddはDB名を指定します。
     ※ 上記のコマンドの中で“-t”オプションを指定していますが、通常は指定しないことが一般的かと思います。今回の私どものケースでは、ⅱ.の解決策を先に実施し、コメントの投稿受付を再開したため、再開後も10件ほどのデータがコメントテーブル内に存在していました。そのため、“-t”オプションを指定してCREATE TABLE文の生成を抑制しました。
 
 
  (2) 取り出したコメントデータを、ⅱ.で再作成したコメントテーブルの中に入れる。
 
     この段階での処理は対象のサーバー上で行ないます。
 
     (1)で出力したdumpファイルをデータベースにインポートします(読み込む)。dumpファイルの中味はコメントテーブルのデータのみです。
 
     具体的には、次のコマンドを実行しました。
 
     mysql -u uuuuuuu -p ddddddd < mysql_mt_comment_nocreate.dump
 
     ※ インポートする時は、mysqldumpコマンドではなくmysqlコマンドを使用すること要注意!
     ※ uuuuuuuの部分はユーザ名、dddddddはDB名を指定します。
 
 
 
 以上で、“消えたコメント”問題の発生から解決に至るまで、私どもが採った対応に関する自己レビューを終了します。
 
 先月私どものブログで発生した障害の対応をネタとして、お伝えしてきた“消えたコメント”シリーズは以上です。長々とおつき合いいただいた読者の皆様に感謝申し上げます。これらのエントリーがどなたかのお役に立つならば、この経験も無駄ではなかったと言えるのですが...。
 
 
--- 関連情報 ---
(1) サーバー障害 2007年12月11日 IT屋もりたの今時パソコン日記
(2) 消えたコメント-ブログの障害調査(1) 2007年12月12日 IT屋もりたの今時パソコン日記
(3) 消えたコメント-ブログの障害調査(2) 2007年12月12日 IT屋もりたの今時パソコン日記
(4) 消えたコメント-見切り発車 2007年12月23日 IT屋もりたの今時パソコン日記
(5) 消えたコメント-復活しました 2008年01月08日 IT屋もりたの今時パソコン日記
(6) 消えたコメント-レビュー(1) 2008年01月10日 IT屋もりたの今時パソコン日記

投稿者 もりた : 2008年01月11日 23:39 このエントリーを含むはてなブックマーク この記事をクリップ!

トラックバック

このエントリーのトラックバックURL:
http://www.imadokipc.com/mt/mt-tb.cgi/784

コメント

コメントしてください




保存しますか?