更新时间:2024-10-14 GMT+08:00

管理锁&事务

功能介绍

元数据锁

  • 数据锁(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实例参数查看是否开启。

操作步骤

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域。
  3. 单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
  4. 在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“概览”页签。
  5. 在左侧导航栏选择“智能DBA助手 > 实时诊断”。
  6. 选择“锁&事务”页签,输入管理员密码登录查看详情。
  7. 在“元数据锁”页签,根据需要选择会话ID、锁状态、锁类型、数据库名等进行查询。

    图1 元数据锁

  8. 在查询结果中,查看是否存在持有MDL锁的会话。若存在,单击“kill会话”
  9. 在“Innodb锁等待”页签,查看是否存在锁等待。

    图2 Innodb锁等待