本文介紹如何使用DAS鎖分析功能對數據庫進行元數據鎖等待分析和事務阻塞分析。
文中所示圖片中的數據為測試用例數據,實際使用過程中,請以實際數據參數為準,包括線程ID、SQL語句等。
前提條件
目標數據庫引擎為:
RDS MySQL
PolarDB MySQL版
目標數據庫實例已接入DAS,并且接入狀態顯示為接入正常,接入方法詳情請參見接入數據庫實例。
已開通DAS經濟版或DAS企業版。
重要DAS經濟版和DAS企業版目前僅支持部分地域,詳情請參見各個版本支持的數據庫和地域。
開通DAS經濟版或企業版請參見開通經濟版和企業版。
鎖類型
元數據鎖分析
分析數據:根據
information_schema.processlist
等的數據,推導鎖等待關系,并生成相應的關系圖。
事務阻塞分析
重要事務阻塞分析功能不支持PolarDB MySQL版 5.6實例。
分析數據:根據
information_schema.processlist
,information_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
參數。修改數據庫實例參數:RDS MySQL請參見設置實例參數。
PolarDB MySQL版請參見設置集群參數和節點參數。
觸發方式
鎖分析-觸發式分析:在鎖分析頁面,可以手動觸發其他鎖分析。
實例會話-自動式分析:在刷新實例會話頁面時,會自動觸發其他鎖分析。
鎖分析-觸發式分析
創建分析
登錄DAS控制臺。
在左側導航欄中,單擊實例監控。
找到目標實例,單擊實例ID,進入目標實例詳情頁。
在左側導航欄中,單擊鎖分析,在鎖分析頁面中其他鎖分析項下,點擊創建分析,發起其他鎖分析。
查看詳情
單擊診斷結果前的可以查看元數據鎖等待和事務阻塞分析相關信息。
事務鎖詳情
點擊列表中事務鎖操作列的查看詳情,會顯示對應事務鎖詳細信息的兩種查看方式:
列表:在事務鎖詳情列表可以查看被阻塞事務的詳細信息。
視圖:以事務等待關系可視化的形式展示鎖詳情,點擊對應的會話圖塊可以在下方查看對應會話的詳細信息。
元數據鎖詳情
點擊列表中元數據鎖操作列的查看詳情,會顯示對應元數據鎖詳細信息的視圖。在視圖中,點擊對應的會話圖塊可以在下方查看對應會話的詳細信息,同時支持KILL相關會話的操作。
結合SQL洞察和審計分析
可疑會話處于Sleep狀態沒有SQL信息,可能是該會話開啟了事務,相關SQL已經執行結束,但事務未提交或者回滾,此時可以在目標實例左側導航欄中,單擊SQL洞察和審計,在審計頁面點擊開啟高級查詢,填入可疑會話的線程ID,查詢分析相關會話執行過的SQL情況。如示例中的事務未提交,導致鎖等待。
實例會話-自動式分析
操作步驟
登錄DAS控制臺。
在左側導航欄中,單擊實例監控。
找到目標實例,單擊實例ID,進入目標實例詳情頁。
在左側導航欄中,單擊實例會話,在會話管理頁面中會自動觸發其他鎖分析,分析的結果會顯示在頁面右上角。
實例會話頁面查看詳情
在實例會話中,當有鎖等待時,點擊查看詳情,在抽屜頁可以分別查看事務鎖(如有)、元數據鎖(如有)。
事務鎖詳情
點擊事務鎖列表中操作列的查看詳情,可以查看對應事務鎖詳細信息的兩種查看方式(列表、視圖),查看方式與鎖分析-觸發式分析中一致,請參見觸發式分析-事務鎖詳情。
元數據鎖詳情
點擊元數據鎖列表中操作列的查看詳情,可以查看對應元數據鎖詳細信息的視圖,查看方式與鎖分析-觸發式分析中一致,詳情請參見觸發式分析-元數據鎖詳情。
鎖分析頁面查看詳情
在鎖分析頁面,單擊診斷結果前的可以查看到歷史在實例會話頁面自動發起的其他鎖分析統計信息。對應的查看方式與鎖分析-觸發式分析中一致,請參見觸發式分析-查看詳情。