我建立了一个有 2 个节点的 galera 集群,并在 2 个服务器上禁用了自动提交。
set autocommit=0;
在 server1 和 COMMIT 插入数据,但 server2 没有更新数据;
server2 需要提交;选择之前;
我如何在没有 COMMIT 的情况下更新数据,除了 autocommit=1?
我建立了一个有 2 个节点的 galera 集群,并在 2 个服务器上禁用了自动提交。
set autocommit=0;
在 server1 和 COMMIT 插入数据,但 server2 没有更新数据;
server2 需要提交;选择之前;
我如何在没有 COMMIT 的情况下更新数据,除了 autocommit=1?
您可能指的是“批判性阅读”问题,而不是autocommit
. 请参阅 上的手册wsrep_sync_wait
,它应该SET
在 a 之前为 1 ,SELECT
这可能是从一个节点而不是写入数据的节点读取数据。这可以确保复制被赶上,以便您得到“正确”的答案。
我的 Galera 博客讨论了这方面,等等。
如果您需要SELECT
等待 a 以外的东西,则使用 15 作为SET
.
(我更喜欢明确地使用BEGIN
而不是使用autocommit=0
;然后我可以在代码中配对BEGINs
和COMMITs
而不是让事务永远“打开”。)