当前位置: 首页 > news >正文

中国企业网站设计案例文化建设的中心环节是什么

中国企业网站设计案例,文化建设的中心环节是什么,舆情中心,口碑好的广州做网站前言#xff1a;今天开发童鞋遇到一个奇怪的问题#xff0c;在测试环境里面执行drop database dbname发现一直夯住不动#xff0c;等了很久也没有执行#xff0c;于是问题就到我这里了一、什么是MetaData Lock#xff1f;MetaData Lock即元数据锁#xff0c;在数据库中元…前言今天开发童鞋遇到一个奇怪的问题在测试环境里面执行drop database dbname发现一直夯住不动等了很久也没有执行于是问题就到我这里了一、什么是MetaData LockMetaData Lock即元数据锁在数据库中元数据即数据字典信息包括db,table,function,procedure,trigger,event等。metadata lock主要为了保证元数据的一致性,用于处理不同线程操作同一数据对象的同步与互斥问题二、MetaData Lock的前世今生mdl锁是为了解决一个有名的bug#989所以在5.5.3版本引入了MDL锁。其实5.5也有类似保护元数据的机制只是没有明确提出MDL概念而已。但是5.5之前版本(比如5.1)与5.5之后版本在保护元数据这块有一个显著的不同点是5.1对于元数据的保护是语句级别的5.5对于metadata的保护是事务级别的。所谓语句级别即语句执行完成后无论事务是否提交或回滚其表结构可以被其他会话更新而事务级别则是在事务结束后才释放MDL。引入MDL锁主要是为了解决两个问题事务隔离问题比如在可重复隔离级别下会话A在2次查询期间会话B对表结构做了修改两次查询结果就会不一致无法满足可重复读的要求。数据复制问题比如会话A执行了多条更新语句期间另外一个会话B做了表结构变更并且先提交就会导致slave在重做时先重做alter再重做update时就会出现复制错误的现象。也就是上面提到的bug#989。三、Waiting For Table MetaData Lock场景重现(这也是我们今天遇到的问题)session A注意这里是显示的提交一个事务rootlocalhost:mysql.sock 18:03:49 [tom]desc test;-----------------------------------------------------------------------| Field | Type | Null | Key | Default | Extra |-----------------------------------------------------------------------| id | int(10) | NO | PRI | NULL | auto_increment || name | varchar(32) | YES | | NULL | || age | int(10) | YES | | NULL | || createtime | datetime | NO | | CURRENT_TIMESTAMP | |-----------------------------------------------------------------------4 rows in set (0.01 sec)rootlocalhost:mysql.sock 18:03:43 [tom]start transaction;Query OK, 0 rows affected (0.00 sec)rootlocalhost:mysql.sock 18:03:46 [tom]select c99 from test;ERROR 1054 (42S22): Unknown column c99 in field listsession B执行Online DDL(我这个是MySQL5.7.14官方版本哦)rootlocalhost:mysql.sock 18:02:26 [tom]Start transaction;Query OK, 0 rows affected (0.00 sec)rootlocalhost:mysql.sock 18:04:16 [tom]alter table test drop column age;发生阻塞...session Cprocesslist看不到任何test表操作但是有MDL锁rootlocalhost:mysql.sock 18:02:31 [tom]show processlist;------------------------------------------------------------------------------------------------------------------------| Id | User | Host | db | Command | Time | State | Info |------------------------------------------------------------------------------------------------------------------------| 743 | monitor | 10.0.0.6:54020 | NULL | Sleep | 3 | | NULL || 92210 | monitor | 10.0.0.6:46778 | NULL | Sleep | 1 | | NULL || 93740 | root | localhost | tom | Query | 0 | starting | show processlist || 93742 | root | localhost | tom | Sleep | 64 | | NULL || 93743 | root | localhost | tom | Query | 8 | Waiting for table metadata lock | alter table test drop column age |------------------------------------------------------------------------------------------------------------------------5 rows in set (0.00 sec)innodb engine监控看不到任何锁冲突信息------------TRANSACTIONS------------Trx id counter 112477Purge done for trxs n:o 112477 undo n:o 0 state: running but idleHistory list length 556LIST OF TRANSACTIONS FOR EACH SESSION:---TRANSACTION 421340178270032, not started0 lock struct(s), heap size 1136, 0 row lock(s)---TRANSACTION 421340178271856, not started0 lock struct(s), heap size 1136, 0 row lock(s)---TRANSACTION 421340178270944, not started0 lock struct(s), heap size 1136, 0 row lock(s)--------FILE I/O--------查看information_schemarootlocalhost:mysql.sock 18:18:46 [tom]select trx_id,trx_state,trx_started,trx_mysql_thread_id from information_schema.innodb_trx;Empty set (0.00 sec)这种情况是一个特例存在一个查询失败的语句比如查询不存在的列语句失败返回但是事务没有提交此时alter仍然会被堵住。通过show processlist看不到表上有任何操作在information_schema.innodb_trx中也没有任何进行中的事务。这很可能是因为在一个显式的事务中对表进行了一个失败的操作(比如查询了一个不存在的字段)这时事务没有开始但是失败语句获取到的锁依然有效。从performance_schema.events_statements_current表中可以查到失败的语句。If the server acquires metadata locks for a statement that is syntactically valid but fails during execution, it does not release the locks early. Lock release is still deferred to the end of the transaction because the failed statement is written to the binary log and the locks protect log consistency.定位问题SQL然后杀掉对应的SQL。查看每一个session正在执行的sql然后通过下面语句定位到问题sql杀掉就可以了select * from performance_schema.events_statements_current\Gselect * from sys.session\Gselect * from sys.processlist\G为了方便大家交流本人开通了微信公众号和QQ群291519319。喜欢技术的一起来交流吧
http://www.pierceye.com/news/348236/

相关文章:

  • 在家里组一个服务器做网站有心学做网站
  • 广东企业网站模板推荐flash网址
  • 网站标题正确书写标准h5页面制作平台有哪些
  • 详情页设计与制作网站品牌词优化怎么做
  • 成都科技网站建设咨询电话平面设计品牌设计
  • 网站建设的可行性报告做网站需要了解的知识
  • 高邮网站建设推广怎么做
  • 珠宝网站建设公司wordpress 显示指定分类
  • 站酷网设计素材龙岗网站建设公司哪家口碑好
  • 达州达县网站建设上海网络推广服务公司
  • 周口网站关键词优化助孕网站优化推广
  • 做网站的钱叫什么科目企业做网站的好处有哪些
  • 做外贸网站流程如何建立网上商城
  • 爱网站关键词挖掘广西住房城乡建设厅
  • 零基础网站建设入门到精通视频教程河源建设网站
  • 焦作市建设工程网站石龙网站开发
  • 建公司网站报价牛商网网站建设
  • 中国现代公路建设有限公司网站网站建设技巧饣金手指排名27
  • 食品网站开发的背景阿里云oss建站 直接上传wordpress
  • 石泉政协网站建设方案网络广告推广服务
  • 怎么用lamp做网站桂林网
  • 织梦网站专题页面如何做网站排名优化提升快速
  • 公司建设网站费用吗qq官方网站登录入口
  • 怎么用自己的服务器做网站国外酷炫网站有哪些
  • 音乐网站建设规划国内最近新闻
  • 东莞骄阳网站建设wordpress 安装出现 过多重定向
  • 学校网站建设开题报告站长工具域名备案查询
  • 网站商城微信支付宝支付宝支付接口网站 空间地址是什么
  • 公司网站功能模块弹出全屏视频网站怎么做
  • 网站实现搜索功能网站建设时间规划