Mysql基礎教程 mysql進階

Mysql數據庫監控



為什么會有mysql的監控


隨著軟件后期的不斷升級,myssql的服務器數量越來越多,軟硬件故障的發生概率也越來越高。這個時候就需要一套監控系統,當主機發生異常時,此時通過監控系統發現和處理。


這個監控實際上是在我們的開發完成之后,這個時候軟件就開始在運行,這個運行我們就需要去關注到mysql服務器是否正常,那么我們要觀察它就需要給它提供一些監控,這監控就是當它發生故障之后,那么我們這個監控就會告訴我們到底什么地方發生了一些異常或者一些錯誤,這個時候我們就可以去處理它。



常見的監控方式


自己寫程序或者腳本控制


多用于數據庫并不多或者這個數據庫本身比較小的時候,那么我們可以采用這種方式。


監控采用商業解決手段


多針對mysql商業的集群,比如說我們數據庫的服務器很多,那么這個時候我們只是單純的去寫這個程序的話,那么很可能監控不完,或者因為數據庫的原因,這個時候我們的監控就會出一些問題,那如果我們采用成熟的商業解決方法的話,有時候即便數據量很多的情況下,那么我們的這個數據庫也能正常運行的情況。


監控開源資源


這是鑒于第一種或者第二種之間的數據方法,就是采用一些開源的軟件,這些開源的軟件名義上是免費的,如果你要尋求一些開源軟件的技術支持,這個時候,你就向這些開源軟件的公司付一些費用。



程序去解或者監控mysql


監控mysql是否提供正常的服務


mysqladmin -uroot -p123456 -hlocalhost ping


如果結果輸出:mysqld is alive


獲取mysql當前的幾個狀態值


mysqladmin -uroot -p123456 -hlocalhost status


獲取數據庫當前的連接信息


mysqladmin -uroot -p123456 -hlocalhost processlist


獲取當前數據庫的連接數


mysql -uroot -p123456 -BNe "select host,count(host) from processlist group by host;" information_schema


檢查,修復,分析,優化MySQLServer中相關的表


mysqlcheck -u root -p123456 --all-databases



連接客戶端執行以下命令


用于監控 MySQL 使用臨時表的量是否過多,是否有臨時表過大而不得不從內存中換出到磁盤文件上  


SHOW STATUS LIKE 'Created_tmp%'


鎖定狀態:鎖定狀態包括表鎖和行鎖兩種,我們可以通過系統狀態變量獲得鎖定總次數,鎖定造成其他線程等待的次數,以及鎖定等待時間信息   


show status like '%lock%'


Innodb_log_waits 狀態變量直接反應出 Innodb Log Buffer 空間不足造成等待的次數 


SHOW STATUS LIKE 'Innodb_log_waits'


示例


在mysql的安裝目錄下面的bin目錄下面。


93.png


在這個二進制文件中直接運行它。


94.png


查看mysql當前的運行情況。


95.png


獲取mysql當前的幾個狀態值,其中包括運行時間,運行的限制數,查詢,慢查詢的次數,當前的打開還有表的打開等等,還有平均的查詢時間也可以看到。


96.png


獲取數據庫當前的連接信息,這里只有一個。


97.png


如果這時候我們開啟另一個客戶端。


98.png


那么當前就有兩個連接。


99.png


關掉之后,這個時候我們發現又變了,這個時候我們就可以去統計當前真正的數據庫連接。


990.png


統計這張表的信息,到底我們查詢的時候有多少個數據庫,或者我們休眠的時候連接數是多少,這個時候我們可以通過這個命令去查詢一下。


991.png


我們可以查詢到當前的1549的連接數為1,1728連接數為1,1549是本地的一個端口連接到服務器,另外一個是另一個端口連接到本機當中。


992.png


對當前連接數據庫的統計信息。


993.png


它會去檢查當前數據庫的表,對數據庫表進行分析,檢查,和優化,當我們返回信息為ok的時候,信息就執行成功。


994.png


用于監控 MySQL 使用臨時表的量是否過多,是否有臨時表過大而不得不從內存中換出到磁盤文件上。這個時候我們可以打開mysql的數據庫連接中去。


進入數據庫。


995.png


查看是否使用了太多的臨時表,這個說明了我們的mysql數據客戶端,利用率寫的是0,也就是說沒有利用我們的臨時表。


996.png


第二個就是因為我們的mysql是支持我們的表鎖行鎖的,當我們在這種情況下那么其他的數據庫有可能會等待,這個時候我們就要了解到底有多少個人在等待或者說它的等待時間到底多少,這個時候我們可以去看一下。


這里面是一個行的鎖,由于這里面沒有鎖行的操作,所以這里都是一個0,后面的主要就是一個鎖表的操作,鎖表的操作有一些等待的情況還有一些空間的利用率,可以在這里面了解到。當我們發現有些命令執行的時候,它的等待數比較多的時候,這個時候我們就要考慮一下把這個鎖表或者鎖行的操作取消掉。


997.png


第三個就是因為我們的mysql空間不多而造成的這個等待,它的等待數是多少我們可以通過這個命令去查看一下,這里面因為我們的mysql空間不多而造成的這個等待數為0,0的這個原因是因為這個空間時充足的,只有當我們的這個空間不足的時候,這個時候這個空間值才不會為0,而會為其他的一些非負數。


998.png



【本文由麥子學院獨家原創,轉載請注明出處并保留原文鏈接】

logo
? 2012-2016 www.jvbprd.live
蜀ICP備13014270號-4 Version 5.0.0 release20160127

免費領取價值1888元求職寶典!

客服熱線 400-862-8862

回到頂部

彩票安徽25选5 街机捕鱼online 现在学化妆赚钱 卖游戏手柄赚钱吗 vr吃鸡游戏叫什么 百度有哪些赚钱的软件下载 丫丫湖南转转麻将 8开游戏赚钱攻略 2013千炮捕鱼网络版 新兴产业赚钱项目 南昌麻将怎么摸牌 英雄联盟背景故事 存苹果赚钱吗 678彩票苹果 公司赚钱了股权争斗 广州做什么赚钱比较快 qq游戏陕西麻将外挂