我设置了一个包含2个节点的galera集群,我在2个服务器上禁用了自动提交。
set autocommit=0;
在server1和COMMIT上INSERT数据,但server2没有更新数据;
server2需要COMMIT;在SELECT之前;
如何在没有COMMIT的情况下续订数据,除了autocommit = 1?
答案 0 :(得分:0)
您可能指的是“批判性阅读”问题,而不是autocommit
。请参阅wsrep_sync_wait
上的手册,SET
之前的SELECT
指向可能从数据所在节点以外的节点读取数据的SELECT
书面。这可以确保捕获复制,从而获得“正确”的答案。
My Galera blog讨论了这个方面,等等。
如果您需要等待SET
以外的内容,请使用15代作BEGIN
中的值。
(我更喜欢明确使用autocommit=0
而不是BEGINs
;然后我可以在代码中配对COMMITs
和{{1}},而不是让事务'开放'永远。)