Mysql Galera Mariadb多主机复制
我正在尝试在3个不同的位置设置一个由3台服务器组成的集群;美国达拉斯、英国伦敦、印度孟买。在每个位置我都设置了一个Web服务器和db服务器。在db服务器上,我配置了Galera Mariadb多主机集群,以便在所有三台服务器之间复制db。我的每个Web服务器都通过本地IP连接到其区域数据库服务器。我希望我的Dallas Web服务器将从Dallas db服务器获取db记录;来自伦敦db服务器的伦敦Web服务器和来自孟买db服务器的孟买Web服务器 一切都很好,但我发现mysql查询在获取记录时需要花费超过100秒的时间。我曾经尝试过使用单个实例,并在5秒内获取数据Mysql Galera Mariadb多主机复制,mysql,mariadb,Mysql,Mariadb,我正在尝试在3个不同的位置设置一个由3台服务器组成的集群;美国达拉斯、英国伦敦、印度孟买。在每个位置我都设置了一个Web服务器和db服务器。在db服务器上,我配置了Galera Mariadb多主机集群,以便在所有三台服务器之间复制db。我的每个Web服务器都通过本地IP连接到其区域数据库服务器。我希望我的Dallas Web服务器将从Dallas db服务器获取db记录;来自伦敦db服务器的伦敦Web服务器和来自孟买db服务器的孟买Web服务器 一切都很好,但我发现mysql查询在获取记录时需
我做错了什么?可以将Galera配置为单主机。听起来不像是你做的,但建议仔细检查 鉴于所有节点都是可写的,下面是每个事务上发生的情况的简化视图
COMMIT
将成功返回给客户端BEGIN…COMMIT
,而是使用auto_COMMIT=ON
,那么在每个DML语句的末尾都有一个隐式的COMMIT
。)
对于本地读取,默认操作应返回“立即”
但是,也许你关心的是“批判性阅读”问题。(cfwsrep\u sync\u wait
)在这种情况下,您需要确保写入已传播到服务器。这可能会导致读取延迟200ms,因为它会等待“gcache”被捕获
如果您可以假设只从同一个服务器上读取它们的代码,请考虑设置<代码> WSReSySycCyWalth= 0 。如果有人跨数据中心先写后读,他可能会遇到“关键读取”问题。(这是他写东西的地方,但在下次阅读时可能看不到。)
感谢您的宝贵意见。我只使用SELECT语句从我的Web服务器到本地db服务器。某些SELECT查询会出现延迟,但并非所有查询都会出现延迟。但是当我关闭wsrep时,这种意外的延迟从未发生。我刚刚尝试在my.cnf中设置wsrep\u sync\u wait=0
,但没有成功。但这是默认值。@codelearner-所谓“关闭wsrep”是指禁用Galera?“不走运”是指它出现了语法错误?或者无法加速选择?是的,我关闭了Galera。它没有给出错误,但它得到超时,因为出于安全原因,我的请求超时限制在PHP中设置为100秒。如果我关闭了Galera,那么查询将及时完成。