mysql日誌 InnoDB 監控

2021-09-24 21:57:57 字數 3739 閱讀 6403

參考官方文件:

innodb監視器提供有關innodb內部狀態的資訊。 此資訊對效能調整很有用。

14.17.1 innodb 監控型別

innodb監視器有兩種型別:

innodb鎖定監視器列印額外的鎖定資訊作為標準innodb監視器輸出的一部分。

14.17.2 啟用 innodb 監控

當innodb監視器啟用定期輸出時,innodb將輸出寫入mysqld伺服器標準錯誤輸出(stderr)。 innodb將診斷輸出傳送到stderr而不是stdout或固定大小的記憶體緩衝區,以避免潛在的緩衝區溢位。

在windows上,除非另外配置,否則stderr將定向到預設日誌檔案。 如果要將輸出定向到控制台視窗而不是錯誤日誌,請在控制台視窗中使用--console選項從命令提示符啟動伺服器。

在unix和類unix系統上,除非另有配置,否則stderr通常會定向到終端。

啟用後,每15秒i,nnodb監控列印一次資料。 此資料在效能調整中很有用。 作為***,show engine innodb status的輸出每十五秒寫入mysql資料目錄中的狀態檔案。 該檔案的名稱是innodb_status.pid,其中pid是伺服器程序id。 當伺服器正常關閉時,innodb會刪除該檔案。 如果發生異常關閉,則可能存在這些狀態檔案的例項,必須手動刪除。 在刪除檔案之前,請檢查它們以檢視它們是否包含有關異常關閉原因的有用資訊。 僅當啟用了innodb-status-file配置選項時,才會建立innodb_status.pid檔案。 預設情況下禁用它。

只有在您真正想要檢視監視器資訊時才應啟用innodb監視器,因為輸出生成會導致效能下降。 此外,如果監視器輸出定向到錯誤日誌,如果您以後忘記禁用監視器,則日誌可能會變得非常大。

注意:為了幫助進行故障排除,innodb在某些條件下臨時啟用標準的innodb monitor輸出。

innodb監視器輸出以包含時間戳和監視器名稱的標頭開頭。 例如:

***********************************==

2014-10-16 18:37:29 0x7fc2a95c1700 innodb monitor output ***********************************==

標準innodb監視器(innodb monitor output)的標題也用於鎖定監視器,因為後者通過新增額外的鎖定資訊產生相同的輸出。

innodb_status_output和innodb_status_output_locks系統變數用於啟用標準innodb monitor和innodb lock monitor。

啟用或禁用innodb監視器需要process許可權。

啟用標準innodb監視器

通過將innodb_status_output系統變數設定為on來啟用標準innodb監視器。

set global innodb_status_output=on;

要禁用標準的innodb監視器,請將innodb_status_output設定為off。

在關閉伺服器時,innodb_status_output變數設定為預設的off值。

獲得標準的innodb監視器按需輸出

作為啟用標準innodb monitor定期輸出的替代方法,您可以使用show engine innodb status sql語句按需獲取標準innodb monitor輸出,該語句將輸出提取到客戶端程式。 如果您使用的是mysql互動式客戶端,那麼如果用\g替換通常的分號語句終止符,則輸出更具可讀性:

mysql> show engine innodb status\g

如果啟用了innodb鎖定監視器,則show engine innodb status輸出還包括innodb lock monitor資料。

啟用innodb鎖定監視器

innodb lock monitor資料使用innodb standard monitor輸出列印。 必須啟用innodb標準監視器和innodb鎖定監視器才能定期列印innodb鎖定監視器資料。

要啟用innodb lock monitor,請將innodb_status_output_locks系統變數設定為on。 必須啟用innodb標準監視器和innodb鎖定監視器才能定期列印innodb lock monitor資料:

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

14.17.3 innodb 標準監控器和 lock 監控器 輸出

鎖定監視器與標準監視器相同,只是它包含其他鎖定資訊。 為任意監視器啟用定期輸出會開啟同一輸出流,但如果啟用了鎖定監視器,則流包含額外資訊。 例如,如果啟用「標準監視器」和「鎖定監視器」,則會開啟單個輸出流。 在您禁用鎖定監視器之前,該流包含額外的鎖定資訊。

使用show engine innodb status語句生成時,標準監視器輸出限制為1mb。 此限制不適用於寫入tserver標準錯誤輸出(stderr)的輸出。

示例標準監視器輸出:

mysql> show engine innodb status\g

標準監視器輸出部分

有關標準監視器報告的每個度量標準的說明,請參閱「oracle企業管理器for mysql資料庫使用者指南」中的「度量標準」一章。

此部分顯示時間戳,監視器名稱以及每秒平均值所基於的秒數。 秒數是當前時間與上次列印innodb monitor輸出之間經過的時間。

srv_master_thread行顯示主後台執行緒完成的工作。

本節提供有關最新外來鍵約束錯誤的資訊。 如果沒有發生此類錯誤,則不存在。 內容包括失敗的語句以及有關失敗的約束以及引用和引用表的資訊。

本節提供有關最近死鎖的資訊。 如果沒有發生死鎖,則不存在。 內容顯示涉及哪些事務,每個嘗試執行的語句,他們擁有和需要的鎖,以及innodb決定回滾以打破僵局的事務。

本節提供有關innodb用於執行各種型別i / o的執行緒的資訊。 其中前幾個專門用於一般的innodb處理。 內容還顯示待處理i / o操作的資訊和i / o效能的統計資訊。

這些執行緒的數量由innodb_read_io_threads和innodb_write_io_threads引數控制。

此部分顯示innodb插入緩衝區(也稱為更改緩衝區)和自適應雜湊索引的狀態。

此部分顯示有關innodb日誌的資訊。 內容包括當前日誌序列號,日誌重新整理到磁碟的距離以及innodb上次檢查點的位置。 (請參見第14.12.3節「innodb檢查點」。)該部分還顯示有關掛起寫入和寫入效能統計資訊的資訊。

本節為您提供有關讀取和寫入頁面的統計資訊。 您可以根據這些數字計算您的查詢當前正在執行的資料檔案i / o運算元。

有關緩衝池統計資訊的說明,請參見第14.6.3.9節「使用innodb標準監視器監視緩衝池」。

此部分顯示主線程正在執行的操作,包括每種型別的行操作的數量和效能速率。

mysql日誌 innodb事務

1 binlog 歸檔日誌 server所有 sync binlog 表示每次binlog 都同步磁碟 2 redolog innodb儲存引擎特有 innodb flush log at trx commit 1 代表每次redolog都同步到磁碟 3 undolog 組成版本鏈 mvcc und...

mysql 監控事件 Mysql事件監控日誌

建立監控表 create table t event history id int unsigned not null primary key auto increment,dbname varchar 128 not null default cat eventname varchar 128 n...

mysql 事件 日誌 Mysql事件監控日誌

建立監控表 create table t event history id int unsigned not null primary key auto increment,dbname varchar 128 not null default cat eventname varchar 128 n...