【发布时间】:2015-08-20 12:19:58
【问题描述】:
我设置了一个有 2 个节点的 galera 集群,并在 2 个服务器上禁用了自动提交。
set autocommit=0;
在 server1 和 COMMIT 处插入数据,但 server2 没有更新数据;
server2 需要 COMMIT;选择之前;
我如何在没有 COMMIT 的情况下更新数据,除了 autocommit=1?
【问题讨论】:
标签: mariadb autocommit galera
我设置了一个有 2 个节点的 galera 集群,并在 2 个服务器上禁用了自动提交。
set autocommit=0;
在 server1 和 COMMIT 处插入数据,但 server2 没有更新数据;
server2 需要 COMMIT;选择之前;
我如何在没有 COMMIT 的情况下更新数据,除了 autocommit=1?
【问题讨论】:
标签: mariadb autocommit galera
您可能指的是“关键阅读”问题,而不是 autocommit。请参阅wsrep_sync_wait 上的手册,在SELECT 之前应该是SET 到1,这可能正在从一个节点而不是写入数据的节点读取数据。这可以确保复制被赶上,以便您得到“正确”的答案。
My Galera blog 讨论了这方面,等等。
如果您需要的不是 SELECT 来等待,那么使用 15 作为 SET 中的值。
(我更喜欢明确使用BEGIN 而不是autocommit=0;然后我可以在代码中配对BEGINs 和COMMITs,而不是让事务永远“打开”。)
【讨论】: