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

时间:2014-02-05 09:48:10

标签: mysql innodb deadlock alarm zenoss

我的监控工具Zenoss正在从MySQL Innodb引擎报告“最新检测到的死锁”事件。 当我运行'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:

你可以看到死锁是在去年八月,我不能杀死线程,因为它不再存在:

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

我对Zenoss接受这个事件感到无聊,并且非常想清除这个警报的innodb引擎。 我用Google搜索了高低的答案,并提出了zilch,nada,什么都没有。 任何帮助非常感谢: - )

2 个答案:

答案 0 :(得分:4)

不幸的是,无法清除LATEST DETECTED DEADLOCK中的SHOW ENGINE INNODB STATUS部分。该查询已被死锁检测器杀死,因此您无法KILL。重置该信息的唯一方法是重新启动服务器。

由于该输出中存在某些东西,没有正确编写的软件应该持续发出警报。

答案 1 :(得分:1)

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