全部產品
Search
文件中心

Database Autonomy Service:其他鎖分析

更新時間:Jun 04, 2026

本文介紹如何使用DAS鎖分析功能對資料庫進行中繼資料鎖等待分析和事務阻塞分析。

說明

文中所示圖片中的資料為測試案例資料,實際使用過程中,請以實際資料參數為準,包括線程ID、SQL語句等。

前提條件

鎖類型

  • 中繼資料鎖分析

    • 分析資料:根據information_schema.processlist等的資料,推導鎖等待關係,並產生相應的關係圖。

  • 事務阻塞分析

    重要

    事務阻塞分析功能不支援PolarDB MySQL版 5.6執行個體。

    • 分析資料:根據information_schema.processlistinformation_schema.innodb_trx,以及以下表中資料,分析事務阻塞關係,並產生相應的關係圖。

      • RDS MySQL 5.6、5.7:information_schema.innodb_lock_waits

      • PolarDB MySQL 5.7:information_schema.innodb_lock_waits

      • RDS MySQL和PolarDB MySQL 8.0:performance_schema.data_lock_waits

    • 參數設定:對於RDS MySQL 8.0和PolarDB MySQL版 8.0執行個體,需要開啟performance_schema參數。修改資料庫執行個體參數:

觸發方式

鎖分析-觸發式分析

建立分析

  1. 登入DAS控制台

  2. 在左側導覽列中,單擊智能營運中心 > 執行個體監控

  3. 找到目標執行個體,單擊執行個體ID,進入目標執行個體詳情頁。

  4. 在左側導覽列中,單擊鎖分析,在鎖分析頁面中其他鎖分析項下,點擊建立分析,發起其他鎖分析。

查看詳情

單擊診斷結果前的image可以查看中繼資料鎖等待和事務阻塞分析相關資訊。在其他鎖分析頁面,展開一條診斷記錄後,可查看鎖類型詳情,包括中繼資料鎖(被阻塞會話數 2)和事務鎖(被阻塞會話數 2)。單擊對應鎖類型右側的查看詳情可查看具體阻塞資訊。

事務鎖詳情

點擊列表中事務鎖操作列的查看詳情,會顯示對應事務鎖詳細資料的兩種查看方式:

  • 列表:在事務鎖詳情列表可以查看被阻塞事務的詳細資料。列表:以表格形式展示事務鎖詳情,包含ID、使用者、主機、資料庫名、命令、被阻塞的事務等列。單擊被阻塞的事務列的查看詳情連結,彈窗展示被阻塞事務的詳細資料,包含ID、使用者、主機、資料庫名、命令、執行時間(秒)、狀態和SQL等欄位。

  • 視圖:以事務等待關係可視化的形式展示鎖詳情,點擊對應的會話圖塊可以在下方查看對應會話的詳細資料。視圖:在視圖頁簽中以圖形方式展示事務鎖依賴關係,持有鎖的會話節點位於頂部,通過LOCK WAIT連線指向等待鎖的會話。單擊會話節點可展開詳情面板,查看ID事務狀態事務鎖定行數事務鎖定表數量事務更新行數等資訊。

中繼資料鎖詳情

點擊列表中中繼資料鎖操作列的查看詳情,會顯示對應中繼資料鎖詳細資料的視圖。在視圖中,點擊對應的會話圖塊可以在下方查看對應會話的詳細資料,同時支援KILL相關會話的操作。中繼資料鎖診斷頁面展示鎖關係圖,包含可疑會話(1) Metadata Lock表students DDL會話(1)表students 其他會話(1)三個節點,箭頭標註"Waiting for table metadata lock"表示等待關係。展開可疑會話詳情:ID為197889,使用者為das,主機地址部分脫敏,資料庫為das,命令為Sleep,執行時間176秒。底部提供結束選中會話結束全部可疑會話結束全部DDL語句三個操作按鈕用於處理中繼資料鎖問題。

結合SQL洞察和審計分析

可疑會話處於Sleep狀態沒有SQL資訊,可能是該會話開啟了事務,相關SQL已經執行結束,但事務未提交或者復原,此時可以在目標執行個體左側導覽列中,單擊SQL洞察和審計,在審計頁面點擊開啟進階查詢,填入可疑會話的線程ID,查詢分析相關會話執行過的SQL情況。如樣本中的事務未提交,導致鎖等待。在審計頁簽下,展開設定查詢條件進階查詢表單,設定時間範圍為 2024年11月4日 14:34:49 至 2024年11月4日 16:49:49,在線程ID中填入 197889,單擊查詢按鈕。下方日誌列表中展示該線程在指定時間段內執行的SQL記錄,包括 update students set name=UUID() where id = 3(執行時間 2024-11-04 16:27:22.426)和 begin(執行時間 2024-11-04 16:27:21.322)。

執行個體會話-自動式分析

操作步驟

  1. 登入DAS控制台

  2. 在左側導覽列中,單擊智能營運中心 > 執行個體監控

  3. 找到目標執行個體,單擊執行個體ID,進入目標執行個體詳情頁。

  4. 在左側導覽列中,單擊執行個體會話,在會話管理頁面中會自動觸發其他鎖分析,分析的結果會顯示在頁面右上方。在執行個體詳情頁的會話頁面,查看頂部指標區中的是否存在鎖等待狀態,當前顯示為,表示不存在鎖等待。可單擊查看詳情進一步分析鎖等待情況。

執行個體會話頁面查看詳情

執行個體會話中,當有鎖等待時,點擊查看詳情,在抽屜頁可以分別查看事務鎖(如有)、中繼資料鎖(如有)。在DAS執行個體會話頁面,頂部指標區顯示活躍會話6、CPU使用率0.3%、串連使用率0.1%、異常4,是否存在鎖等待顯示為。下方會話列表中可見部分工作階段狀態為Waiting for table metadata lock,表明存在鎖等待阻塞。單擊查看詳情可進一步分析鎖等待關係。

事務鎖詳情

點擊事務鎖列表中操作列的查看詳情,可以查看對應事務鎖詳細資料的兩種查看方式(列表、視圖),查看方式與鎖分析-觸發式分析中一致,請參見觸發式分析-事務鎖詳情

鎖等待 彈窗的 事務鎖 頁簽中,表格展示 鎖類型被阻塞會話數 資訊。

中繼資料鎖詳情

點擊中繼資料鎖列表中操作列的查看詳情,可以查看對應中繼資料鎖詳細資料的視圖,查看方式與鎖分析-觸發式分析中一致,詳情請參見觸發式分析-中繼資料鎖詳情

鎖等待 彈窗的 中繼資料鎖 頁簽中,視圖展示鎖持有與等待關係。

鎖分析頁面查看詳情

在鎖分析頁面,單擊診斷結果前的image可以查看到歷史在執行個體會話頁面自動發起的其他鎖分析統計資訊。對應的查看方式與鎖分析-觸發式分析中一致,請參見觸發式分析-查看詳情。在其他鎖分析頁面,選擇時間範圍後單擊查看,在診斷列表中找到發現鎖的記錄並展開,可查看鎖類型(中繼資料鎖、事務鎖)及對應的被阻塞會話數,單擊查看詳情進入鎖詳情頁面。

相關文檔