本文介绍如何在数据库工作台 DBW 的工作台中管理事务与锁,通过事务与锁功能,您可以查看分析在数据库内发生的所有锁。
死锁页签仅展示最近一次的死锁信息,且查询结果仅保留 1 天。
目标实例的参数innodb_deadlock_detect
需为ON
,否则将无法查询死锁信息。具体参数配置步骤,请参见修改参数。
当 MySQL 的版本为 5.7 或以下版本时,您需要关注以下信息:
事务间无锁冲突时,无法检测锁的具体信息,例如锁 ID、锁关联索引和锁关联表等。
当出现环形死锁且该死锁内包含 3 个或以上事务时,则仅展示死锁中两个事务的详细信息。
当出现死锁时,可展示死锁信息中事务的详细信息,但仅有一个事务可展示他的持有锁信息,例如:
事务 1:事务信息、等待锁信息(锁、索引名和类型)。
事务 2:事务信息、等待锁信息(锁、索引名和类型)、持有锁信息(锁、索引名和类型)。
死锁信息里的请求类型包括 alter
、show
、select
、update
、drop
、delete
、create
和 other type
。
登录 DBW 控制台。
在顶部菜单栏,选择项目和地域。
在左侧导航栏,选择运维管理 > 观测诊断。
在观测诊断页面,单击事务与锁。
在事务与锁页签上方,切换实例。
说明
在事务与锁页签,您可以查看以下信息。
在 InnoDB 事务与锁页签,设置事务执行时间(大于)。可以实现以下操作:
说明
事务执行时间(大于) 的取值范围是 0~2147483647,单位为秒(s)。
复制被阻塞的 SQL:将鼠标悬浮在被阻塞 SQL 列的目标语句上,单击复制图标复制被阻塞的 SQL 语句。
查看目标会话内锁的详细信息:单击目标会话 ID 前的加号图标,展示该会话 ID 内的所有锁信息,包括锁属性、锁 ID、锁关联索引、锁关联表、锁类型和锁模式。
终止会话:选中目标会话,单击 KILL 会话,即可终止会话。
在死锁信息页签,可以查看死锁发生时间、死锁收集时间、事务信息、会话 ID、请求类型、涉及表、等待锁、等待锁索引名称、等待锁类型、持有锁、持有锁索引名称、持有锁类型、涉及语句和事务处理等信息。
说明
每次查询仅收集最近一次死锁信息,且查询结果仅保留一天(即该保留时间从刷新死锁信息开始计算)。您可以单击刷新死锁信息,查看最近发生死锁的详细信息。
目标实例的参数innodb_deadlock_detect
需为ON
,否则将无法查询死锁信息,具体操作,请参见修改参数。