简体   繁体   English

MySQL Innodb死锁 - 如何删除旧事件?

[英]MySQL Innodb Deadlock - how to remove old event?

My monitoring tool, Zenoss, is reporting a 'LATEST DETECTED DEADLOCK' event from a MySQL Innodb engine. 我的监控工具Zenoss正在从MySQL Innodb引擎报告“最新检测到的死锁”事件。 When I run 'show engine innodb status\\G' I get the following information about the deadlock: 当我运行'show engine innodb status \\ G'时,我得到有关死锁的以下信息:

------------------------
LATEST DETECTED DEADLOCK
------------------------
130819 14:01:12
*** (1) TRANSACTION:
TRANSACTION 0 108626388, ACTIVE 0 sec, process no 8726, OS thread id 47220783470912
starting index read
mysql tables in use 1, locked 1
LOCK WAIT 4 lock struct(s), heap size 1216, 2 row lock(s), undo log entries 1
MySQL thread id 4283, query id 21974219 10.92.210.108 ddrsrbe Updating
update ddrsproduction.requests set request_priority_grade_id=3, costs=0, data_version=1, date_completed='2013-08-19 13:59:39', date_end='2013-05-24 23:59:00', date_required_by='2013-08-26 13:57:31', date_start='2013-05-19 00:01:00', date_submitted='2013-08-19 13:57:31', designated_authority_id=84528, is_manual=1, missed_sla_reason=null, missed_sla_reason_ask_user=null, product_id=35, request_cost_status_id=0, request_delivery_method_id=0, request_legislation_id=0, request_method_id=0, request_reason_id=1, request_result_status_id=null, origin_id=0, request_status_id=2, request_type_id=1, result_row_count=2, results_last_downloaded=null, site_processed='KNOW', time_zone=null, urn='LBP/281/35/12 (CONS)', user_id=2357, vf_rep_id=8 where request_id=132536
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:

You can see that the deadlock was in August last year, and I cannot kill the thread as it no longer exists: 你可以看到死锁是在去年八月,我不能杀死线程,因为它不再存在:

mysql> kill 4283;
ERROR 1094 (HY000): Unknown thread id: 4283

I am getting bored receiving this event in to Zenoss, and would very much like to purge the innodb engine of this alarm. 我对Zenoss接受这个事件感到无聊,并且非常想清除这个警报的innodb引擎。 I have Googled high and low for an answer and have come up with zilch, nada, nothing. 我用Google搜索了高低的答案,并提出了zilch,nada,什么都没有。 Any help hugely appreciated :-) 任何帮助非常感谢:-)

There is no way to clear the LATEST DETECTED DEADLOCK section in SHOW ENGINE INNODB STATUS unfortunately. 遗憾的是,无法清除SHOW ENGINE INNODB STATUS LATEST DETECTED DEADLOCK部分。 The query has already been killed by the deadlock detector, so there's nothing you can KILL . 该查询已被死锁检测器杀死,因此您无法KILL任何内容。 The only way to reset that information is to restart the server. 重置该信息的唯一方法是重新启动服务器。

No properly written software should continuously alert due to the presence of something in that output. 由于该输出中存在某些东西,因此没有正确编写的软件应该持续发出警报。

如果没有更新显示,请执行SHOW FULL PROCESSLIST以获取所有连接的列表并终止执行更新的连接,或使用Kill命令终止所有非活动/休眠会话。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM