- 浏览: 2543104 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (676)
- linux运维 (157)
- php (65)
- mysql (78)
- nginx (27)
- apche (18)
- framework (6)
- windows (9)
- IDE工具 (23)
- struts2 (7)
- java (13)
- 移动互联网 (14)
- memcache redis (23)
- shell基础/命令/语法 (37)
- shell (50)
- puppet (4)
- C (11)
- python (9)
- 产品经理 (27)
- Sphinx (4)
- svn (12)
- 设计构建 (12)
- 项目管理 (44)
- SEO (1)
- 网站架构 (26)
- 审时度势 (42)
- 网络 (14)
- 激发事业[书&视频] (81)
- 其它 (12)
- 摄影 (8)
- android (21)
最新评论
-
zhongmin2012:
原文的书在哪里
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
renzhengzhi:
你好,请问个问题,从master同步数据到slave的时候,s ...
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
ibc789:
你好,看了你的文章,我想请教个问题, 我在用 redis的时候 ...
redis 的两种持久化方式及原理 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
客服反馈后台无法查询,原因大概知道,是因为MySQL的事务产生了死锁,以往都不知道是哪个事务锁住了,只能很粗暴地重启MySQL
最近查找到一个方法,不用重启MySQL,记录如下
登录到MySQL,来看下有哪些MySQL事务
可以看到一个时间持续了比较久的事务,现在时间是13点了,而这个事务的开始时间是2012-11-09 12:15:14,显然是不正常的,我们看这个事务对应的mysql的线程ID(trx_mysql_thread_id)是82230715,就是这个事务导致的
13:01:48pm> SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;
+-----------+-----------+---------------------+-----------------------+------------------+------------+---------------------+-----------+---------------------+-------------------+-------------------+------------------+-----------------------+-----------------+-------------------+-------------------------+---------------------+-------------------+------------------------+----------------------------+---------------------------+---------------------------+
| trx_id | trx_state | trx_started | trx_requested_lock_id | trx_wait_started | trx_weight | trx_mysql_thread_id | trx_query | trx_operation_state | trx_tables_in_use | trx_tables_locked | trx_lock_structs | trx_lock_memory_bytes | trx_rows_locked | trx_rows_modified | trx_concurrency_tickets | trx_isolation_level | trx_unique_checks | trx_foreign_key_checks | trx_last_foreign_key_error | trx_adaptive_hash_latched | trx_adaptive_hash_timeout |
+-----------+-----------+---------------------+-----------------------+------------------+------------+---------------------+-----------+---------------------+-------------------+-------------------+------------------+-----------------------+-----------------+-------------------+-------------------------+---------------------+-------------------+------------------------+----------------------------+---------------------------+---------------------------+
| 31868CED0 | RUNNING | 2012-11-09 12:15:14 | NULL | NULL | 2 | 82230715 | NULL | NULL | 0 | 0 | 2 | 376 | 1 | 0 | 0 | REPEATABLE READ | 1 | 1 | NULL | 0 | 10000 |
+-----------+-----------+---------------------+-----------------------+------------------+------------+---------------------+-----------+---------------------+-------------------+-------------------+------------------+-----------------------+-----------------+-------------------+-------------------------+---------------------+-------------------+------------------------+----------------------------+---------------------------+---------------------------+
我们登录到mysql把它kill掉
13:01:55pm> kill 82230715;
这样,就可以查询了
其他
查看正在锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
查看等待锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
发表评论
-
mysql表修复
2015-04-07 10:16 102891.1命令myisamchk(必须停掉mysql服务,或者所操 ... -
Table_locks_immediate
2014-08-25 15:46 3083Table_locks_immediate表示立即释放表锁数 ... -
mysql分区
2014-02-21 10:38 1851mysql自5.1开始支持分区 ... -
InnoDB 引擎独立表空间 innodb_file_per_table
2013-02-25 11:14 1312http://deeplyloving.iteye.com ... -
mysql监测工具tuning-primer.sh
2013-01-21 17:57 2660【转】http://www.dbasky.net ... -
mysql主从日志的定期清理
2013-01-21 16:24 1156[转]http://wangwei007.blog.51 ... -
[转]Mysql报错:Result consisted of more than one row
2013-01-09 16:25 15900Error Code : 1172 Result consi ... -
根据bin log 分析管理员被莫名删除问题
2013-01-04 17:04 1170============== 根据bin log 分析管理 ... -
mysql中select * for update锁表的问题
2013-01-04 14:07 2513先前介绍过SELECT ... FOR UPDATE的用法 ... -
PDO报错:Cannot execute queries while other unbuffered queries are active.
2012-12-12 17:57 11953用 PDOStatement->execute() 执行 ... -
mysql性能分析:mysql profiling 应用
2012-12-11 10:26 13511)先打开profiling ==> set pro ... -
mysql体系结构和查看当前的数据库请求
2012-12-07 15:00 2893mysql体系结构: 由 ... -
mysql_error:Error starting thread: Resource temporarily unavailable
2012-11-01 17:57 2115121031 18:53:17 InnoDB: Unable ... -
导出bin log时间段脚本datarecover.sh
2012-09-06 13:34 1248修改 _binlogdir='/data/mysql/m ... -
Mysql备份工具xtraback全量和增量测试
2012-08-17 14:58 3868【转载】http://blog.chinaunix.net/s ... -
数据库中的隔离级别和锁机制
2012-08-09 17:55 1587ANSI/ISO SQL92标准定义了 ... -
mysqldump和mysql命令
2012-08-03 13:44 1383========================= mys ... -
【汇总】mysql join
2012-07-18 11:35 1173标准SQL中CROSS JOIN交叉连接(笛卡尔积)和内连接I ... -
mysql cursor游标的使用,实例
2012-07-17 23:09 1816mysql被oracle收购后,从mysql-5.5开始, ... -
使用innotop监测mysql
2012-07-13 10:56 3815最近学习innotop工具,自己搜集整理了一下网上的各种资源, ...
相关推荐
这篇博客文章《mysql死锁的一些案例》可能深入探讨了MySQL中死锁的产生原因、表现形式以及解决策略。虽然具体内容未给出,但我们可以根据通常的死锁情况来进行分析。 1. **死锁产生的原因**: - 资源请求顺序不同...
在 MySQL 中,死锁是指两个或两个以上的事务互相等待资源,导致事务无法继续执行的现象。死锁的形成是由于事务之间的锁等待和资源竞争所引起的。 二、死锁检测机制的实现 MySQL 的死锁检测机制是通过遍历事务之间...
死锁是指两个或两个以上的事务在执行过程中,由于每个事务都持有某些资源且又都在等待其他事务释放其持有的资源,导致这些事务都无法继续执行的现象。在MySQL中,尤其是在InnoDB存储引擎下,当检测到死锁时,MySQL会...
### MySQL死锁分析 #### 死锁问题背景 在MySQL的使用过程中,死锁是一个较为常见的现象,尤其是在并发量较大的应用场景下。死锁的发生往往会给系统带来不可预知的影响,严重时甚至会导致整个数据库服务不可用。...
MySQL中的死锁问题是一个复杂而微妙的议题,尤其是在数据库优化和并发控制中。本文将深入探讨一个看似不可能发生的死锁案例,并分析其背后的原理。死锁通常发生在多个事务相互等待对方释放资源的情况下,但在这个...
总之,理解MySQL死锁的原理、识别死锁的方法以及如何预防和解决死锁,对于提升系统的稳定性和性能至关重要。在实际操作中,应结合业务需求和数据库特性,采取相应的策略来避免死锁的发生。通过深入学习和实践,我们...
MySQL数据库死锁是数据库系统中常见的问题,它发生在两个或多个事务在执行过程中,因争夺资源而造成的一种相互等待的现象,若无外力干涉它们将无法继续执行。了解和处理死锁是数据库管理员和开发人员必备的技能。...
死锁发生时,两个或多个事务互相等待对方释放资源,导致系统无法继续执行。在MySQL的InnoDB存储引擎中,死锁检测机制能自动识别并解决这种情况,通常通过回滚其中一个事务来打破循环。 当发生死锁时,MySQL服务器会...
MySQL死锁问题是数据库管理员和开发者在工作中经常遇到的一种并发问题,尤其在面试中也常作为考核候选人的一个知识点。本文将以一个具体的死锁案例为背景,深入分析MySQL中的死锁机制,探讨死锁的成因,并提出预防...
本文将探讨MySQL死锁的产生原因以及解决方案。 **死锁的产生原因** 1. **资源竞争与顺序依赖**:当两个事务A和B分别持有对方需要的资源,A等待B释放资源,B也在等待A释放资源,就会形成死锁。例如,事务A锁定表A后...
在 MySQL 中,死锁是指两个或多个事务之间的资源竞争,导致事务无法继续执行的情况。死锁可能会导致数据库性能下降,甚至整个数据库无法访问。为了避免或最小化 MySQL 死锁,需要了解死锁的原因和解决方法。 死锁的...
当事务A持有资源R1,并等待事务B持有的资源R2解锁时,同时事务B持有资源R2并等待事务A持有的资源R1解锁时,就会形成一个死锁的循环等待,导致事务无法继续执行。 ### 死锁的类型 在MySQL中,死锁主要分为两种类型:...
首先,让我们看看导致MySQL死锁的一些常见场景。第一种情况是两个事务按照相反的顺序锁定数据行。例如,事务A先锁定了行1,然后尝试锁定行2,而事务B则先锁定了行2,然后尝试锁定行1。由于双方都在等待对方释放资源...
死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的状态,且若无外力介入,这些进程将无法继续推进。死锁的关键在于:不同会话(Session)加锁的顺序不一致。 在MySQL中,InnoDB存储引擎...
总的来说,理解数据库底层源码和操作对于解决MySQL死锁至关重要。项目经理不仅需要关注代码层面的问题,还应具备数据库管理和调优的知识,以便更好地维护系统稳定性和用户满意度。在遇到类似问题时,应进行详细的...