利用Xtrabackupex在线添加Slave-MHA
1、首先在master中导出一份全量的数据
innobackupex --no-timestamp --defaults-file=/data/mysql/mysql3306/my.cnf --socket=/tmp/3306.sock /data/mysql/backup/20151114
2、将数据在slave中导入进去,并创建主从复制结构
将MySQL的data和logs目录的文件全部删除。
执行
innobackupex --defaults-file=/data/mysql/mysql3306/my.cnf --socket=/tmp/3306.sock --copy-back /data/mysql/backup/20151114
接着将这些data和logs的文件授权给mysql用户,重启MySQL。
然后根据备份文件中的xrabackup_binlog_info中的log file和log pos来创建主从复制。
change master to master_host='192.168.1.101',master_port=3306,master_user='repl',master_password='repl4slave',master_log_file='mysql-bin.000005',master_log_pos=120;
3、建立新增slave和其他节点的信任机制
参考http://blog.csdn.net/zuixinyan/article/details/49029359
4、修改mha的配置文件,并将配置文件拷贝到各个节点中
drop_vip.sh masterha_default.conf master_ip_online_change
[root@node1 masterha]# cat app1.conf
[server default]
#MHA Manager工作目录
manager_workdir=/var/log/masterha/app1
manager_log=/var/log/masterha/app1/app1.log
remote_workdir=/var/log/masterha/app1
[server1]
hostname=node1
master_binlog_dir=/data/mysql/mysql3306/logs
candidate_master=1
check_repl_delay=0 #用防止master故障时,切换时slave有延迟,卡在那里切不过来。
[server2]
hostname=node2
master_binlog_dir=/data/mysql/mysql3306/logs
candidate_master=1
check_repl_delay=0
*[server3]
hostname=node3
master_binlog_dir=/data/mysql/mysql3306/logs
candidate_master=1
check_repl_delay=0*
这里server3为新增节点
然后将配置文件拷贝到新增节点/etc/目录下,并将其中master_ip_failover和master_ip_online_change的权限改为755.
5、重新启动mha_manager新增MHA环境搭建完成