在已有的复制环境中增加从库,无需干扰主库的运行。可以把已存在的从库数据目录整体拷贝到新的从库服务器,然后为新的从库服务器分配唯一的server-id和UUID(数据目录下的auto.cnf文件)。具体步骤如下:
1、停止从库的复制,然后记录从库的状态信息。
mysql> STOP SLAVE;
mysql> SHOW SLAVE STATUS\G;
要注意记录master binary log文件和relay log文件位置。
2、关闭从库MySQL服务:
shell> mysqladmin shutdown
3、拷贝完整的数据目录到新的从库(包括log文件及relay log文件)。可以使用tar或WinZip,或者直接拷贝。
注意:要检查系统变量,确保数据拷贝的完整性。因为有些数据可能放在了不同的目录下。如:InnoDB系统表空间,undo表空间,redo日志,binlog及relay log等。拷贝完成后,在新的从库服务器中删除auto.cnf文件,这样在下次启动MySQL时会产生新的服务器UUID。
这里要特别主要检查新的从库服务器--relay-log和--relay-log-index配置项,要与拷贝过来的数据相匹配,可以与数据来源的从库配置一样的值。否则在启动时会报错。
4、拷贝完成后,重启原从库服务器。
5、为新从库服务器配置唯一的server-id。
6、启动新从库服务器,在启动时指定--skip-slave-start选项,避免启动服务时自动开始复制。执行SHOW SLAVE STATUS语句确认新从库服务器配置正确。同时再次验证server-id和UUID的唯一性。
7、在新从库服务器上执行START SLAVE。新从库服务器正式加入已有的复制环境。