本文檔將指導您如何使用阿里雲資料庫自治服務(DAS)全新升級的全域慢日誌分析功能。通過建立和系統管理使用者組,您可以對多個資料庫執行個體進行分組、集中監控和統一分析,從而高效地發現、診斷並治理慢SQL,解決因慢查詢導致的資料庫負載高、效能抖動等問題,保障核心業務的穩定。
核心概念:使用者組
使用者組是新版慢日誌分析功能的核心。您可以把它理解為一個自訂的執行個體監控看板。通過建立使用者組,您可以:
邏輯分組:將不同業務線的資料庫執行個體劃分到不同的組中進行管理,每個使用者組最多可管理10個執行個體。
統一視圖:在一個視圖下,同時查看組內所有執行個體的慢日誌趨勢、事件分布和SQL統計。
高效切換:在不同業務關注點之間快速切換,而無需反覆勾選執行個體。
DAS 會預設建立一個系統組:TOP慢日誌組,每小時自動篩選您帳號下最近一天有重要例外狀況事件且慢日誌數量最多的 5個執行個體,加入該組,便於您快速定位和處理關鍵問題。
前提條件
支援的資料庫引擎:請確保您的資料庫執行個體屬於以下支援的引擎類型:
關係型資料庫:
RDS MySQL, PolarDB MySQL版, MyBase MySQL
RDS SQL Server, MyBase SQL Server
RDS PostgreSQL, PolarDB PostgreSQL版, PolarDB PostgreSQL版(相容Oracle)
PolarDB-X 2.0
NoSQL資料庫:
雲資料庫 Tair(相容Redis), MyBase Redis
ApsaraDB for MongoDB
執行個體接入:目標資料庫執行個體必須已成功接入DAS。詳情請參見接入接入資料庫執行個體。
地區支援:
慢日誌詳細資料:支援所有地區。
慢日誌即時統計資料:支援中國內地、中國香港、新加坡、馬來西亞(吉隆坡)、印尼(雅加達)、日本(東京)、德國(法蘭克福)、英國(倫敦)、美國(矽谷)、美國(維吉尼亞)地區。
自建資料庫:新版的慢日誌分析頁面目前不支援自建資料庫執行個體。
慢日誌閾值:慢日誌的記錄由資料庫核心本身控制。DAS負責分析,不負責設定閾值。您需要登入到具體的資料庫執行個體去配置慢日誌的閾值參數(例如MySQL的
long_query_time)。
操作流程
進入全域慢日誌頁面
管理與切換使用者組
切換使用者組:在頁面左上方的下拉式功能表中,可以選擇不同的使用者組來切換分析視圖。
建立使用者組:點擊新增使用者組按鈕。在彈出的對話方塊中,輸入使用者組名稱。點擊確認完成建立。
系統管理使用者組:
編輯/刪除群組:在使用者組面板中,點擊使用者組名稱旁的操作表徵圖,可對已建立的使用者組進行重新命名或刪除。
添加執行個體:進入目標使用者組後,點擊面板下方的新增更多執行個體按鈕,在彈出的對話方塊中:
在可選執行個體中單擊某個執行個體,即可將其添加到目前使用者組;
在已選執行個體中單擊已選執行個體,可將其從目前使用者組中移除。
刪除執行個體:在目前使用者組的執行個體列表中,點擊執行個體卡片上的 × 按鈕,即可移除該執行個體。
隱藏執行個體:在目前使用者組的執行個體列表中,點擊執行個體卡片上的
按鈕,即可將該執行個體從視圖中隱藏,其慢日誌資訊(包括趨勢、事件和慢日誌列表)將不再展示;再次點擊可取消隱藏,恢複顯示。使用者組另存新檔:點擊另存新檔按鈕,可基於目前使用者組的執行個體配置建立一個新的使用者組。
執行個體許可權:執行個體卡表藍色代表有許可權,無許可權的執行個體將以黃色高亮顯示,您只能看到其ID,無法查看具體資料。可自訂建立使用者組,排除無許可權的執行個體,確保組內僅包含可訪問的執行個體。
分析趨勢與事件
慢日誌趨勢:選擇時間範圍後,頂部的趨勢圖會展示目前使用者組內所有執行個體的慢日誌總數與趨勢。這有助於您快速定位效能抖動的發生時間點。
事件分布:趨勢圖下方展示了指定時間範圍內的關鍵資料庫事件,包括:
最佳化事件:出現SQL最佳化分析或者產生最佳化建議的事件。
安全事件:出現中高危安全風險的SQL攻擊、配置漏洞等事件。
限流事件:出現SQL限流、自動SQL限流動作的事件。
自動擴縮容事件:出現自動設定的擴容、縮容動作的事件。
定位並診斷慢SQL
頁面下方的慢日誌列表是核心分析地區,它彙總了目前使用者組內所有執行個體的慢日誌資訊。
全域統計:列表預設彙總所有慢SQL,展示其執行次數、最大執行耗時、最大鎖等待耗時、最大掃描行數、最大返回行數及最大 CPU 耗時。
單一實例下鑽:點擊執行個體ID/名稱旁的
箭頭,可以對該執行個體的慢日誌進行詳細分析。在執行個體的慢日誌資訊中,你可以看到慢日誌趨勢、事件分布、慢日誌統計和慢日誌明細。
您可以在慢日誌趨勢圖中選擇某個時間點,查看該時間點的慢日誌統計和慢日誌明細。
說明如果慢日誌語句內容過長,沒有完整展示,您可以將滑鼠指標放置在對應的慢日誌語句上,系統將以彈框的形式展示完整的慢日誌語句。
在慢日誌統計和慢日誌明細頁簽中單擊
,可以將慢日誌資訊儲存到本地查看。單擊
,可攜帶當前已選擇和輸入的參數,跳轉至OpenApi控制台,進行API調試。在事件分布地區:可以查詢到指定時間範圍內的慢日誌事件,單擊後可查詢事件詳情。
在慢日誌統計地區:
在列表上側,可選擇過濾條件,對資料進行篩選,不同的資料庫引擎可篩選條件不同。
單擊目標SQL模板Query ID列的資料ID,可查看包含使用者分布、用戶端分布和指標趨勢的相關性及明細列表。
單擊目標SQL模板操作列的最佳化,在彈出的SQL診斷最佳化對話方塊中,查看SQL診斷結果。
若您採納診斷建議,單擊頁面右上方的複製,並將最佳化後的SQL粘貼到資料庫用戶端或DMS上執行,若不採納診斷建議,可直接單擊取消結束診斷。
說明DAS會根據SQL的複雜程度、對應表的資料量、資料庫負載等進行SQL診斷,診斷建議的返回時間可能會超過20秒。完成診斷後,SQL診斷引擎會給出診斷結果、最佳化建議和預期最佳化收益,您可以根據診斷結果確認是否採納建議。
單擊目標SQL模板操作列的限流,在SQL限流頁面配置限流參數,對目標SQL進行限流。詳細操作請參見SQL限流。
對於PolarDB MySQL版資料庫執行個體,單擊目標SQL模板操作列的IMCI,查看列存索引(IMCI)的相關文檔。
說明當PolarDB MySQL版資料庫執行個體未購買列存索引節點,且慢日誌的最大執行時間超過20秒,最大掃描行超過20萬行時,顯示IMCI按鈕。
對於巨量資料量複雜查詢,推薦使用列存索引(IMCI)提升查詢效能。
在慢日誌明細地區,單擊目標SQL操作列的最佳化和限流,也可對目標SQL進行SQL診斷最佳化和SQL限流。
常見問題
Q: 為什麼我看不到任何慢日誌資料?
A: 由於採用Realtime Compute視窗彙總技術,慢日誌最新統計資料會晚於目前時間3分鐘展示。同時也請檢查:
資料庫執行個體的慢日誌功能是否開啟且閾值合理;
所選時間範圍內是否確實有慢日誌產生;
當前帳號是否擁有目標執行個體的DAS存取權限。
Q: 子帳號沒有許可權查看或系統管理使用者組怎麼辦?
A: 需要管理員對子帳號進行帳號層級的 action 授權,該授權僅涉及對慢日誌全域群組的操作許可權修改,不改變子帳號對執行個體的其他資料許可權。
全域群組管理員策略:例如:DASGlobalGroupAdmin。該策略可以增刪改查全域群組。
{ "Version": "1", "Statement": [ { "Action": [ "hdm:DescribeGlobalGroups", "hdm:CreateGlobalGroup", "hdm:DeleteGlobalGroup", "hdm:ModifyGlobalGroup" ], "Resource": "*", "Effect": "Allow" } ] }全域群組唯讀策略,例如:DASGlobalGroupReadOnly。該策略只能查看全域群組。
{ "Version": "1", "Statement": [ { "Action": "hdm:DescribeGlobalGroups", "Resource": "*", "Effect": "Allow" } ] }
Q:為什麼部分執行個體顯示為黃色(目前使用者無執行個體的存取權限)?
A:黃色標識表示子帳號無該執行個體的資料存取權限,可通過以下兩種方式解決:
聯絡管理員:為子帳號添加該執行個體的存取權限;
授予全域群組許可權:建議授予DASGlobalGroupAdmin許可權,以便子帳號按需建立使用者組,並批量查看其有許可權的執行個體資料。
相關文檔
您可以開啟DAS自動治理功能,以便在資料庫執行個體出現慢SQL時自動進行最佳化。