更新时间:2025-12-29 gmt 08:00
管理锁&事务-j9九游会登录
操作场景
通过智能dba功能查看数据库实例是否有元数据锁和innodb锁等待,以及查看最近死锁分析和全量死锁分析的数据。
更多内容,请参见。
功能介绍
元数据锁
- 数据锁(metadata lock,简称mdl),其作用是用于解决ddl操作与dml操作的一致性。通常ddl操作需要获取mdl写锁,并且mdl锁一旦发生,可能会影响数据库的性能,因为后续对该表的任何select、dml、ddl操作都会被阻塞,造成连接积压。
- 当前功能展示了当前时刻(实时)数据库的mdl锁的信息,可以快速帮助定位mdl问题、终止持有mdl锁的会话,从而恢复被阻塞的操作。
- dml锁不在当前功能的范围之内,可以使用innodb锁等待进行分析和查看。
- 最多显示1000条数据。
innodb锁等待
- 当前功能展示了当前时刻(实时)数据库的dml操作之前的锁等待的信息,可以快速帮助定位多个会话因同时更新同一条数据,而产生的会话等待和阻塞,并且支持快速终止持有锁的源头会话,从而恢复被阻塞的操作。
- ddl锁不在当前功能的范围之内,可以使用元数据锁进行分析和查看。
- rds for mysql 8.0需要开启性能模式才能查看锁信息,执行show global variables like "performance_schema"或者在修改rds for mysql实例参数查看是否开启。
最近死锁分析
- 此功能基于show engine innodb status返回的最近一次死锁日志进行分析。如果发生过多次死锁,只会对最近一次死锁进行分析。
- 需要开启innodb_deadlock_detect(仅针对版本为5.7的实例)参数。
全量死锁分析
- 此功能定时对错误日志进行分析,解析其中的死锁信息,并进行全面的死锁分析。
- 依赖参数:
- 需要开启innodb_deadlock_detect(仅针对版本为5.7的实例)参数。
- 需要开启innodb_print_all_deadlocks参数,并将log_error_verbosity(仅针对版本除5.7之外的实例)参数值设置为3。
- 最多显示10000条数据。
操作步骤
- 单击管理控制台左上角的
,选择区域。 - 单击页面左上角的
,选择“数据库 > 云数据库 rds”,进入rds信息页面。 - 在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“概览”页签。
- 在左侧导航栏选择“智能dba助手”下的“锁&事务”。
- 在“锁&事务”页面,输入管理员密码登录实例。
- 在“锁分析”页签,可以进行如下操作。
- 在“元数据锁”页签,支持创建锁分析,查看当前数据库是否有元数据锁。
默认显示锁等待时间>10s的锁个数,可自定义锁等待时间。图1 元数据锁
- 在“innodb锁等待”页签,支持创建锁分析,查看当前数据库是否存在锁等待。
默认显示锁等待时间>10s的锁个数,可自定义锁等待时间。图2 innodb锁等待
- 在“最近死锁分析”页签,支持创建锁分析,基于show engine innodb status返回的最近一次死锁日志进行分析。如果发生过多次死锁,只会对最近一次死锁进行分析。
仅支持查看最近7天创建的锁分析数据。图3 最近死锁分析
- 在“全量死锁分析”页签,打开全量死锁分析开关,定时对错误日志进行分析,解析其中的死锁信息,并进行全面的死锁分析。
仅支持查看最近7天创建的锁分析数据。图4 全量死锁分析
- 在“元数据锁”页签,支持创建锁分析,查看当前数据库是否有元数据锁。
相关文档
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨