1. 查看 mysql里关于Deadlock的日志
命令: mysql> show engine innodb status \G;
2. 分析dead lock的日志
写道
------------------------
LATEST DETECTED DEADLOCK
------------------------
2017-09-14 13:51:03 7f3efdceb700
*** (1) TRANSACTION:
TRANSACTION 280219276, ACTIVE 0 sec starting index read
mysql tables in use 1, locked 1
LOCK WAIT 17 lock struct(s), heap size 2936, 8 row lock(s), undo log entries 6
MySQL thread id 375, OS thread handle 0x7f3efdb65700, query id 75220097 ded405.zylon.net 193.*.*138 root updating
update article set version=16 where id=46182 and version=15
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 21 page no 786 n bits 136 index `PRIMARY` of table `sils`.`article` trx id 280219276 lock_mode X locks rec but not gap waiting
Record lock, heap no 55 PHYSICAL RECORD: n_fields 32; compact format; info bits 0
LATEST DETECTED DEADLOCK
------------------------
2017-09-14 13:51:03 7f3efdceb700
*** (1) TRANSACTION:
TRANSACTION 280219276, ACTIVE 0 sec starting index read
mysql tables in use 1, locked 1
LOCK WAIT 17 lock struct(s), heap size 2936, 8 row lock(s), undo log entries 6
MySQL thread id 375, OS thread handle 0x7f3efdb65700, query id 75220097 ded405.zylon.net 193.*.*138 root updating
update article set version=16 where id=46182 and version=15
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 21 page no 786 n bits 136 index `PRIMARY` of table `sils`.`article` trx id 280219276 lock_mode X locks rec but not gap waiting
Record lock, heap no 55 PHYSICAL RECORD: n_fields 32; compact format; info bits 0
*** (2) TRANSACTION:
TRANSACTION 280219277, ACTIVE 0 sec starting index read
mysql tables in use 1, locked 1
17 lock struct(s), heap size 2936, 8 row lock(s), undo log entries 6
MySQL thread id 440, OS thread handle 0x7f3efdceb700, query id 75220111 ded405.zylon.net 193.*.*.138 root updating
update article set version=16 where id=46182 and version=15
*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 21 page no 786 n bits 136 index `PRIMARY` of table `sils`.`article` trx id 280219277 lock mode S locks rec but not gap
Record lock, heap no 55 PHYSICAL RECORD: n_fields 32; compact format; info bits 0
TRANSACTION 280219277, ACTIVE 0 sec starting index read
mysql tables in use 1, locked 1
17 lock struct(s), heap size 2936, 8 row lock(s), undo log entries 6
MySQL thread id 440, OS thread handle 0x7f3efdceb700, query id 75220111 ded405.zylon.net 193.*.*.138 root updating
update article set version=16 where id=46182 and version=15
*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 21 page no 786 n bits 136 index `PRIMARY` of table `sils`.`article` trx id 280219277 lock mode S locks rec but not gap
Record lock, heap no 55 PHYSICAL RECORD: n_fields 32; compact format; info bits 0
mysql默认只会记录最后一次产生deadlock时的日志, 着重查看发生冲突的两个transaction里的对mysql的操作。
3. 结合tomcat里关于deadlock的堆栈信息 分析哪个流程出错。 (必要时,需要将hibernate操作时的sql语句都打印出来一并分析)。
未完待续。。。
相关推荐
MySQL数据库在多用户并发操作中,为了保证数据的一致性和完整性,使用了锁机制来管理事务的并发控制。死锁是并发控制中的一种异常状态,通常发生在两个或多个事务之间,由于相互等待对方释放资源而形成僵局。本文将...
总的来说,解决MySQL服务CPU 100%的问题,需要综合运用监控、诊断和优化工具,结合业务逻辑和数据库特性,逐步排查并优化问题点。对于面试来说,掌握这些排查技巧不仅可以应对紧急问题,也是展现技术深度和解决问题...
在实际应用中,如果遇到类似的问题,如旅游电商平台接口出现请求超时异常,可以通过以下步骤进行排查和解决: 1. 确认环境:首先了解数据库版本(例如MySQL 5.6.34)和存储引擎(InnoDB),并分析错误日志,发现...
MySQL中的死锁问题是一个复杂而微妙的议题,尤其是在数据库优化和并发控制中。本文将深入探讨一个看似不可能发生的死锁...在遇到类似死锁问题时,应从多个角度出发,逐一排查可能的原因,确保数据库系统的高效运行。
除了使用数据库自带的监控工具,还有一些第三方工具,如SQL Server的SQL Deadlock Monitor、Oracle的Oracle deadlock monitor等,它们提供了图形化的界面和更友好的死锁分析报告,使得问题排查更为便捷。 理解死锁...
Percona Toolkit手册是为了让数据库管理员能够更有效、更安全地管理MySQL数据库而编写的,它不仅涵盖了工具的使用方法,还包括了深入的性能分析和故障排查技巧,对任何使用MySQL作为数据库系统的IT专业人士都具有极...
SQL是用于管理关系型数据库的标准语言,许多数据库系统如MySQL、PostgreSQL、SQL Server等都支持SQL。因此,这个工具可能是为这些数据库系统设计的,用于检测和解除SQL查询过程中出现的死锁。 在压缩包子文件的文件...
Linux运维笔试面试题的知识点非常丰富,涵盖Linux系统管理、网络服务配置、安全防护、性能调优以及故障排查等多个方面。以下是对提供的部分内容中知识点的详细解读: 1. RAID技术: - RAID 0(条带化):将数据...
- **自定义跟踪**:通过从零开始构建跟踪,可以根据具体需求精确地选择要捕获的事件和列,从而更高效地进行性能调优和故障排查。 - **使用模板**:利用预先配置好的模板快速启动跟踪任务,适用于常见的监控场景,如...