本文介紹如何使用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,進入目標執行個體詳情頁。
在左側導覽列中,單擊執行個體會話,在會話管理頁面中會自動觸發其他鎖分析,分析的結果會顯示在頁面右上方。
執行個體會話頁面查看詳情
在執行個體會話中,當有鎖等待時,點擊查看詳情,在抽屜頁可以分別查看事務鎖(如有)、中繼資料鎖(如有)。
事務鎖詳情
點擊事務鎖列表中操作列的查看詳情,可以查看對應事務鎖詳細資料的兩種查看方式(列表、視圖),查看方式與鎖分析-觸發式分析中一致,請參見觸發式分析-事務鎖詳情。
中繼資料鎖詳情
點擊中繼資料鎖列表中操作列的查看詳情,可以查看對應中繼資料鎖詳細資料的視圖,查看方式與鎖分析-觸發式分析中一致,詳情請參見觸發式分析-中繼資料鎖詳情。
鎖分析頁面查看詳情
在鎖分析頁面,單擊診斷結果前的可以查看到歷史在執行個體會話頁面自動發起的其他鎖分析統計資訊。對應的查看方式與鎖分析-觸發式分析中一致,請參見觸發式分析-查看詳情。