将 MySQL 数据库移动到新系统同时最大限度地减少停机时间的最快方法?

Mar*_*ouf 4 mysql database migration amazon-ec2

我想尽量减少停机时间(在“转换”期间)。

我们在 EC2 上运行,数据位于 EBS 卷上。在运行时拍摄数据库卷的快照并使用它来恢复新数据库是否安全,还是我需要先关闭旧数据库?

Dan*_*ley 8

我会建议:

  1. 使用 暂时处于读取锁定状态时拍摄快照FLUSH TABLES WITH READ LOCK;
  2. 将该数据集放在您的辅助机器上并检查一致性。
  3. 设置从旧机器到新机器的复制。

然后在您的切换点:

  1. 关闭旧机器上面向客户端的 IP(你有一个单独的,对吧?)。
  2. FLUSH LOGS;旧机器上的问题。
  3. 确保新机器同步。0 秒落后。
  4. 停止旧机器并根据新机器的位置仔细检查最后一个 binlog 大小。
  5. STOP SLAVE; RESET MASTER;新机器上的问题。
  6. 在新机器上调出面向客户端的 IP 并发出声音以确保客户端看到它。

还有一些更精细的细节,例如您是否是 InnoDB 重度用户。但那是一般情况。