MST

星途 面试题库

面试题:MySQL一主库多备库架构下如何处理主库故障转移

在MySQL一主库多备库架构中,当主库出现故障时,通常有哪些方式可以实现故障转移?请简要描述其中一种常见方法的具体步骤。
24.1万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试

在MySQL一主库多备库架构中,实现故障转移的常见方式有:

  • 手动故障转移:DBA手动挑选一个备库,将其提升为主库,并重新配置其他备库指向新主库。
  • 使用高可用工具:如MHA(Master High Availability)、Orchestrator等自动完成故障检测和转移。

以MHA为例,具体步骤如下:

  1. 故障检测:MHA Manager节点通过心跳机制持续监测主库状态,当一定时间内无法获取主库心跳响应时,判定主库故障。
  2. 选主:MHA Manager会根据预先设定的规则从多个备库中挑选一个合适的备库作为新主库,通常优先选择复制延迟最小的备库。
  3. 提升新主库:MHA Manager通过SSH连接到选中的备库,执行一系列命令将其提升为主库,例如执行STOP SLAVE命令停止复制,然后使用RESET MASTER命令重置主库状态。
  4. 重配置其他备库:MHA Manager将其他备库重新指向新主库,在其他备库上执行CHANGE MASTER TO命令,修改主库连接信息为新主库地址和日志位置等。
  5. 应用程序切换:通知应用程序更新数据库连接信息,将数据读写请求切换到新主库。