當 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