0

我建立了一个有 2 个节点的 galera 集群,并在 2 个服务器上禁用了自动提交。

   set autocommit=0;

在 server1 和 COMMIT 插入数据,但 server2 没有更新数据;

server2 需要提交;选择之前;

我如何在没有 COMMIT 的情况下更新数据,除了 autocommit=1?

4

1 回答 1

0

您可能指的是“批判性阅读”问题,而不是autocommit. 请参阅 上的手册wsrep_sync_wait,它应该SET在 a 之前为 1 ,SELECT可能是从一个节点而不是写入数据的节点读取数据。这可以确保复制被赶上,以便您得到“正确”的答案。

我的 Galera 博客讨论了这方面,等等。

如果您需要SELECT等待 a 以外的东西,则使用 15 作为SET.

(我更喜欢明确地使用BEGIN而不是使用autocommit=0;然后我可以在代码中配对BEGINsCOMMITs而不是让事务永远“打开”。)

于 2015-08-22T01:05:35.060 回答