Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


15.2.4.1 MyISAM テーブルの破損

MyISAM のテーブルフォーマットは、きわめて信頼性の高いフォーマットです (SQL ステートメントが行うテーブルに対するすべての変更は、そのステートメントが戻る前に書き込まれます) が、それでも次の状況が発生した場合、テーブルが破損するおそれがあります。

  • mysqld プロセスは、書き込みの最中に強制終了されます。

  • コンピュータが予期せずシャットダウンされます (たとえば、コンピューターの電源が切られた場合など)。

  • ハードウェア障害。

  • サーバーが修正中のテーブルを、外部プログラム (myisamchkなど) を使用して同時に修正しています。

  • MySQL または MyISAM コードのソフトウェアバグです。

テーブルが破損した場合の典型的な兆候は、次のとおりです。

  • テーブルからデータを選択するときに、次のエラーが表示されます。

    Incorrect key file for table: '...'. Try to repair it
  • クエリーが、テーブル内で行を検出しない、または不完全な結果を返します。

MyISAM テーブルのヘルスを CHECK TABLE ステートメントを利用して確認でき、破損した MyISAM テーブルを REPAIR TABLE を利用して修復できます。mysqld が動作していない場合は、myisamchk コマンドを利用してテーブルを確認したり修復したりすることもできます。セクション13.7.2.2「CHECK TABLE 構文」セクション13.7.2.5「REPAIR TABLE 構文」、および セクション4.6.3「myisamchk — MyISAM テーブルメンテナンスユーティリティー」 を参照してください。

テーブルが頻繁に破損する場合は、その原因を突き止めるようにしてください。もっとも重要なのは、サーバーのクラッシュによってテーブルが破損されたかどうかを確認することです。エラーログの最新の restarted mysqld メッセージを探すと、簡単に検証できます。このようなメッセージがある場合、テーブルの破損はサーバーのダウンによる可能性が高くなります。そうでなければ、破損は通常作業の最中に起きた可能性があります。これはバグです。問題点を明らかにする再現可能なテストケースを作成するべきです。セクションB.5.4.2「MySQL が繰り返しクラッシュする場合の対処方法」および セクション24.4「MySQL のデバッグおよび移植」を参照してください。


User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.