使用'show engine innodb status'我看到wordpress有两个死锁.我想清除这些,但我没有看到这些cmds中的任何一个的活动进程(IE某些东西要'杀'并希望强制回滚).
我可以看到线程ID,查询ID等,但我无法用来阻止任何一项工作.
关于如何解决这个问题的建议?
编辑:这是状态的(相关?)部分:
------------------------
LATEST DETECTED DEADLOCK
------------------------
110327 10:54:14
*** (1) TRANSACTION:
TRANSACTION 9FBA099E, ACTIVE 0 sec, process no 14207, OS thread id 1228433728 starting index read
mysql tables in use 1, locked 1
LOCK WAIT 2 lock struct(s), heap size 376, 1 row lock(s)
MySQL thread id 12505112, query id 909492800 juno....edu 129....54 wordpress_user updating
DELETE FROM wp_options WHERE option_name = ''_site_transient_timeout_theme_roots''
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 4951009 page no 4 n bits 384 index `option_name` of table `wordpress_work`.`wp_options` trx id 9FBA099E lock_mode X waiting
Record lock, heap no 309 PHYSICAL RECORD: n_fields 2; compact format; info bits 32
0: len 30; hex 5f736974655f7472616e7369656e745f74696d656f75745f7468656d655f; asc _site_transient_timeout_theme_; (total 35 bytes);
1: len 8; hex 0000000000002b6d; asc +m;;
*** (2) TRANSACTION:
TRANSACTION 9FBA0995, ACTIVE 0 sec, process no 14207, OS thread id 1230031168 starting index read
mysql tables in use 1, locked 1
3 lock struct(s), heap size 1248, 2 row lock(s)
MySQL thread id 12505095, query id 909492789 juno....edu 129.....54 wordpress_user updating
DELETE FROM wp_options WHERE option_name = ''_site_transient_timeout_theme_roots''
*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 4951009 page no 4 n bits 384 index `option_name` of table `wordpress_work`.`wp_options` trx id 9FBA0995 lock_mode X locks rec but not gap
Record lock, heap no 309 PHYSICAL RECORD: n_fields 2; compact format; info bits 32
0: len 30; hex 5f736974655f7472616e7369656e745f74696d656f75745f7468656d655f; asc _site_transient_timeout_theme_; (total 35 bytes);
1: len 8; hex 0000000000002b6d; asc +m;;
*** (2) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 4951009 page no 4 n bits 384 index `option_name` of table `wordpress_work`.`wp_options` trx id 9FBA0995 lock_mode X waiting
Record lock, heap no 309 PHYSICAL RECORD: n_fields 2; compact format; info bits 32
0: len 30; hex 5f736974655f7472616e7369656e745f74696d656f75745f7468656d655f; asc _site_transient_timeout_theme_; (total 35 bytes);
1: len 8; hex 0000000000002b6d; asc +m;;
*** WE ROLL BACK TRANSACTION (1)
Run Code Online (Sandbox Code Playgroud)
Mar*_*c B 20
鉴于一些'innodb status'输出如下:
---TRANSACTION 0 0, not started, process no 1024, OS thread id 140386055603968
MySQL thread id 197, query id 771 localhost marc
show innodb status
Run Code Online (Sandbox Code Playgroud)
你想做的
KILL QUERY 771
Run Code Online (Sandbox Code Playgroud)
杀死死锁的两个查询中的一个.这会杀死查询,但保持连接打开.如果你想杀死连接,那你就做了KILL 197.
Gra*_*ray 10
使用'show engine innodb status'我看到wordpress有两个死锁......关于如何解决这个问题的建议?
我想我会提供更多可以帮助我们解决类似问题的信息.我们看到Java hibernate问题导致卡住锁定.我们通过梳理输出来找到锁:
show engine innodb status;
Run Code Online (Sandbox Code Playgroud)
这吐出了大量的信息.相关部分在该TRANSACTIONS部分中.在您的输出中,相关问题似乎是:
3 lock struct(s), heap size 1248, 2 row lock(s)
MySQL thread id 12505095, query id 909492789 juno....edu 129.....54
Run Code Online (Sandbox Code Playgroud)
对我们来说,# lock struct(s)这表明卡住了.要杀死它,你需要使用指定的"线程ID#"执行 - 在这种情况下:
kill 12505095
Run Code Online (Sandbox Code Playgroud)
这适用于AWS MySQL RDS以及本地MySQL.
在我们的TRANSACTIONS部分中,我们还会看到以下内容:
---TRANSACTION 644793773, ACTIVE 21 sec
2 lock struct(s), heap size 360, 1 row lock(s)
MySQL thread id 217, OS thread handle 0x2aef097700, query id 10177 1.3.5.7 mpsp cleaning up
Run Code Online (Sandbox Code Playgroud)
我们寻找2 lock struct(s)和ACTIVE 21 sec消息.
我知道这是旧的,但通常当你看到这样的事情时,这是因为发生了死锁并且触发死锁的应用程序早已移动 - 死锁的受害者得到警告并且失败,或者记录错误或重试,无论哪种方式都转向了其他富有成效的事物.除了查看死锁原因之外,通常不需要做任何其他事情,如果您正在编写软件,请尝试避免将来的死锁.如果您只是使用该软件(例如,如果您不在Wordpress上工作,请使用Wordpress),您可以将死锁报告为可能的错误.
| 归档时间: |
|
| 查看次数: |
46478 次 |
| 最近记录: |