首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql failover:如何选择slave作为新的主机?

mysql failover:如何选择slave作为新的主机?
EN

Stack Overflow用户
提问于 2017-05-14 13:07:12
回答 2查看 1.3K关注 0票数 5

我是mysql新手。

在进行故障转移时,应将哪个从设备提升为新的主设备?

例如,A是主设备,B和C是从设备,A向B和C执行异步复制。

在某个时间点,B从A接收的数据比C多,A崩溃。

如果我们将C提升为新的master,并将B的master更改为C,那么B会发生什么?它会截断它的数据以匹配C?

显然,B是最好的新硕士候选人,但我的问题是,如何确定这一事实?

EN

回答 2

Stack Overflow用户

发布于 2017-06-08 01:12:34

MySQL documentation中,有两种方法可以设置主从体系结构。传统方式,使用日志文件复制事务,并使用GTID(全局事务标识符)复制新版本(5.6+)。

如果您选择使用GTID进行故障转移处理,您将使用mysqlfailover实用程序。该实用程序以数据库管理员定义的三种方式之一来处理master的故障:

  • auto (默认):在首选从属设备列表中搜索以成为主设备,如果没有可用的从属设备,则选择其他从属设备。所选的从机首先成为所有其他从机的从机,并将来自其他从机的所有更改复制到它,这样,新的主机将是与上面相同的最新版本,只是如果列表中没有可用的从机,它将返回错误并完成(no failover)
  • fail: no failover发生most

将仅监视数据库,并在发生故障时返回错误。most

传统的方法要求您实现自己的数据库管理脚本,here对此有更好的解释。

票数 2
EN

Stack Overflow用户

发布于 2017-06-11 18:46:52

SHOW SLAVE STATUS中的Relay_Master_Log_FileExec_Master_Log_Pos用于确定最好的从节点作为新的主节点:取值越大越好。

如果没有GTID,我认为我们必须首先将其他从属与我们选择的最好的从属同步。显而易见的同步源是中继日志。在每个slave上,确定中继日志与最佳slave的差异,下载这些文件并重播SQL语句。一旦所有的奴隶都赶上了,这些奴隶就可以CHANGE MASTER TO最好的奴隶了。MASTER_LOG_FILEMASTER_LOG_POS将是最好的从服务器上最后一个binlog的尾部。

有了GTID,事情就很简单了:只需要使用MASTER_AUTO_POSITION=1CHANGE MASTER TO

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43960577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档