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


15.17.2 InnoDB モニターの有効化

InnoDB モニターで定期出力が有効になっている場合、InnoDB は約 15 秒ごとに mysqld サーバーの標準エラー出力 (stderr) に出力を書き込みます。

InnoDB は、潜在的なバッファオーバーフローを回避するために、モニター出力を stdout または固定サイズのメモリーバッファではなく stderr に送信します。

Windows では、特に構成されていないかぎり、stderr はデフォルトのログファイルに転送されます。 出力をエラーログではなくコンソールウィンドウに送る場合は、コンソールウィンドウで --console オプションを使用してコマンドプロンプトからサーバーを起動します。 詳細は、Windows のデフォルトのエラーログの保存先を参照してください。

Unix および Unix に似たシステムでは、特に構成されていないかぎり、stderr は通常端末に送信されます。 詳細は、Unix および Unix-Like システムでのデフォルトのエラーログの保存先を参照してください。

InnoDB モニターは、出力生成によってパフォーマンスが低下するため、実際にモニター情報を表示する場合にのみ有効にする必要があります。 また、モニター出力がエラーログに送られた場合、後でモニターを無効にしないと、ログが非常に大きくなる可能性があります。

注記

トラブルシューティングを支援するために、InnoDB は、特定の状況で InnoDB 標準モニターの出力を一時的に有効にします。 詳細は、セクション15.21「InnoDB のトラブルシューティング」を参照してください。

InnoDB モニターの出力は、タイムスタンプとモニター名を含むヘッダーで始まります。 例:

=====================================
2014-10-16 18:37:29 0x7fc2a95c1700 INNODB MONITOR OUTPUT
=====================================

ロックモニターでは、追加のロック情報が付加された同じ出力が生成されるため、InnoDB 標準モニターのヘッダー (INNODB MONITOR OUTPUT) はロックモニターにも使用されます。

innodb_status_output および innodb_status_output_locks システム変数は、標準の InnoDB モニターおよび InnoDB ロックモニターを有効にするために使用されます。

InnoDB モニターを有効または無効にするには、PROCESS 権限が必要です。

InnoDB 標準モニターの有効化

innodb_status_output システム変数を ON に設定して、標準の InnoDB モニターを有効にします。

SET GLOBAL innodb_status_output=ON;

InnoDB 標準モニターを無効にするには、innodb_status_outputOFF に設定します。

サーバーをシャットダウンすると、innodb_status_output 変数がデフォルトの OFF 値に設定されます。

InnoDB ロックモニターの有効化

InnoDB ロックモニターのデータは、InnoDB 標準モニターの出力とともに出力されます。 InnoDB ロックモニターデータを定期的に印刷するには、InnoDB 標準モニターと InnoDB ロックモニターの両方を有効にする必要があります。

InnoDB ロックモニターを有効にするには、innodb_status_output_locks システム変数を ON に設定します。 InnoDB ロックモニターデータを定期的に印刷するには、InnoDB 標準モニターと InnoDB ロックモニターの両方を有効にする必要があります:

SET GLOBAL innodb_status_output=ON;
SET GLOBAL innodb_status_output_locks=ON;

InnoDB ロックモニターを無効にするには、innodb_status_output_locksOFF に設定します。 InnoDB Standard Monitor も無効にするには、innodb_status_outputOFF に設定します。

サーバーをシャットダウンすると、innodb_status_output および innodb_status_output_locks 変数がデフォルトの OFF 値に設定されます。

注記

SHOW ENGINE INNODB STATUS 出力の InnoDB ロックモニターを有効にするには、innodb_status_output_locks を有効にする必要があります。

オンデマンドでの InnoDB 標準モニターの出力の取得

InnoDB 標準モニターでの定期的な出力を有効にする代わりに、出力をクライアントプログラムにフェッチする SHOW ENGINE INNODB STATUS SQL ステートメントを使用して、オンデマンドで InnoDB 標準モニターの出力を取得できます。 mysql 対話型クライアントを使用している場合は、通常のセミコロンのステートメントターミネータを \G に置き換えると、出力が読み取りやすくなります。

mysql> SHOW ENGINE INNODB STATUS\G

InnoDB ロックモニターが有効になっている場合、SHOW ENGINE INNODB STATUS 出力には InnoDB ロックモニターデータも含まれます。

標準の InnoDB モニター出力のステータスファイルへの送信

起動時に --innodb-status-file オプションを指定すると、標準の InnoDB モニター出力を有効にしてステータスファイルに送ることができます。 このオプションを使用すると、InnoDB はデータディレクトリに innodb_status.pid という名前のファイルを作成し、約 15 秒ごとに出力を書き込みます。

サーバーが正常に停止されると、InnoDB によってステータスファイルが削除されます。 異常停止が発生した場合は、ステータスファイルを手動で削除する必要がある場合があります。

--innodb-status-file オプションは一時的な使用を目的としています。出力生成はパフォーマンスに影響を与える可能性があり、innodb_status.pid ファイルは時間の経過とともに非常に大きくなる可能性があるためです。


関連キーワード:  InnoDB, モニター, テーブル, ロック, 出力, 構成, status, 標準, output, 圧縮