MySQL等待处理程序提交



从MySQL 5.7升级到8.0后,我偶尔会遇到查询永远等待处理程序提交状态的问题。

42425 generic %:45408 objects_db Killed 59608 waiting for handler commit COMMIT
42426 generic %:45410 objects_db Killed 59608 waiting for handler commit commit
42434 generic %:45428 objects_db Killed 59608 waiting for handler commit COMMIT
42444 generic %:45454 objects_db Killed 59608 waiting for handler commit REPLACE INTO vvObjectSearch(CompanyID, ObjectTypeID, ObjectID, PropertyID, `Value`)
  1. 没有办法杀死这些查询
  2. 没有办法重新启动MySQL服务-它永远挂起,唯一的方法是杀死-9
  3. 试图将range_optimizer_max_mem_size更改为高值,包括0
  4. 错误日志

服务器与另一个服务器进行主-主复制。两个服务器完全相同,但服务于不同的客户机。另一台服务器由于某种原因没有这个问题。经过几周的研究,我重新构建了服务器,并从第二台服务器恢复了一个新的备份(xtrabackup),从而恢复了复制。没有帮助。什么好主意吗?

经过3个月的抗争,我将回答我自己的问题,以防有人有类似的问题。背景:在MySQL 8.0.27中,replica_parallel_workers的默认值从0(单线程)更改为4。我将replica_parallel_workers更改为零,问题就解决了。MySQL中出现了一个bug,导致从线程之间出现死锁。

相关内容

最新更新