MySQL巡檢怎麼做
導讀
作者:田帥萌
知數堂MySQL DBA班第9期優秀學員,現任職知數堂助教
郵箱:[email protected],歡迎交流、拍轉
馬上要迎來長假,想想是不是有點小激動,但激動的同時也要了解一下MySQL伺服器的狀態,以免在外旅遊時,沒準正和妹子啪啪的時候,突然來個報警,那內心的草泥馬恐怕要無限奔騰......
一、作業系統巡檢
如果有zabbix或者其他監控型別的工具,就方便很多。
首先看 CPU記憶體、硬碟io的消耗程度,其中重點是硬碟使用率,要為長假做好準備,避免廠家期間業務寫入增長,磁碟佔滿。
每家業務不一樣,所以參考標準不一樣。 如果沒有zabbix,建議使用sar這個小工具,能夠收集歷史的資訊,它的歷史資料在/var/log/sa下面,通過 -f 來指定檔案。
舉例:
1.1 cpu監控
1.2 記憶體監控
1.3 I/O監控
1.4 系統SWAP監控
當然,檢視當前的磁碟和記憶體使用情況df -h,free -m,是否使用numa和swap,或是否頻繁互動資訊等。當然,還有其他的監控專案,這裡就不一一贅述了。
除此之外,還需要關注日誌類資訊,例如:
二、MySQL本身巡檢
MySQL本身的監控應該包含重點引數的檢查,MySQL狀態的檢查,除此以外還應該包含自增id的使用情況(小心因為自增id使用滿了 不能insert寫入從而引發報警哦),及主從健康狀態的巡檢。
2.1 重點引數
2.2 MySQL的狀態
例如:每秒的tps、qps,提交了多少事務、回滾了多少事務、開啟檔案數、開啟表數、連線數、innodb buffer使用率,及鎖等待等等。
首先,檢視mysql狀態
show status中的一些狀態資訊
1、wait事件
2、MySQL鎖監控
還可以定時收集INFORMATION_SCHEMA裡面的資訊:
Binlog
連結數:
臨時表:
索引:
執行緒:
我寫了一個不成熟的小巡檢程式,僅巡檢MySQL的狀態和引數配置(因為客戶的環境不能直連linux但可以直連MySQL),有興趣的小夥伴可以看看。詳見:
https://github.com/enmotplinux/On-Site-Inspection
2.4 MySQL自增id的使用情況
2.5 儲存引擎是否為innodb
2.6 MySQL主從檢測
2.6.1 主從狀態
主從狀態是否雙yes?
2.6.2 主從是否延遲
最後,同樣要檢查MySQL的日誌,提前發現潛在風險:
-
MySQL error log
-
MySQL 慢查詢日誌
三、高可用巡檢
3.1 MHA && keepalived
觀察日誌看是否有頻繁主從切換,如果有的話就分析一下是什麼原因導致頻繁切換?
3.2 中介軟體的巡檢 mycat && pproxysql
這些中介軟體的巡檢,首先參考系統巡檢,再看一下中介軟體本身的日誌類和狀態類資訊,網路延遲或丟包的檢查,也是必須要做工作。
四、總結
關於巡檢來說,每個環境都是不一樣的,所以巡檢的側重點也是不一樣的,但基本的巡檢步驟是避免不了的,如果有其他的巡檢姿勢也歡迎一起討論。
掃碼加入知數堂技術交流QQ群
(群號:579036588)
群內可@各位助教了解更多課程資訊
知數堂
葉金榮與吳炳錫聯合打造
領跑IT精英培訓
行業資深專家強強聯合,傾心定製
MySQL實戰/MySQL優化 / Python/ SQL優化
數門精品課程
緊隨技術發展趨勢,定期優化培訓教案
融入大量生產案例,貼合企業一線需求
社群陪伴學習,一次報名,可學3期
DBA、開發工程師必修課
上千位學員已華麗轉身,薪資翻番,職位提升
改變已悄然發生,你還在等什麼?