启动mysql的innodb monitor功能
在使用Innodb做為存儲引擎的數據庫系統中,可以使用innodb_monitor 來監控數據庫的性能,
啟動innodb_monitor的方法為
Create table innodb_monitor (i int) engine=innodb ;
通過建立這個表就啟動了innodb_monitor,監控的結果并不會記錄到這個表中,而是記錄到了mysql的err日志中,如果我們想監控更我的關 于innodb的鎖信息還可更進一步的建立表
create table innodb_lock_monitor (i int) engine=innodb 這樣在日志中會加入更多的鎖信息,
如果要關閉監控只要簡單的刪除這兩個表就可以了.Drop table innodb_monitor; drop table innodb_lock_monitor;
?
InnoDB引擎提供了一個monitor,可以通過monitor一窺其內部的一些統計信息,也可以說是了解InnoDB引擎的一個很好的窗口。
我們最熟悉的,應當就是show innodb status命令,可以直接在客戶端輸出很多的信息。
其實InnoDB monitor一共有四種模式,show innodb status只是其一種模式的直接展現,并且只能交互式開啟,無法自動循環捕獲信息。另外還有一種適合四種模式的開啟方式,則是通過創建一張特殊的 innodb表來開啟,開啟后會按照固定的時間間隔循環,輸出信息到log-error參數指定的錯誤日志文件中,通過drop對應的表,可以停止 monitor。
四種monitor分別是:
- innodb_monitor:create table innodb_monitor(x int) engine=innodb;
- innodb_lock_monitor:create table innodb_lock_monitor(x int) engine=innodb;
- innodb_table_monitor:create table innodb_table_monitor(x int) engine=innodb;
- innodb_tablespace_monitor:create table innodb_tablespace_monitor(x int) engine=innodb;
根據我在5.1.36版本中實際觀察到的結果,innodb_monitor/innodb_lock_monitor開啟后的執行周期是16s(參考手冊上說是15s),而innodb_table_monitor/innodb_tablespace_monitor的執行周期是64s。開啟monitor后因為是持續周期性的運行的,在不需要的時候一定要記得drop相關表來停止monitor。如果在開啟monitor的中間服務器有重啟,monitor不會自動重啟,并且在下次啟動monitor之前,必須先執行停止操作。
其中innodb_monitor/innodb_lock_monitor兩種監視器的輸出結果基本類似,后者會有更多關于鎖的信息,而前一 個實際上就是show innodb status。innodb_table_monitor則會將系統中所有innodb的表的一些結構和內部信息輸出,而 innodb_tablespace_monitor則輸出的是tablespace的信息,注意該monitor輸出的只是共享表空間的信息,如果使用 innodb_file_per_table為每個表使用獨立的表空間,則這些表空間的信息是不會包含在輸出中的。
本文轉自 ? ?geekwolf ? 51CTO博客,原文鏈接:http://blog.51cto.com/linuxgeek/995242
總結
以上是生活随笔為你收集整理的启动mysql的innodb monitor功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TCP/IP 某些最常见的错误原因码 (
- 下一篇: windows系统命令行下常用命令收集