MySQL 主/从切换到新 Windows 服务器/停机

MySQL Master / Slave switch to new Windows Servers / Downtime

我有以下问题,我必须用两个新的 Windows 服务器替换当前的两个 Windows 服务器。主服务器 (MySQL 5.7) 在一台服务器上运行,从服务器 (MySQL 5.7) 在另一台服务器上运行。我们有一个被许多用户访问的高效系统。 在没有太多停机时间的情况下创建交换机的最佳方法是什么? 我有一些数据库,加起来大约有 90GB。

常规方式是什么?

  1. 主/从停止
  2. 来自 master 的 mysqldump (mysqldump –u -p --flush-logs --hex-blob --all-databases)
  3. 在新的主服务器上转储导入
  4. 在新的从属服务器上转储导入

我来的路对吗?或者 mysqldump 是否有更好的选择,以便我可以减少停机时间。

非常感谢!

鉴于 A 是您当前的主节点,B 是您当前的副本节点。你的新服务器是 C 和 D...

当前:A -> B

让B离线,复制到C,然后设置复制:B -> C

让 B 重新上线并让它赶上:A -> B -> C

重复;现在 A -> B -> C -> D

短暂的停机时间将客户端从写入 A 转移到写入 C 和 从 B 读到从 D 读。

退休 A 和 B。现在 C -> D

其他问题

为什么只有 Primary -> Replica 复制?稍微好一点的是 C <-> D,或“dual-Primary”。更好的是集群(Galera 或 InnoDB Cluster);这将提供更多的 HA 和 auto-failover,但需要 3 个节点。

通过集群,即使 任何 一台服务器崩溃,您也可以获得零停机时间。