异步复制
原本速度一般
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=16
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON
更改主配置文件
因为此文件越来愈大,所以上面设置时用表table的形式
表示配置完成
多线程时,速度提升很快
缩减主从延迟
多关注这个,主从延迟
但是可能会忽略IO延迟
MHA高可用
设置master和slave1 slave2
三台机子主配置文件设置一样
查看slave状态,关闭之前的延迟
设置MHA
重新开启一个server6 当做MHA
node是用于日志恢复的客户端工具包
传给server2(master) server4(slave1) server5(slave2)
各自安装
复制了模板,并且两个文件合并
此文件主要记录公共配置
检查配置
彼此需要免密
再检测就通过了
masterha_check_ssh --conf=/etc/mha/app1.cnf
masterha_check_repl --conf=/etc/mha/app1.cnf
检查用户
发现需要远程登录
master上给所有权限,就可以同步到所有机子
master刷新
再检测
让其他主机可以用repl用户登录即将成为master的slave
直到检测没有问题
MHA的故障切换过程
步骤:
手动切换
在MHA上切换主从
将server4替代server2当master
masterha_master_switch --conf=/etc/mha/app1.cnf --master_state=alive --new_master_host=172.25.0.13 --new_master_port=3306 --orig_master_is_new_slave
server4:
server2会变成新的slave,因为它还活着。
master(server4 down)
2和5都会显示有问题
现在master为server4,但是server4down。所以master_state=dead
切换回server2
masterha_master_switch --master_state=dead --conf=/etc/mha/app1.cnf --dead_master_host=172.25.0.13 --dead_master_port=3306 --new_master_host=172.25.0.12 --new_master_port=3306
server4也改回slave
自动切换
先检测一下
将masterha_manager打入后台
使其持续健康检测
默认server4会接管
自动回完成主从切换 并且退出,防止频繁切换
完成主从切换,在数据目录,自动会创建锁定文件
此时发现,并没自动切换master
可能是因为之前手动切换试验时,生成了锁定文件
查看日志因为之前手动切换试验时,生成了锁定文件
删除此文件,重新做一遍实验
server4重启一下,一般2start mysqld。4和5会自动连接
此时server4自动成为master
2上,手动打开mysql,执行change 当做slave
MHA高可用+VIP
编写脚本
masterha_manager --conf=/etc/mha/app1.cnf &
自动切换
master (server4)一关闭,没有VIP
自动成为master,并且生成VIP
自动切换完就退出
查看日志, 切换成功
找一个不是集群里的主机,测试访问VIP
server4打开,手动change
指定master
手动切换
执行过程中可以看到变化
VIP会自动切换
具体可以查看此网址
https://dev.mysql.com/doc/refman/5.7/en/replication-semisync.html