日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 获取昨天凌晨_MySQL慢日志体系建设

發布時間:2023/12/10 数据库 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 获取昨天凌晨_MySQL慢日志体系建设 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

慢查詢日志是MySQL提供的一種日志記錄,用來記錄在MySQL中響應時間超過閾值的SQL語句,在很大程度上會影響數據庫整體的性能,是MySQL優化的一個重要方向。在58的云DB平臺建設中,慢SQL系統作為一個非常重要功能模塊,不僅是DBA日常運維使用,我們也希望通過該功能可以協助開發人員更快速定位業務問題。

目前我們的慢日志系統主要包括兩個核心功能:慢日志報表和實時慢SQL。

  • 慢日志報表主要基于上一天的所有慢SQL進行匯總分析,最后獲得慢SQL數量的變化趨勢、執行次數、執行平均時長等統計結果;

  • 實時慢SQL就是實時獲取線上生產數據庫產生的慢SQL語句,并提供給開發人員查閱。

慢日志分析工具

MySQL的慢日志分析工具主流有官方自帶的mysqldumpslow和第三方的pt-query-digest,由于后者有更多的額外屬性和附加能力,我們的慢日志分析工具選擇使用pt-query-digest。

pt-query-digest有兩個比較好用的功能:query review和query history。在使用review功能時,會將慢日志中的查詢語句去參數化后進行分組統計,并可將結果直接保存到數據庫中。使用history時,則會將慢SQL的查詢度量(如查詢時間、鎖時間等)保存到數據庫中,這些數據將來可用于趨勢分析和查詢性能分析。

慢日志報表

我們定義的慢查詢閾值(long_query_time) 標準為0.1s,不過不同的集群可以個性化定制。為了獲取數據庫每天的慢日志報表,后臺程序會根據云DB平臺的cmdb信息,對所有的數據庫集群每天凌晨進行切割,生成一個上一整天的慢查詢日志文件,大體格式如下:

整個58集團有幾千套數據庫集群,為了整體統計所有數據庫集群的慢SQL報表,我們內部開發了一套完善的慢SQL分析流程,主要包含SQL流水計算、全局分析、診斷優化、建議推送、跟蹤反饋等各個功能模塊。

通過收集模塊收集所有集群的慢SQL文件,計算模塊消費分析每天產生的慢日志文件,并將計算結果保存到MySQL中。篩選后的數據,由云DB平臺展示,并根據慢SQL的數量排行,將topN的郵件推送給開發人員。之后開發人員可使用云DB平臺,獲取慢SQL調優建議,并可借助工單系統,自助修改表索引,達到優化的目的。

我們的處理流程的大體如下:

慢SQL分析計算流程:

? 根據數據庫集群cmdb信息,獲取需要分析慢日志的數據庫列表并進行切割;

? 通過ansible將相應的慢日志文件拉取到慢日志分析服務器;

? 通過pt-query-digest分析慢日志并將結果寫入慢SQL詳情庫;

? 在數據庫管理平臺展示相應數據;

? 調用SQLAdvisor,獲取優化建議;

核心模塊為調用pt-query-digest的分析,此處采用信息入庫的方式,結果會保存到兩個結果表tb_slowlog_review和tb_slowlog_review_history中,分析的具體命令如下:

經過流水計算后,慢SQL分析的結果信息存儲在MySQL中,之后由數據庫云平臺開發相應的功能對外展示。目前我們主要抽象了如下幾個功能:

慢SQL數量統計及優化建議

對每個集群的慢SQL總數量進行趨勢圖展示,并包括該集群下所有慢SQL的執行次數、執行平均時間等維度的排序,以及對應的慢SQL優化建議,如下圖:

單條慢SQL詳情追蹤

針對產生的每一條慢SQL給出數量趨勢統計,并會統計該慢SQL的第一次出現時間、最新一次出現時間、來源IP、所屬業務集群、負責人、執行次數等詳細信息,最大程度的協助用戶快速定位該慢SQL的來源。具體見下圖:

除了上面兩個主要的模塊外,我們還支持每日慢SQL報表郵件推送,新增慢SQL匯總統計,通過多種方式協助高效進行慢SQL的優化,提高數據庫的訪問性能。

實時慢SQL系統

慢SQL報表系統,用于分析前一日產生的慢查詢日志文件,但一個非常大缺陷是不能分析當日實時產生的慢SQL,特別對于實時的線上調優效果,非常不方便。所以為解決該問題,我們實現支持了實時慢SQL功能,開發人員可在平臺中實時查看生產環境產生的每一條慢SQL語句。我們這里引入了ELK和Kafka相關技術,實時慢SQL系統結構如下:

實時慢SQL的收集工作流程如下:

  • 通過filebeat,實時采集慢查詢日志的文件變化;

  • 采集到的慢日志數據實時上報到kafka中;

  • Logstash消費kafka中數據,并進行過濾、切割,存入ES;

  • 云DB平臺讀取ES數據,進行數據展示

這樣在用戶端,開發人員即可所負責的MySQL集群中查看實時產生的慢SQL了:

總結

MySQL慢查詢,作為影響性能關鍵因素,應被DBA、開發人員重視,并及時處理。云DB平臺從總體報表、實時流水、定量分析等多個維度,打造MySQL慢查詢體系建設,為DBA以及開發人員提供有力支持。

總結

以上是生活随笔為你收集整理的mysql 获取昨天凌晨_MySQL慢日志体系建设的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。