zoukankan      html  css  js  c++  java
  • Lock wait timeout exceeded; try restarting transaction

    转自 http://blog.itpub.net/12679300/viewspace-1418320/

    http://blog.csdn.net/mayor125/article/details/76186661

    在管理ORACLE的工作中,经常发现因为锁等待的原因导致应用宕机了。Mysql考虑到自身的性能和架构等因素,InnoDB数据库引擎增加了参数innodb_lock_wait_timeout,避免在资源有限的情况下产生太多的锁等待;

    一、innodb_lock_wait_timeout的参数说明

    image_thumb[1]

    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锁等待的相关参数做一个简单的了解,后续会有整理相关锁等待及管理的文档;

  • 相关阅读:
    debugs
    MySQL事务隔离级别详解(转)
    解决SQL Server管理器无法连接远程数据库的问题(转)
    jQuery中click(),bind(),live()的区别(转)
    各jQuery选择器的用法(转)
    使用JQuery获取对象的几种方式(转)
    HTML中元素的定位方式
    深入浅出REST(转载)
    jQuery-Selectors(选择器)的使用(二、层次篇)(转载)
    linux常用命令
  • 原文地址:https://www.cnblogs.com/guxiaobei/p/7993350.html
Copyright © 2011-2022 走看看