MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  InnoDB ストレージエンジン  /  InnoDB のトラブルシューティング

15.21 InnoDB のトラブルシューティング

InnoDB の問題のトラブルシューティングには、次の一般的なガイドラインが適用されます。

  • 操作が失敗した場合、またはバグが疑われる場合は、MySQL サーバーのエラーログを参照してください (セクション5.4.2「エラーログ」 を参照)。Server Error Message Reference では、発生する可能性のある InnoDB 固有の一般的なエラーのトラブルシューティング情報が提供されます。

  • 障害が deadlock に関連している場合は、各デッドロックの詳細が MySQL サーバーのエラーログに出力されるように、innodb_print_all_deadlocks オプションを有効にして実行します。 デッドロックの詳細は、セクション15.7.5「InnoDB のデッドロック」 を参照してください。

  • 問題が InnoDB データディクショナリに関連している場合は、セクション15.21.3「InnoDB データディクショナリの操作のトラブルシューティング」 を参照してください。

  • トラブルシューティング時は通常、mysqld_safe 経由、または Windows サービスとしてではなく、コマンドプロンプトから MySQL サーバーを実行することが最善です。 それにより、mysqld がコンソールに出力する内容を確認できるため、何が発生しているかをより的確に把握できます。 Windows では、出力先がコンソールウィンドウになるように、--console オプションを付けて mysqld を起動します。

  • InnoDB モニターを有効にして、問題に関する情報を取得します (セクション15.17「InnoDB モニター」 を参照)。 その問題がパフォーマンスに関するものか、またはサーバーがハングアップしているように見える場合は、InnoDB の内部状態に関する情報を出力するために、標準モニターを有効にするようにしてください。 問題がロックに関するものである場合は、ロックモニターを有効にします。 テーブルの作成、テーブルスペースまたはデータディクショナリ操作に問題がある場合は、InnoDB Information Schema system tables を参照して InnoDB 内部データディクショナリの内容を調べます。

    InnoDB は、次の条件の下で InnoDB 標準モニターの出力を一時的に有効にします。

    • 長いセマフォー待機

    • InnoDB がバッファープール内に空きブロックを見つけることができない

    • ロックヒープまたはアダプティブハッシュインデックスによってバッファープールの 67% を超える領域が占有されている

  • テーブルが破損していると思われる場合は、そのテーブルに対して CHECK TABLE を実行します。


関連キーワード:  InnoDB, テーブル, 構成, ロック, スペース, 圧縮, 情報, インデックス, INFORMATION, SCHEMA