Heim  >  Artikel  >  Datenbank  >  atitit查询表修改表字段没反应--解锁锁定的表

atitit查询表修改表字段没反应--解锁锁定的表

WBOY
WBOYOriginal
2016-06-07 15:56:131283Durchsuche

atitit查询表修改表字段没反应--解锁锁定的表 查询表修改表字段没反应 要是使用gui 没反应,最好使用cmd 方式,不卉不个gui 锁上.. ALTER TABLE t_mb_awardweixin MODIFY awardChoiceNumLeft int(11) DEFAULT NULL #-----分析.. 1.首先,查询by另一个表格, 要是


atitit查询表修改表字段没反应--解锁锁定的表

查询表修改表字段没反应

要是使用gui 没反应,最好使用cmd 方式,不卉不个gui 锁上..
ALTER TABLE t_mb_awardweixin MODIFY awardChoiceNumLeft int(11) DEFAULT NULL

#-----分析..

1.首先,查询by另一个表格, 要是能查询,显示不是max conn的问题..也许表格锁定了..
2. show full PROCESSLIST 要是看到个Waiting for table metadata lock
3. 查询锁上的表格. show OPEN TABLES where In_use > 0;

作者 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax

#---------原因MDL:::

一个没提交的事务使用了A表, 另外一个session 对A表进行alter,出现waiting for table metadata lock

在insert into t select * from share 运行时, 同时执行alter table t add index(play_count),
alter table语句会Waiting for table metadata lock, 直到insert into … select 语句结束。

概述

随着5.5.3引入MDL,更多的Query被“Waiting for table metadata lock”给'炕'了
SHOW PROCESSLIST的输出也有之前的"Locked"变得粒度更加细的'Waiting for table metadata lock'
引入MDL,当需要访问、修改表结构时,都需要对元数据上锁(读/写)
MDL在Server层,保护表数据结构,而非数据本身。Server比之前版本繁忙多了

MDL意味着DDL,一旦DDL被阻塞,那么面向该表的所有Query都会被挂起,包括Select,不过5.6作了改进,5.5可通过参数控制

3.应用中使用了连接池..但是又要ddl...连接池老是连续start 有些conn, kill李韩式有自动开始..造成后面儿ddl 不能执行..

#----解决
1. 设置lock_wait_timeout=50 ,默认1年.. 仅仅下一次时间生效..当前只有kill 才可以解决..
2. kill 锁上 conn ( DDM alter 的query sql) ,,,,别的query 事务奏能连续兰..
3. 对付连接池, 可以设置timeout自动关闭连接.. 但是要重启生效..要是应用重要性,不能重启,可以使用防火墙阻止java进程 访问网络... 批处理kill id ,, 查看一下,应该不会自动连接池连接上了,,,在ddl操作,在放开.....

#----结论:
在准备alter table tbl 的时候,先观察一下,有没有正在运行的,且在短时间内无法结束的sql语句在操作tbl表
结论:

当需要对"热表"做DDL,需要特别谨慎,否则,容易造成MDL等待,导致连接耗尽或者拖垮Server
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn