當 InnoDB 監控器啟用定期輸出時,InnoDB 大約每 15 秒將輸出寫入 mysqld 伺服器標準錯誤輸出 (stderr)。
InnoDB 將監控器輸出傳送至 stderr,而不是傳送至 stdout 或固定大小的記憶體緩衝區,以避免潛在的緩衝區溢位。
在 Windows 上,除非另有設定,否則 stderr 會導向預設日誌檔。如果您想要將輸出導向主控台視窗,而不是錯誤日誌,請使用 --console 選項從主控台視窗中的命令提示字元啟動伺服器。如需詳細資訊,請參閱Windows 上預設的錯誤日誌目的地。
在 Unix 和類 Unix 系統上,除非另有設定,否則 stderr 通常會導向終端機。如需詳細資訊,請參閱Unix 和類 Unix 系統上預設的錯誤日誌目的地。
只有在您實際想要查看監控器資訊時才應啟用 InnoDB 監控器,因為輸出產生會導致效能降低。此外,如果監控器輸出導向錯誤日誌,如果您忘記稍後停用監控器,則日誌可能會變得非常大。
為了協助進行疑難排解,InnoDB 在某些情況下會暫時啟用標準 InnoDB 監控器輸出。如需詳細資訊,請參閱第 17.20 節,「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 鎖定監控器。
需要 PROCESS 權限才能啟用或停用 InnoDB 監控器。
啟用標準 InnoDB 監控器
將 innodb_status_output 系統變數設定為 ON,以啟用標準 InnoDB 監控器。
SET GLOBAL innodb_status_output=ON;若要停用標準 InnoDB 監控器,請將 innodb_status_output 設定為 OFF。
當您關閉伺服器時,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_locks 設定為 OFF。同時將 innodb_status_output 設定為 OFF 即可停用 InnoDB 標準監控器。
當您關閉伺服器時,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 監控器輸出可以透過在啟動時指定 --innodb-status-file 選項來啟用並導向至狀態檔。當使用此選項時,InnoDB 會在資料目錄中建立一個名為 innodb_status. 的檔案,並大約每 15 秒將輸出寫入該檔案。pid
當伺服器正常關閉時,InnoDB 會移除狀態檔。如果發生異常關閉,可能必須手動移除狀態檔。
--innodb-status-file 選項旨在暫時使用,因為輸出產生可能會影響效能,而且 innodb_status. 檔案可能會隨著時間變得非常大。pid