全部產品
Search
文件中心

Database Autonomy Service:鎖分析

更新時間:Dec 06, 2024

當資料庫出現鎖等待相關問題時,您可以使用鎖分析功能,直觀地分析和查看資料庫中發生的死結、事務阻塞及中繼資料鎖等待,從而迅速定位並解決相關問題,確保資料庫的穩定運行。

前提條件

  • 目標資料庫引擎為:

    • RDS MySQL

    • 自建MySQL

    • PolarDB MySQL版

    • PolarDB-X 2.0

  • 目標資料庫執行個體已接入DAS,並且接入狀態顯示為接入正常,接入方法詳情請參見接入資料庫執行個體

注意事項

死結分析目前不支援分析包含“TOO DEEP OR LONG SEARCH IN THE LOCK TABLE WAITS-FOR GRAPH, WE WILL ROLL BACK FOLLOWING TRANSACTION”描述的死結。

功能簡介

鎖分析功能支援對資料庫執行個體進行多維度死結分析、事務阻塞分析、中繼資料鎖等待分析。

重要

全量死結分析其他鎖分析功能,目前僅支援RDS MySQLPolarDB MySQL版資料庫執行個體,且需要開啟DAS經濟版或DAS企業版。需注意,DAS經濟版和DAS企業版目前僅支援部分地區,詳情請參見各個版本支援的資料庫和地區。開通DAS經濟版或企業版請參見企業版

  • 最近死結分析:DAS基於SHOW ENGINE INNODB STATUS返回的最近一次死結日誌進行分析。如果發生過多次死結,DAS只會對最近一次死結進行分析。詳情請參見最近死結分析

  • 全量死結分析:DAS定時對錯誤記錄檔進行分析,解析其中的死結資訊,並進行全面的死結分析。同時,DAS支援查看指定時間範圍內的死結趨勢以及各個死結的詳細資料。詳情請參見全量死結分析

  • 其他鎖分析:DAS根據information_schemaperformance_schema相關資料,即時分析資料庫執行個體當前會話中的中繼資料鎖和事務阻塞情況。詳情請參見其他鎖分析

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

    • 事務阻塞分析:DAS根據information_schema.processlistinformation_schema.innodb_trx,以及information_schema.innodb_lock_waits(MySQL 5.6和5.7使用該資料)和performance_schema.data_lock_waits(MySQL 8.0使用該資料)分析事務阻塞關係,並產生相應的關係圖。

      說明

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

資料庫執行個體參數限制

目標資料庫必須設定相應的參數後,才能使用鎖分析的對應功能。

鎖分析功能

涉及的資料庫執行個體參數

最近死結分析

開啟innodb_deadlock_detect參數。

全量死結分析

  • 開啟innodb_deadlock_detect參數。

  • 開啟innodb_print_all_deadlocks參數,並將log_error_verbosity(僅RDS MySQL需要設定)參數值設定為3。

其他鎖分析中的事務阻塞分析

對於RDS MySQL 8.0和PolarDB MySQL版 8.0執行個體,需要開啟performance_schema參數。

修改資料庫執行個體參數:

相關文檔

後續操作

當資料庫執行個體出現死結、事務阻塞等情況時,您可以利用鎖分析所得的線程ID等資訊,在SQL洞察和審計中分析相關事務執行情況,以確認鎖等待的原因。例如,在事務開啟後,當更新了一定數量的資料行後,這些資料行會被該事務鎖定。如果事務期間較長而未提交或復原(包括隱式提交和隱式復原),那麼後續的會話或事務在更新相同的資料行時,就會進入LOCK WAIT狀態。