重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
前言:在管理ORACLE的工作中,经常发现因为锁等待的原因导致应用宕机了。MySQL考虑到自身的性能和架构等因素,InnoDB数据库引擎增加了参数innodb_lock_wait_timeout,避免在资源有限的情况下产生太多的锁等待;
一、innodb_lock_wait_timeout的参数说明
innodb_lock_wait_timeout指的是事务等待获取资源等待的最长时间,超过这个时间还未分配到资源则会返回应用失败;
参数的时间单位是秒,最小可设置为1s(一般不会设置得这么小),最大可设置1073741824秒(34年,一条语句锁等待超过30分钟估计业务该有反馈了)
默认安装时这个值是50s(公司的默认参数设置)
二、参数的修改
参数支持范围为Session和Global,且支持动态修改,所以可以通过两种方法修改;
2.1 通过语句修改
set innodb_lock_wait_timeout=100;
set global innodb_lock_wait_timeout=100;
注意global的修改对当前线程是不生效的,只有建立新的连接才生效
2.2 修改参数文件/etc/my.cnf
innodb_lock_wait_timeout = 50
三、当等待超过阀值时的情况
当锁等待超过设置时间的时候,就会报如下的错误;
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
总结:本文档只是对MySQL锁等待的相关参数做一个简单的了解,后续会有整理相关锁等待及管理的文档;
......................................................................................................................................................................………………………………………
目前累计服务客户数千家,积累了丰富的产品开发及服务经验。以网站设计水平和技术实力,树立企业形象,为客户提供成都做网站、成都网站制作、成都外贸网站建设、网站策划、网页设计、网络营销、VI设计、网站改版、漏洞修补等服务。创新互联始终以务实、诚信为根本,不断创新和提高建站品质,通过对领先技术的掌握、对创意设计的研究、对客户形象的视觉传递、对应用系统的结合,为客户提供更好的一站式互联网解决方案,携手广大客户,共同发展进步。
本文作者:JOHN,某上市公司DBA,业余时间专注于数据库的技术管理,从管理的角度去运用技术。
ORACLE技术博客:ORACLE 猎人笔记 数据库技术群:367875324 (请备注ORACLE管理 )
......................................................................................................................................................................………………………………………