我们目前有以下问题导致我们的应用程序停机。我们所做的所有查询都会进入"等待表格"状态并停留在那里,导致MySQL服务器连接用完。
根据MySQL手册
,我们调查了问题并了解了它的含义等待桌子,等待桌子
线程得到了一个通知,表明了一个底层结构 表已更改,它需要重新打开表以获取新表 结构体。但是,要重新打开表,它必须等到所有其他表 线程关闭了有问题的表。
如果另一个线程使用了FLUSH TABLES,则会发出此通知 或有关表格中的下列陈述之一:FLUSH TABLES tbl_name,ALTER TABLE,RENAME TABLE,REPAIR TABLE,ANALYZE TABLE或OPTIMIZE TABLE。
我使用SHOW PROCESSLIST检查了我们的运行进程,发现没有数据定义语言语句,或者上面列表中的任何语句。
还有什么可能导致这种情况?
答案 0 :(得分:1)
我们并没有真正找到导致问题的答案,但似乎亚马逊的自动备份功能是罪魁祸首。我们现在在联系亚马逊支持后再次启动并运行。
答案 1 :(得分:1)
我今天遇到同样的问题。最后,我发现它是由大查询和备份过程的并发性引起的。带有-master-data的Mysqldump可能会导致刷新表命令。 看到这个 http://bugs.mysql.com/bug.php?id=35157
我的情况是: flush命令正在等待大查询; 其他查询正在等待flush table命令完成,因此它们被阻止。 当大查询完成时,情况正常。
所以我猜你当时可能会有一个大问题。