全部产品
Search
文档中心

数据库自治服务 DAS:其他锁分析

更新时间:Nov 11, 2024

本文介绍如何使用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.png

查看详情

单击诊断结果前的image可以查看元数据锁等待和事务阻塞分析相关信息。image.png

事务锁详情

点击列表中事务锁操作列的查看详情,会显示对应事务锁详细信息的两种查看方式:

  • 列表:在事务锁详情列表可以查看被阻塞事务的详细信息。image

  • 视图:以事务等待关系可视化的形式展示锁详情,点击对应的会话图块可以在下方查看对应会话的详细信息。image.png

元数据锁详情

点击列表中元数据锁操作列的查看详情,会显示对应元数据锁详细信息的视图。在视图中,点击对应的会话图块可以在下方查看对应会话的详细信息,同时支持KILL相关会话的操作。image

结合SQL洞察和审计分析

可疑会话处于Sleep状态没有SQL信息,可能是该会话开启了事务,相关SQL已经执行结束,但事务未提交或者回滚,此时可以在目标实例左侧导航栏中,单击SQL洞察和审计,在审计页面点击开启高级查询,填入可疑会话的线程ID,查询分析相关会话执行过的SQL情况。如示例中的事务未提交,导致锁等待。image.png

实例会话-自动式分析

操作步骤

  1. 登录DAS控制台

  2. 在左侧导航栏中,单击实例监控

  3. 找到目标实例,单击实例ID,进入目标实例详情页。

  4. 在左侧导航栏中,单击实例会话,在会话管理页面中会自动触发其他锁分析,分析的结果会显示在页面右上角。image.png

实例会话页面查看详情

实例会话中,当有锁等待时,点击查看详情,在抽屉页可以分别查看事务锁(如有)、元数据锁(如有)。image

事务锁详情

点击事务锁列表中操作列的查看详情,可以查看对应事务锁详细信息的两种查看方式(列表、视图),查看方式与锁分析-触发式分析中一致,请参见触发式分析-事务锁详情

image.png

元数据锁详情

点击元数据锁列表中操作列的查看详情,可以查看对应元数据锁详细信息的视图,查看方式与锁分析-触发式分析中一致,详情请参见触发式分析-元数据锁详情

image.png

锁分析页面查看详情

在锁分析页面,单击诊断结果前的image可以查看到历史在实例会话页面自动发起的其他锁分析统计信息。对应的查看方式与锁分析-触发式分析中一致,请参见触发式分析-查看详情image.png

相关文档