gpt4 book ai didi

mysql - 'show engine innodb status' 中过时的死锁信息

转载 作者:行者123 更新时间:2023-11-29 10:15:34 25 4
gpt4 key购买 nike

我正在运行一个基于 MariaDB 10.1.32 的具有 3 个节点的 MariaDB Galera 集群。目前,我在系统日志中收到了很多这样的“发现死锁”消息:

2018-05-04  9:21:33 140130671872768 [ERROR] mysqld: Deadlock found when trying to get lock; try restarting transaction

为了找到死锁的原因,我运行“show engine innodb status”,但“LATEST DETECTED DEADLOCK”部分仅包含过时的信息(根据时间戳):

------------------------
LATEST DETECTED DEADLOCK
------------------------
2018-04-28 21:21:08 7f71a9450b00
*** (1) TRANSACTION:
[...]

为什么日志中报告了死锁,但它们没有出现在“show engine innodb status”的输出中?

最佳答案

简单的回答是,Galera 可能会引发非 InnoDB 死锁的死锁错误。

SHOW ENGINE INNODB STATUS; 中您会看到的唯一情况是 InnoDB 死锁,即同一服务器上的多个事务试图获取不兼容的锁。这些永远不会在事务提交时发生——它们总是比这更早,是 InnoDB 内置的悲观锁定的结果。它们仅出现在它们发生的服务器上。

当跨多个服务器的事务试图提交冲突的结果并且这些事务发生冲突时,Galera 将引发死锁。这些发生在事务提交时,或者如果您处于自动提交模式,则在隐式提交时发生,这是 Galera 乐观锁定的结果。这些是对不同主机的写入之间的冲突。

http://galeracluster.com/documentation-webpages/dealingwithmultimasterconflicts.html

关于mysql - 'show engine innodb status' 中过时的死锁信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50169522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com