- 参考:
- 克隆一个slave
- 落在本地再传输
- 直接以"流"的方式传到远程
克隆一个slave
落在本地再传输
-
在一个slave上面,做一个全备
sudo innobackupex --defaults-file=/usr/local/mysql/multi/3306/etc/my.cnf --user=username --password=password \ --host=127.0.0.1 --port=3306 --use-memory=2G --slave-info /usr/local/backupdb/
-
根据logfile恢复数据
sudo innobackupex --apply-log --use-memory=2G /usr/local/backupdb/tmp/2013-12-10_17-09-43/ # 重命名 mv /usr/local/backupdb/tmp/2013-12-10_17-09-43/ data
-
转移到新的slave机上面
通过rsync或者scp命令,传完之后,修改目录的属主属组chown mysql:mysql data
-
在master上面增加一个新slave的授权
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'$newslaveip' IDENTIFIED BY '$slavepass';
-
在新slave上面启动mysql,配置主从关系
注意: backup-my.cnf文件中的配置参数,要跟master一致.CHANGE MASTER TO MASTER_HOST='$masterip', MASTER_USER='repl', MASTER_PASSWORD='$slavepass', MASTER_LOG_FILE='TheMaster-bin.000001', MASTER_LOG_POS=481; START SLAVE; SHOW SLAVE STATUS\G
直接以"流"的方式传到远程
-
在新slave上面用nc起一个接收数据的端口
nc -l 9999 | cat - > ./backup_20131210.tar
-
限速10Mbytes/s
注意: 一定要限速,否则千兆的网卡也会打满sudo innobackupex --defaults-file=/etc/my.cnf --user=username --password=password --host=127.0.0.1 --port=3306 \ --use-memory=2G --slave-info --stream=tar ./ | pv -q -L10m |nc $newslaveip 9999
-
在新的slave上面解压
mkdir data_tmp tar ixvf backup_20131210.tar -C data_tmp
-
根据logfile恢复数据
sudo innobackupex --apply-log --use-memory=2G data_tmp/
-
修改属主属组关系
chown mysql:mysql data
- 在master上面加授权,在新slave启动mysql,建立复制