mysql故障转移:如何选择slave作为新的master?

kin*_*luo 5 mysql failover database-replication

我是mysql新手.

当涉及到故障转移时,哪个奴隶应该被提升为新的主人?

例如,A是主服务器,B和C是从服务器,A执行到B和C的异步复制.

在某些时候,B从A接收的数据多于C,A崩溃.

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

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

Ped*_*que 2

MySQL文档来看,有两种建立主从架构的方法。传统方式是使用日志文件来复制事务,新版本(5.6+)使用GTID(全局事务标识符)。

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

  • auto(默认):在首选从站列表中进行搜索以成为主站,如果没有可用的从站,则选择另一个从站。选定的从站首先成为所有其他从站的从站,并将其他从站的所有更改复制到它,这样新的主站将是可能的最新版本。
  • elect:与上面相同,除了如果列表中没有可用的从站,它会返回错误并完成(无故障转移)
  • 失败:不发生故障转移 mysqlfailover 将仅监视数据库并在发生故障时返回错误。

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