日志中的“Lock wait timeout”说明锁等待超时。锁等待超时一般是因为有其他的SQL语句已经持有了锁,当前SQL语句需要等待持有锁的SQL语句执行完毕释放锁之后才能执行。当申请的锁等待时间超过GUC参数lockwait_timeout的设定值时,系统会报LOCK_WAIT_TIMEOUT的错误。
percona版本的mysql服务的错误日志如下: 2021-07-13T14:21:27.442042+08:00 3262227 [Note] InnoDB: Lock wait timeout info: Requested thread id: 3262227 Requested trx id: 48830402 Requested query: update apple set mac_last_heartbeat = 1626157276000 where ext_id = 105790 Total blocking transactions c...
达到预期效果。但是同样的SQL语句跑到开发环境就不行了,执行了100多秒后,直接报 Lock wait timeout exceeded; try restarting transaction 这样的错误。 二、原因分析 因为使用的数据库为 MySQL,而 device_data_message 表的引擎是 InnoDB 表类型,此时会出现锁等待的情况,在出现锁等待时,会根据参数 innodb_lock_wai...
trx_started:事务开始时间。 trx_requested_lock_id:事务当前正在等待锁的标识,可以和 INNODB_LOCKS 表 JOIN 以得到更多详细信息。 trx_wait_started:事务开始等待的时间。 trx_weight:事务的权重。 trx_mysql_thread_id:事务线程 ID,可以和 PROCESSLIST 表 JOIN。 trx_query:事务正在执行的 SQL 语句。 trx_opera...
业务反映某一天这个Lock wait timeout异常特别严重,于是找到我来排查,这不很明显的吗?就是等待锁超时异常了,但是呢,业务不知道哪个地方出现了锁等待,也不清楚什么sql导致的,拉一堆人马在那里等待我救命 于是,我迅雷不及掩耳之势查找了mysql错误日志和中间件日志,业务也说了什么时候出现的,因此直接定位到对应时间段...
2021-07-13T14:21:27.442042+08:003262227[Note]InnoDB: Lock wait timeout info: Requested thread id:3262227Requested trx id:48830402Requested query:updateapplesetmac_last_heartbeat=1626157276000whereext_id=105790Total blocking transactionscount:1Blockingtransactionnumber:1Blocking thread id:3232905Blocking que...
现网研发突然反馈大量的 Lock wait timeout exceeded; try restarting transaction 基本原因: 后提交的事务等待前面处理的事务释放锁,但是在等待的时候超过了mysql的锁等待时间,就会引发这个异常。 分析 查看监控 查看监控可以看出05:55:45 到06:12:15 有大量的锁等待,结合未提交事务监控发现刚好这段时间有2个未提...
com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction 上述这个错误,接触 MySQL 的同学或多或少应该都遇到过,专业一点来说,这个报错我们称之为锁等待超时。根据锁的类型主要细分为:
在innoDB引擎下,默认的innodblockwait_timeout参数设置锁等待的时间是50s,一旦数据库锁超过这个时间就会报错。 2. 查找问题 先从mysql角度来对问题进行分析,查看mysql server上的事务情况和锁的情况以及锁等待的情况。 2.1. 查看进程 SHOW PROCESSLIST; 输出结果为: ...
意思是:InnoDB在锁等待超时过期时报告此错误。等待时间过长的语句被回滚(而不是整个事务)。如果SQL语句需要等待其他事务完成的时间更长,则可以增加 innodb_lock_wait_timeout 配置选项的值;如果太多长时间运行的事务导致锁定问题并降低繁忙系统上的并发性,则可以减少该选项的值。