データベースが壊れた・・・

2012/3/31 土曜日 – 9:42:02

以前このホームページは自宅サーバで運用していたが、今は某社のレンタルサーバでwordpressやらpukiwikiを使って運用している。

記事を投稿しようとしたところ、wordpressのカテゴリ一覧にカテゴリが表示されていない。
(レコードの件数は表示されているが、データが表示されていない。)
おや、と思ってホームページを覗いたら一見ちゃんと表示されているような、いないような。
・・カテゴリが表示されていない。

記事単体へのリンクがあるところをクリックするとちゃんとデータは表示されるが、カテゴリへのリンクを埋め込んでいるところをクリックするとエラーになる。

どうやら、DBが壊れたみたい。

 

管理ツールのphpMyAdminで調べていくと、
・テーブルのデータは表示できる
・テーブルの構造を表示しようとすると「#126 – Incorrect key file for table ‘/home/tmp/*******’; try to repair it 」というエラーメッセージがでる
・テーブルによっては「#1030 – Got error 28 from storage engine」というエラーがでる

wordpressの管理画面では、全ての投稿のカテゴリが未分類になっていた。
wordpressの場合、termsというテーブルにカテゴリ名の情報を持っているが、このテーブルのデータは残っているようだった。
また、postsのテーブルもちゃんとカテゴリIDは埋まっているようだった。

phpMyAdminで、テーブルのチェック(CHECK TABLE `xxxx`)と修復(REPAIR TABLE `xxxx`)を試すが、SQLはOKを戻すが 「Incorrect key file for table 」等のエラーは消えずwordpressでもカテゴリは見えない。

・・CHECK TABLEは、DBがMyISAM、InnoDB共に使用できるSQL文ですが、REPAIR TABLE は、DBがMyISAMのときだけのようです。念のため。

 

google先生に聞くと、「Got error 28」等は/home/tmp等の領域不足ででるようなこともあるそうな。
ただ、レンタルコースのお安いコースでは権限が無く見ることができない。

 

ちょっと時間がたったバックアップしかもっていないので、全てバックアップできるか不安だったが、あわよくばという気持ちでバックアップをとってサポートに電話で相談してみた。

案の定、「ハード的に問題は無いので、DBの内容についてはお客様の自己責任で」という回答。

そうですか。

 

一応、「telnetで操作できる範囲なら何やってもいいんですか?」と聞いてみたら「ちがう部署が回答するのでメールで問い合わせて」とのこと。
ウ~ム、普通メールのやりとりでらちがあかないから電話するんじゃ・・と思いつつメールに向かう。

 

で、本日。
まだサポートから回答はないので、ひとまず対処方法を考えてみる。

■DBを作り直したら、本当に動くのか?
試しに新しいテーブルを作成してみたが、テーブルは作成されるものの、「Incorrect key file for table 」のエラーメッセージもおまけについてくる始末。

これじゃぁ、DBの作り直しだけじゃ対応できない。

まぁ、ここらがレンタルサーバのお安いコースの限界と悟る。
商用サイトを運用するなら、もうちょっとサポートの厚いコースか権限のあるvirtualサーバなどのコースが必要ということですかねぇ。

 

じゃぁ、このサイトは閉鎖か?
というものねぇ。

 

で、ふと気が付いた。
このレンタルサーバのコースは昔1つのDBだけした使えなかったが、その後複数のDBが作成できるように変更になっている。しかも、その際の移行の流れだと思うが、DBサーバが2つに分かれたようだ。

このホームページは古いDBサーバにデータをおいているので、新しいDBサーバにDBを作ることにしてみた。

 

DBを作成して、古いDBからエキスポートしたテーブル類を新しいDBにインポート。
DBの接続設定を変更して完了。

ちゃんと、カテゴリも表示されるようになった。データは破損していなかったようだ。

?? そこまでして修復するようなホームページかって ??
まぁ、趣味ですから・・

 

■教訓
・DBと設定ファイル類のバックアップはこまめにとりましょう。
・商用などの止めては困るサイトはちょっとコストがかかってもサポートの厚いコースにしましょう。
・お安いコースでいくなら、2つのコースを契約して、1日分のデータ消失はあきらめるとして日々相手側にバックアップをとって障害に備えるのも手か?
って、ところでしょうか。

結局、Mysqlのエラーの原因は未だ不明。
■本来なら
・MySQLが使用するテンポラリ領域の空きの有無の確認
・MySQLの再起動
等を行って原因調査や確認ってところでしょうが、手が出せないレンタルサーバではここまで。

ディスプレイドライバ、バージョンダウン

2012/2/23 木曜日 – 21:40:32

1月末にRADEONのドライバ類のアップデートをしてからブルースクリーンでとまることが多くなった我が家のPC。
atikmpag.sysで止まることがわかっていたので、あたらなドライバの出るのをまって再度アップデートして様子をみていたが、それでも一日一度は必ずブルースクリーンで落ちてくれる。

なもんで、バージョンを落としてさらに様子をみること1週間。
一度もブルースクリーンで止まることはなくなった。

古いバージョンでも特に困ったことはなかったことだし。

昔から、むやみに新しいバージョンだからといってやみくもに更新しないほうがいいとは言われているのは知ってはいるけど・・

最近のソフトは起動時にバージョンチェックするものが多くて、ご丁寧にバージョンアップしますかと聞いてくれる。

気が付いたときには、バージョンチェックをしないように設定をかえているのだが..
今後はもっと徹底しよっと。

(メモリ等々の相性がある?のかも知れませんが、このPCを組み立てたのが2010年の夏、メモリを増設したのが2011年6月。それまでも、メモリ増設後半年間も無事に動作してたのでドライバ類を古いのに戻した次第。)

atikmpag.sys

2012/2/2 木曜日 – 9:59:08

最近、Windows7がたびたびストールするようになった。
キーボードもマウスも効かないないのでやむを得ず電源ブチッ。再起動するたびにRaidのリビルドが走っとる始末。

ところが、今日はブルースクリーンが出て止まってなんとなく糸口がみつかった。
ビデオカードRADEONの「atikmpag.sys」らしい。

そういえば、先日ご丁寧にcatalystのアップデートがありますという通知が出ていたので、ああそうですかとバージョンアップしたんだ。

さて、前のバージョンに戻そうか、次のバージョンまで待とうか?

メモリ追加

2011/6/29 水曜日 – 6:58:43

デジカメの写真を整理していたら、メモリの写真がでてきた。
撮影は3月20日。
2台あるP6T WS Professionalのうち、1台のメモリが4Gbyteだったため、4Gbyte追加したときのもの。
VMを2つ動かすと、やはり4Gbyteではつらいので追加したのであった..

効果はバッチし。

P4P800-E 壊れた..

2011/4/14 木曜日 – 9:08:24

6年2カ月使ってきたパソコン P4P800-E。

最近はMTV2000でスカパーの番組をキャプチャーするだけの用途になっていたが、ついに壊れてしまった。

MTV2000をASRock P4i945GCに移そうとしたのだが、このボードはやたら大きいためケースに入らず、そのため、P4i945GCマザーボード自体をP4P800-Eで使っていたケースに移すことにした。

ついでに、P4P800-Eで使っていたWindowsXPのライセンスが余ることになるのでP4i945GCをWindowsXPにした。

これで、我が家ではWindows2000はVM上にインストールしたものを残してついに姿を消すことになった。
一番慣れ親しんだOSだったんだけど。

Wake on LAN (WoL)

2011/4/5 火曜日 – 13:40:18

現在、パソコンを1階と2階で使っているが、問題となるのがメールフォルダなど共有したいデータがあること。
これまでは、玄箱、LANTankを使っていたが、電源のスイッチを入れ忘れてて1階と2階をいったりきたり。

続いて使ってみたのがLinkStation。PCが起動するとLinkStationも起動する連動機能を使ったが、LinkStatioが複数台あると余分なLinkStationも電源が入る。

最近ではパソコンの使用用途を分けて使うようにしているのだが、それでも、やはり別のPCのデータが必要になることがある。

そこで、WoLを試してみることにした。
これまでも新しいPCを導入するたびに試していたのだが、確実に起動できるということがなかった。

起動したいPCは、1階、2階ともにP6T WS Professional、OSはWindows7。

まずは、BIOSの設定
・Suspend Mode
 → S3 Only
・APM Configurationの中にあるPower On By PCIE Devices
 → Enabled
 (当初オンボードNICがPCIかPCIEのどちらに接続されているのかわからなかったのでPower On By PCI Devices、Power On By PCIE DevicesともにEnabledにしてみたが、デバイスマネージャーを見るとRealtek PCIe GBE Family Controllerとなっていた。)

続いて、Windows上での設定
・デバイスマネージャ → ネットワークアダプター →Realtek PCIe GBE Family Controllerのプロパティ画面を開き、詳細設定のタブでWake on Magic Packetを有効にする。

同じく電源管理のタブで「このデバイスで、コンピュータのスタンバイ状態を解除できるようにする」「Magic Packetでのみ、コンピュータのスタンバイ状態を解除できるようにする」のチェックボックスにチェックする。
(P6T WS ProfessionalのオンボードNICは2つあるので、2つとも同じ設定にしておいた。)

・コマンドプロンプトが「ipconfig /all」でMACアドレスを調べる。
(上記、Realtek PCIe GBE Family Controllerのプロパティ画面の詳細設定タブのネットワークアドレス欄にも表示されているが、念のため..
ちなみに、私んちでは、2つのNICはチーミングで使用。)

いよいよ、テスト
magic packetを送出するフリーソフトはたくさんある模様。
とあるソフトを一つ選んでインストールし、MACアドレスを登録して、いざ起動!!
…できなかった。

BIOSやら、Windowsの設定をいくら見直してもだめ。
今回もやっぱWoLはダメかぁとあきらめかけたが、magic packetを送出するソフトを変更してみた。

「Wake up On Lan tool(WOL) Version 1.93」

これで、試したところうまく起動できた。その後も問題なし。確実に起動できるようになった。

さて、起動した他の階にあるPCの終了は、リモートデスクトップでログインし、そこでシャットダウンさせる。
ただし、リモートデスクトップでログインしているときは、スタートボタンを押してもシャットダウンの項目はない。

そこで、「Ctrl + Alt + End」キーを押してログイン画面を表示させると、右下にシャットダウンさせるためのボタンがひっそりと。
(Ctrl + Alt + Deleteキーでログイン画面を表示させると、自分自身のパソコンの電源が切れます…)

これで、1階と2階を行き来しなくても大丈夫。