本文共 873 字,大约阅读时间需要 2 分钟。
在5.5及以后版本的MySQL里面,增加了个参数--dump-slave,使用该参数,我们可以在slave节点导出数据用于建立新的slave,避免对主库的压力。
方法如下:
在slave上执行;
1、查看当前同步的状态
1 | # show slave status\G 主要关注下面的部分: |
Master_Log_File: mysql-bin.000095
Read_Master_Log_Pos: 50607116
Relay_Master_Log_File: mysql-bin.000095
Exec_Master_Log_Pos: 50607116
2、然后在slave上导出数据,如下:
1 | # mysqldump -uroot -proot --single-transaction --dump-slave=2 -A > all.sql |
3、查看导出的文件
1 | # head -30 all.sql 可以看到类似如下的字段: |
1 | -- CHANGE MASTER TO MASTER_LOG_FILE= 'mysql-bin.000095' , MASTER_LOG_POS=50607116; |
这样的话,我们拿着这个导出数据,恢复到某一台新的slave上,执行:
1 2 3 4 5 6 7 8 | > CHANGE MASTER TO MASTER_HOST= 'master_ip' , MASTER_USER= 'repluser' , MASTER_PASSWORD= '123456' , MASTER_PORT=3306, MASTER_LOG_FILE= 'mysql-bin.000095' , MASTER_LOG_POS=50607116, MASTER_CONNECT_RETRY=10; |
1 | > start slave; 即可在新的slave上启动复制了。 |