`
gelongmei
  • 浏览: 209417 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

通过MYSQL日志定位死锁问题

 
阅读更多

LATEST DETECTED DEADLOCK
------------------------
140121 21:28:15
*** (1) TRANSACTION:
TRANSACTION AC690EFA, ACTIVE 0 sec, process no 2040, OS thread id 139751216285440 inserting
mysql tables in use 1, locked 1
LOCK WAIT 2 lock struct(s), heap size 376, 1 row lock(s), undo log entries 1
MySQL thread id 1072445, query id 990357233 192.168.16.71 xxxx_push4app update
INSERT IGNORE INTO T_BS_PUSH_SUB_EXTEND(FSEQUENCENO, FUSERID, FDEVICEID, FPACKAGEID, FSERVICEID, FSERVICETOKEN,       FSUBSTATUS, FSUBTIME, FVERSIONID, FPRODUCT,FFIRMWARE)     VALUES(27021094, 0, '862845025904090', 3, 8, '862845025904090100004', 1,       1390310896, 103140, 'M351', '4.2')
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 6915 page no 323879 n bits 568 index `UDX_PKG_DEVICE` of table `xxxx_PUSH`.`T_BS_PUSH_SUB_EXTEND` trx id AC690EFA lock_mode X waiting
Record lock, heap no 214 PHYSICAL RECORD: n_fields 4; compact format; info bits 0
0: len 1; hex 03; asc  ;;
1: len 15; hex 383632383435303235393034303930; asc 862845025904090;;
2: len 2; hex 0008; asc   ;;
3: len 8; hex 00000000019c4697; asc       F ;;

*** (2) TRANSACTION:
TRANSACTION AC690EFB, ACTIVE 0 sec, process no 2040, OS thread id 139751337277184 inserting, thread declared inside InnoDB 500
mysql tables in use 1, locked 1
3 lock struct(s), heap size 1248, 2 row lock(s), undo log entries 5
MySQL thread id 1072539, query id 990357236 192.168.16.78 xxxx_push4app update
INSERT IGNORE INTO T_BS_PUSH_SUB_EXTEND(FSEQUENCENO, FUSERID, FDEVICEID, FPACKAGEID, FSERVICEID, FSERVICETOKEN,       FSUBSTATUS, FSUBTIME, FVERSIONID, FPRODUCT,FFIRMWARE)     VALUES(27018907, 0, '862845025904090', 3, 1, '862845025904090100004', 1,       1390310896, 156050, 'M351', null)
*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 6915 page no 323879 n bits 568 index `UDX_PKG_DEVICE` of table `xxxx_PUSH`.`T_BS_PUSH_SUB_EXTEND` trx id AC690EFB lock_mode X locks rec but not gap
Record lock, heap no 214 PHYSICAL RECORD: n_fields 4; compact format; info bits 0
0: len 1; hex 03; asc  ;;
1: len 15; hex 383632383435303235393034303930; asc 862845025904090;;
2: len 2; hex 0008; asc   ;;
3: len 8; hex 00000000019c4697; asc       F ;;

*** (2) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 6915 page no 323879 n bits 568 index `UDX_PKG_DEVICE` of table `xxxx_PUSH`.`T_BS_PUSH_SUB_EXTEND` trx id AC690EFB lock_mode X locks gap before rec insert intention waiting
Record lock, heap no 214 PHYSICAL RECORD: n_fields 4; compact format; info bits 0
0: len 1; hex 03; asc  ;;
1: len 15; hex 383632383435303235393034303930; asc 862845025904090;;
2: len 2; hex 0008; asc   ;;
3: len 8; hex 00000000019c4697; asc       F ;;

*** WE ROLL BACK TRANSACTION (1)


上述场景是一次性插入多个数据,也就是说多个数据放在一个事务中统一一次提交。当192.168.16.71和192.168.16.78服务器同时发来请求批量添加数据时,由于UDX_PKG_DEVICE锁限制了双方的都在等待对方的锁导致。
分享到:
评论

相关推荐

    mysql innodb死锁问题详解.docx

    - 开启`innodb_lock_monitor`后结合`SHOW ENGINE INNODB STATUS`使用,能更准确地定位死锁的源头。 通过这些方法,可以更有效地诊断和解决MySQL InnoDB中的死锁问题,优化系统的并发性能和稳定性。在开发和运维过程...

    数据库实战-收集一些常见的 MySQL 死锁案例.zip

    数据库实战-收集一些常见的 MySQL 死锁案例.zip 数据库实战-收集一些常见的...实际上,我们在定位死锁问题时,不仅应该对死锁日志进行分析,还应该结合具体的业务代码,或者根据 binlog,理出每个事务执行的 SQL 语句。

    一些常见的MySQL死锁案例-mysql-deadlocks-master(源代码+案例+图解说明)

    本资源出处:https://github.com/aneasystone/mysql-deadlocks ...实际上,我们在定位死锁问题时,不仅应该对死锁日志进行分析,还应该结合具体的业务代码,或者根据 binlog,理出每个事务执行的 SQL 语句。

    论底层源码的重要性,解决mysql死锁问题

    通过日志文件的分析,特别是Hibernate SQL语句、accesslog和catalina异常日志,可以定位到具体引起死锁的代码段。在本例中,物料和设备使用记录的插入和更新操作可能是死锁的来源。源码分析显示,为了防止重复,先...

    收集一些常见的 MySQL 死锁案例

    实际上,我们在定位死锁问题时,不仅应该对死锁日志进行分析,还应该结合具体的业务代码,或者根据 binlog,理出每个事务执行的 SQL 语句。 我将这些死锁按事务执行的语句和正在等待或已持有的锁进行分类汇总: 表...

    关于MySQL死锁问题的深入分析

    在数据库管理和编程中,死锁是...通过上述措施,可以在很大程度上避免死锁的发生,或者在发生死锁后快速定位和解决。对于数据库管理员和开发者而言,深入理解死锁及其处理机制是提升数据库性能和稳定性的重要技能之一。

    一次mysql死锁的排查过程

    【MySQL死锁排查详解】 ...虽然我们不需要深入研究锁的源码,但熟悉基本的死锁原理和排查技巧能帮助我们快速定位并解决问题,确保系统稳定运行。通过学习和实践,我们可以更好地应对类似的问题,提升系统的健壮性。

    一次神奇的MySQL死锁排查记录

    MySQL死锁是数据库管理系统中常见的一个问题,...通过对死锁日志的分析,我们可以快速定位问题并采取相应的措施,以保证数据库系统的稳定性和数据一致性。通过不断的学习和实践,我们可以更好地应对这类复杂的问题。

    SQL死锁监控工具

    MySQL数据库虽然没有内置的死锁日志,但在InnoDB存储引擎中,当发生死锁时,会自动检测并回滚其中一个事务,同时记录在"SHOW ENGINE INNODB STATUS"的输出中。通过对这些信息的分析,可以了解死锁的详细过程。 除了...

    mysql错误日志

    MySQL错误日志是数据库系统中极其重要的组成部分,它记录了MySQL服务器在运行过程中遇到的各种问题、警告和错误信息。...通过深入研究和分析,我们可以定位问题、修复错误,确保MySQL集群的稳定运行。

    新版 MySQL DBA 高级视频 基于MySQL 5.7 MySQL 8.0版本.rar

    │ 7_InnoDB锁原理和锁等待问题定位.mp4 │ ├─新版MySQL DBA综合实战班 第07天 │ 1_课后作业讲解.mp4 │ 2_MySQL锁机制原理讲解.mp4 │ 3_MySQL锁相关参数设置.mp4 │ 4_InnoDB事务隔离级别详解.mp4 │ 5_InnoDB...

    MySQL排错指南.pdf

    1. **错误识别**:介绍如何从MySQL的错误日志中解读错误信息,理解错误代码的含义,以及如何定位问题的源头。 2. **性能调优**:包括查询优化、索引策略、存储引擎选择等方面,帮助用户解决数据库运行缓慢的问题。 ...

    深入理解MySQL核心技术_MYSQL_

    11. **安全性**:MySQL的安全机制包括用户权限管理、SSL加密、审计日志等,确保数据安全访问。理解并配置好这些机制,可以防止未授权访问和数据泄露。 以上是《深入理解MySQL核心技术》中涉及的主要内容,这些知识...

    一不小心,间隙锁引发的报警现场

    运维同学发现有大量的MySQL死锁日志输出,如果你的系统有对MySQL进行死锁监控,可会在图形界面上很直观的发现这个问题。 你会发现日志里有大量下面这样的log输出: Deadlock found when trying to get lock; try ...

    大神写的MySQL DBA学习笔记

    10. **故障排查与问题解决**:面对各种数据库问题,如何定位问题、分析原因并提出解决方案,这是DBA必备的技能。 11. **监控与调优**:使用工具监控MySQL的运行状态,如性能监控、慢查询日志分析,以及如何进行系统...

    很详细的mysql课程讲解

    2. 错误日志与慢查询日志:学习如何配置和分析MySQL的日志系统,以定位和解决问题。 七、备份与恢复 1. 数据备份:讲解如何使用mysqldump工具进行全量备份和增量备份,以及如何实现热备份。 2. 数据恢复:学习...

    Mysql错误代码大全 中文

    - **日志分析**:MySQL服务器的日志文件可以提供错误发生的上下文信息,有助于定位问题。 - **调试工具**:使用如`EXPLAIN`来分析查询性能,或使用`SHOW VARIABLES`和`SHOW STATUS`查看服务器状态。 - **社区求助...

    mysql_mysql常见的十个问题_

    9. **错误与异常处理**:学会识别和解决MySQL返回的错误代码,理解错误信息有助于快速定位问题。编写健壮的SQL脚本,包含适当的错误处理机制,如`TRY...CATCH`结构。 10. **升级与迁移**:当需要升级MySQL版本或...

Global site tag (gtag.js) - Google Analytics