資料管理DMS:自建MySQL資料庫全量SQL診斷功能釋出啦!

資料管理dms發表於2018-01-23

MySQL的使用者都面臨都一個難題,異常或者故障問題難定位,很多時候都靠“猜”。

如果比較幸運,異常正在發生,我們還可以獲取到會話、引擎狀態等資訊;

如果沒有異常現場,要找到根因,除了慢日誌、錯誤日誌、效能監控外,可能就沒有更多的可用資訊幫助使用者定位問題。

MySQL 從5.5版本開始,就出現了performance_schema,經過5.6版本和5.7版本的改進和增強,performance_schema提供了豐富的效能和診斷相關的資訊。

DMS基於performance_schema,提供使用者TOP SQL和全量SQL診斷功能,使用者可以通過該功能快速的定位到異常SQL。

藉助TOP SQL和全量SQL診斷功能,使用者同時可以在以下三個方便獲得收益:

clouddba_16

SQL列表

SQL列表展示了選定時間範圍內每一類SQL的SQL文字、耗時比例、平均耗時、平均掃描行數、首次出現時間、最後出現時間等資訊。

耗時比例=(該類SQL執行耗時 執行次數)/(所有SQL執行耗時 總執行次數) * 100%

所以耗時比例越高的SQL,基本上可以理解為佔用MySQL資源越多的SQL,優化該SQL,可以獲取的更高的收益比,以下圖的場景為例:
clouddba_16

前提條件

使用者獲取許可權並已登入DMS控制檯。

  1. 登入帳號需要performance_schema庫的查詢許可權;
  2. 需要開啟performance_schema;

show variables like `performance_schema`;
performance_schema=on;

如果處於off狀態,需要在你的my.cnf檔案中增加如下配置,然後重啟生效;

[mysqld]
performance_schema=ON

  1. 開啟statment_digest

update setup_consumers set ENABLED=`YES` where name=`statment_digest`;

  1. 開啟events_statements_history

update setup_consumers set ENABLED=`YES` where name=`events_statements_history`;

  1. 建議開啟events_statements_history_long

update setup_consumers set ENABLED=`YES` where name=`events_statements_history`;

背景資訊

目前暫時僅支援自建資料庫 MySQL 5.6.24以上版本。

開啟performance_schema約有10%左右的效能消耗;

DMS讀取performance_schema的資料可能會產生公網流量;

操作步驟

登入DMS控制檯——>選擇MySQL資料庫——>選擇“效能”選單——>點選“全量SQL診斷”

詳細操作步驟如下:

  1. 登入DMS控制檯後,介面如下圖所示:

clouddba_1

  1. 選擇MySQL資料庫,並單擊登入資料庫按鈕進行登入。
  2. 如下圖所示,在頂部導航欄選單中,選擇效能>全量SQL診斷;


相關文章