克隆slave

在日常生活中,我们做的比较多的操作就是在线添加从库,比如线上有一主一丛两个数据库,由于业务的需要一台从库的读取量无法满足现在的需求,这样就需要我们在线添加从库,出于安全考虑,我们通常需要在从库上进行在线克隆slave

克隆slave时候,常用参数--slave-info和--safe-slave-backup

--slave-info会将master的binary log的文件名和偏移位置保存到xtrabackup_slave_info文件中

--safe-slave-backup 则会暂停salve的sql线程,直到没有打开的临时表的时候开始备份,待备份结束后sql线程会自动启动,这样操作的目的主要是确保一致性的复制状态。

例子:

master:192.168.1.1

slave:192.168.1.2

newslave:192.168.1.3

在slave上进行备份

innobackupex --user=backup --password='123456' --socket=/tmp/mysql.sock --defaults-file=/tmp/my.cnf --slave-info --safe-slave-backup /data/backup/hotbackup/cloneslave  --no-timestamp --parallel=2

备份完查看xtrabackup_slave_info文件的内容,这个内容即为搭建从库时候的change master to参数

在主机名为slave的主机上进行还原

 innobackupex --apply-log --redo-only --use-memory=2g  /data/backup/hotbackup/cloneslave

将还原的文件复制到新的从库上

rsync -avprP -e ssh /data/backup/hotbackup/cloneslave newslave:/root/data

在主机名master的主库上添加对主机newslave的授权:

mysql>grant replication slave on *.* to 'repl'@'slave2' identified by '123456';

在主机newslave上拷贝slave主机的my.cnf并且修改server-id参数,修改完毕后,启动新的从库的newslave

scp slave:/etc/my.cnf   /etc/

skip-slave-start

server-id=3

log-slave-updates=1

查看slave备份完的xtrabackup_slave_info文件的内容,这个内容即为搭建从库时候的change master to参数,在newslave上执行change master to master_host='',master_user='',master_password='',master_log_file='',master_log_pos=123;

启动从库并检查状态是否正常

start slave

 

posted on 2014-08-20 12:06  zitong  阅读(526)  评论(0编辑  收藏  举报