東京・埼玉で商店・事業所様のIT化の支援をさせていただいている「IT屋もりた」店長によるサポート日記です。消えたコメント-レビュー(2)“消えたコメント”問題のレビューの続きです。解決策の実施][ステップ3]で決めた解決策を実施するステップです。不具合の事象毎にご説明いたします。i.(新規エントリーの投稿が出来ない)この件につきましては、次の2つの対応に分かれます。コメントテーブルを正常な状態に回復させる、本来の対応(b)につきましては、ii.(コメントの投稿が出来ない)を解決することにより、この問題も解決しますので、以下のii.でご説明いたします。3.31-jaの管理画面)。コメント/トラックバックの順に進み、“投稿を受け付ける条件”を「すべて」から「なし」に変更します。画面最下部にある「変更を保存」をクリックし、さらに「サイトの再構築」をクリックしてブログを再構築します(ブログ全体の再構築を推奨します)。TABLE)する”というものでした。具体的に実行したSQL文は次の通りです(注1)。実際にこのSQL文を実行するためには、端末エミュレータを立ち上げ、mysqlコマンドを実行します。これらの細かい操作についての記述は省略しました。バックアップファイル(最終取得日:2007年10月30日)の中からコメントデータのみを取り出します。取り出したコメントデータを、上記ii.で再作成したコメントテーブル(mt_comment)の中に入れる。バックアップファイルの中からコメントデータのみを取り出す。これを実現するために、対象のサーバーとは別のサーバーを使用しました。手元にあったバックアップ(MYSQLのdumpファイル)は、DB全体をまるごと1つのファイルに出力してあったためです。これをまるごとリストア(復元)してしまうと、DB(つまりブログ)全体がバックアプを採取した時点に戻ってしまうからです(たとえDB全体を1つのファイルとして出力してあっても、指定したテーブル毎にデータを復元する方法があるのかもしれません。知識不足の為、今回は上記の方法を採りました)。・先ず対象とは別のサーバー上のDBに、バックアップデータを復元(リストア)します。具体的にはレンタルサーバーの管理画面(コントロールパネル)に用意されているデータベース操作ツールの「復元」機能を使用しました(下図がその画面です)。・次にこのDBの中からコメントテーブルのデータのみを、dumpファイルに出力します。具体的には、次のようにmysqldumpコマンドを実行しました。mt_commentを指定することにより、コメントテーブルのデータのみ抽出できます。実際にはuuuuuuuの部分はユーザ名、dddddddはDB名を指定します。上記のコマンドの中で“-t”オプションを指定していますが、通常は指定しないことが一般的かと思います。今回の私どものケースでは、ii.の解決策を先に実施し、コメントの投稿受付を再開したため、再開後も10件ほどのデータがコメントテーブル内に存在していました。TABLE文の生成を抑制しました。取り出したコメントデータを、ii.で再作成したコメントテーブルの中に入れる。この段階での処理は対象のサーバー上で行ないます。(1)で出力したdumpファイルをデータベースにインポートします(読み込む)。dumpファイルの中味はコメントテーブルのデータのみです。具体的には、次のコマンドを実行しました。uuuuuuuの部分はユーザ名、dddddddはDB名を指定します。以上で、“消えたコメント”問題の発生から解決に至るまで、私どもが採った対応に関する自己レビューを終了します。先月私どものブログで発生した障害の対応をネタとして、お伝えしてきた“消えたコメント”シリーズは以上です。おつき合いいただいた読者の皆様に感謝申し上げます。これらのエントリーがどなたかのお役に立つならば、この経験も無駄ではなかったと言えるのですが...。