更新时间:2024-12-02 GMT+08:00
管理TaurusDB锁和事务
功能介绍
元数据锁
- 元数据锁(Meta Data Lock, 简称MDL),其作用是用于解决DDL操作与DML操作的一致性。通常DDL操作需要获取MDL写锁,并且MDL锁一旦发生,就可能会对数据库的性能造成影响,因为后续对该表的任何SELECT、DML、DDL操作都会被阻塞,造成连接积压。
- 当前功能展示了当前时刻(实时)数据库的MDL锁的信息,可以快速帮助定位MDL问题、终止持有MDL锁的会话,从而恢复被阻塞的操作。
- DML锁不在当前功能的范围之内,可以使用innodb锁等待进行分析和查看。
- 最多显示1000条数据。
Innodb锁等待
- 当前功能展示了当前时刻(实时)数据库的DML操作之前的锁等待的信息,可以快速帮助定位多个会话因同时更新同一条数据,而产生的会话等待和阻塞,并且支持快速终止持有锁的源头会话,从而恢复被阻塞的操作。
- DDL锁不在当前功能的范围之内,可以使用元数据锁进行分析和查看。
- 需要开启性能模式才能查看锁信息,执行SHOW GLOBAL VARIABLES LIKE "performance_schema"或者在TaurusDB参数修改页面查看是否开启。
死锁分析
- 该功能基于SHOW ENGINE INNODB STATUS返回的最近一次死锁日志进行分析。如果发生过多次死锁,只会对最近一次死锁进行分析。
- 当前仅支持查看最近7天创建的锁分析数据。
全量死锁分析
操作步骤
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域和项目。
- 在页面左上角单击,选择 。
- 在“实例管理”页面,选择目标实例,单击实例名称,进入“实例概览”页签。
- 在左侧导航栏选择“智能DBA助手 > 实时诊断”。
- 选择“锁&事务”页签,输入管理员密码登录当前实例。
图1 登录实例
- 在“元数据锁”页签,根据需要选择会话ID、锁状态、锁类型、数据库名等进行查询。
- 在查询结果中,查看是否存在持有MDL锁的会话。
若存在,单击“kill会话”。
- 在“Innodb锁等待”页签,查看是否存在锁等待。
- 在“最近死锁分析”页签,查看最近创建的锁分析数据。可以单击“创建锁分析”,创建一条锁分析数据。
- 在“全量死锁分析”页签,需先打开“全量死锁分析开关”及依赖的innodb_print_all_deadlocks参数,可查看以后出现的全量死锁分析数据。
父主题: 问题诊断