在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上启动复制了。
|
本文转自 lirulei90 51CTO博客,原文链接:http://blog.51cto.com/lee90/1794636,如需转载请自行联系原作者