克隆虚拟机以添加新的 MySQL 从属服务器

克隆虚拟机以添加新的 MySQL 从属服务器

我正在向复制的 MySQL 设置添加新的从属服务器。我建议执行以下流程:

  1. 将其中一个节点克隆到新虚拟机
  2. 无需网络即可启动
  3. 停止mysql
  4. 将 my.cnf 中的 server-id 更改为新的 id
  5. 重启 mysql 和网络

这应该可以正常工作吗?还是 MySQL 会因为之前使用的服务器 ID 不同而感到困惑?

操作系统:Ubuntu 10.10

虚拟机平台:VMWare 5

MySQL:服务器版本:5.1.49-1ubuntu8.1-log(Ubuntu)

答案1

我不熟悉 VMWare,但我熟悉跨任意逻辑卷执行此过程。首先,您必须以某种方式克隆 VM,以便您的 VM 快照以一致状态复制服务器(如 LV Snap)。您还需要能够在开始复制时获取从属服务器的当前复制坐标。因此,需要以下机制:

  1. 使用读锁刷新表;
  2. 显示从服务器状态 a. 从此输出中检索 Exec_Master_Log_Pos 和 Relay_Master_Log_File,这些是您在新的从服务器上设置复制时要使用的坐标
  3. -- 开始创建快照
  4. 解锁桌子;

完成此操作并从映像构建新服务器后,您将需要在从属服务器上执行 CHANGE master 语句来更新这些 binlog 坐标:

将 MASTER 更改为 MASTER_LOG_FILE="${来自 2a 的 Relay_Master_Log_File}", MASTER_LOG_POS=${来自 2a 的 Exec_Master_Log_Pos};

例如,此方法适用于 LV 快照。某些工具(例如 hollandbackup)支持这种风格的 LVM 复制:http://wiki.hollandbackup.org/mysqllvm

相关内容