目录
模拟故障
一、搭建实验环境(一主两从)
搭建一主两从的集群分布。删除原来的数据,修改配置文件。初始化数据库,重新启动mysql。
进入数据库,修改密码创建并授权用来做复制的用户
在6、7上进行相同的操作
在6、7上,登录数据库,修改master信息
查看slave状态
二、配置mha
机器名称 | IP配置 | 服务角色 |
Manager | 172.25.254.8/172.25.254.4 | manager控制器 |
master | 172.25.254.5/172.25.254.1 | 数据库主控制器 |
slave1 | 172.25.254.6/172.25.254.2 | 数据库从控制器 |
slave2 | 172.25.254.7/172.25.254.3 | 数据库从控制器 |
安装相关软件包(server8)
进行免密认证
然后将使用的.rpm文件拷贝到5、6、7上
分别在5、6、7上yum进行安装
节点server8上创建一个目录/etc/mha,编辑配置文件
管理节点ssh检查管理节点ssh检查,报错,是因为server5、server6、server7之间相互不免密。
设置节点之间的免密
测试:
再检测ssh,成功。
检测复制功能;此时发现报错,这是因为没有给节点授权
在server5上给予用户所有权限
再次检查复制功能:masterha_check_repl --conf=/etc/masterha/app1.cnf 成功
server5对应server1,server6对应server2,server7对应server3,server8对应server4。
三、手动切换master
无故障手动切换:
masterha_master_switch --conf=/etc/mha/app1.conf --master_state=alive --new_master_host=172.25.0.2 --new_master_port=3306 --orig_master_is_new_slave --running_updates_limit=10000
由于此处切换,所以要求之前的三个机子的配置是一样的
此时查看server2的状态已经切换为master
查看server1状态切换为slave,并且指向server2
有故障手动切换
此时当server2挂掉
查看server3,连接出现问题
手动切换指令
又从2切换到1
锁定文件,也就是上面忽略的那个,也可以切换之前删除。
查看3的状态,master已经切换到1
server1已经不再是slave,变成了master
server2 的状态不会自己切换,因此打开后,需要指令切换为slave,配置主从。
此时查看server2的状态,已经成功指向master1
四、自动切换master
开启自动切换程序,并打入后台
masterha_manager --conf=/etc/mha/app1.conf &
ps ax 查看进程
查看日志,已经设置成功
改文件显示ok说明设置成功
模拟故障
挂掉server1也就是之前的master
此时查看server4显示后台的自动切换进程已经done,说明切换完成。
查看日志文件,master由1切换到2成功
此时查看server3的slave状态,指向新的server2为master
重新配置1的主从,便master指向2.
之后删除锁定文件,不然接下来的切换会有问题
五、VIP漂移
当master切换的时候用户访问不知道master切换到哪一台主机,我们设置vip,用户访问VIP就好。
编辑配置文件
拿到两个配置文件,给执行权限。
vim master_ip_failover 自动切换调的脚本
vim master_ip_online_change 手动切换调的脚本
配置完成进行检测,此时server2位master,server1和server3为slave。
手动切换
在master上添加vip
集群外的机器(宿主机)访问vip,可以看到数据
进行手动切换
集群外客户端访问报错后进行了重新连接
此时查看vip的位置,已经由2漂移到1上了
server3的状态,也已重新指向新的master-server1
server2的状态,也变为slave,重新指向新的master-server1
自动切换
先开启进程打入后台
模拟故障
上一步切换后,server1成为了master,挂掉master
server4已经识别到
查看日志,已经自动切换
查看server3,切换到2上
此时查看vip的位置,已经由1漂移到2上了
客户端访问,报错后进行了重新连接