分布式關系型數據庫PolarDB-X 1.0與日志服務聯合推出SQL審計與分析功能,不僅支持歷史SQL記錄的審計,而且提供對SQL執行狀況、性能指標、安全問題的實時診斷分析能力。

您可以在PolarDB-X 1.0控制臺,開通SQL審計與分析功能,進行實時日志分析。同時,PolarDB-X 1.0依托日志服務,提供開箱即用的報表中心,使您對數據庫執行狀況、性能、潛在安全問題了如指掌。

功能優勢

  • 操作簡單:輕松配置即可開啟,實時進行SQL日志的審計與分析。
  • 性能無損:實時拉取PolarDB-X 1.0節點SQL日志文件并上傳至日志服務,對實例本身性能無影響。
  • 歷史問題追溯:支持導入歷史SQL日志,追溯問題。
  • 實時分析:依托日志服務,提供SQL實時分析、開箱即用的報表中心并支持自定義報表和下鉆分析,對數據庫執行狀況、性能、安全問題了如指掌。
  • 實時告警:支持基于特定指標,定制準實時的告警,確保關鍵業務異常時可及時響應。
  • 價格優勢:存儲費用比傳統方案更低, 每GB日志存儲費用低至0.58元/月,詳情參考計費方式

限制與說明

  • 使用SQL審計與分析功能,需要開通阿里云日志服務。
  • 共享實例不支持SQL審計與分析功能。
  • SQL審計日志默認保存45天,您也可以根據需要修改日志保存時間。
  • 請勿隨意刪除或修改日志服務為您默認創建的Project、Logstore、索引和儀表盤設置,日志服務會不定期更新與升級SQL日志審計功能,專屬日志庫的索引與默認報表也會自動更新。
  • 子賬號使用SQL審計與分析,需要為其授予日志服務相關權限。
  • SQL審計功能默認為關閉狀態。開啟該功能后,會產生額外費用,詳細收費標準請參見計費方式。如果您需要關閉該功能,請在控制臺關閉。關閉后不再寫入數據,可以查看歷史數據,這部分歷史數據會產生存儲和索引費用。您可以在日志服務控制臺刪除Logstore以刪除歷史數據,刪除后日志服務不再對該部分數據計費。
  • 單條SQL的最大顯示長度為4096字符,超過部分會被截斷。

問題SQL排查

開啟SQL審計與分析功能后,您可以對SQL日志進行快速檢索,排查定位問題。例如,需要查詢是否有人執行DROP操作,可以執行如下查詢:

sql_type: Drop   

如下圖所示,查詢結果中包括SQL的執行時間、用戶、執行該SQL的客戶端IP地址等。

高代價SQL模板分析

大多數應用中,SQL通常是基于若干模板動態生成的,只是參數不同。通過日志服務的實時分析能力,您可以獲取當前數據庫中的高代價SQL列表。

例如執行以下查詢:

SELECT sql_code as "SQL模板ID", round(total_time * 1.0 /sum(total_time) over() * 100, 2) as "總體耗時比例(%)" ,execute_times as "執行次數", round(avg_time) as "平均執行時間",round(avg_rows) as "平均影響行數", CASE WHEN length(sql) > 200 THEN  concat(substr(sql, 1, 200), '......') ELSE trim(lpad(sql, 200, ' ')) end as "樣例SQL" FROM  (SELECT sql_code, count(1) as execute_times, sum(response_time) as total_time, avg(response_time) as avg_time, avg(affect_rows) as avg_rows, arbitrary(sql) as sql FROM log GROUP BY sql_code) ORDER BY "總體耗時比例(%)" desc limit 10

查詢結果如下圖所示。包括SQL模板的ID、該模板SQL占SQL的耗時比例、執行次數、平均執行時間、平均影響行數以及樣例SQL。您可以基于該分析結果,找到應用中代價最高的SQL模板,對其進行優化。

日志報表統計

為了便于分析問題,PolarDB-X 1.0的SQL審計分析結合日志服務,為您提供了開箱即用的報表,讓您對數據庫的執行狀況、性能和潛在安全問題進行實時診斷分析,報表頁面如下所示。

  • 運營中心

  • 性能中心

  • 安全中心
    456789