08 August 2015

在已有的MySQL主从复制下添加slave的方法:

方法一:

1、在已有的slave上,执行stop slave io_thread;,等待Slave_open_temp_tables为0时,执行stop slave sql_thread

2、然后执行flush tables with read lock;flush logs

3、拷贝整个datadir(bin-log、relay-log等信息也要在这里面)内容到new-slave的datadir下;

4、在new-slave上启动mysql后执行start slave;即可。

方法二:

方法一需要拷贝较多数据,我们也可以只拷贝需要进行复制的数据库。

1、在已有的slave上,执行stop slave io_thread;,等待Slave_open_temp_tables为0时,执行stop slave sql_thread

2、然后执行flush tables with read lock;flush logs

3、执行show slave status\G;获取replication position;

4、拷贝需要进行复制的数据库和ibdata1、ib_logfile1、ib_logfile0文件到new-slave的datadir下;

5、执行change master。

此方法可以采用Percona XtraBackup实现,相关信息: