互联网网站有哪些,山东省建筑工程信息网,重庆网页设计,关键词优化怎么做文章目录 1.分析主库故障后哪一个从库会切换为主库2.模拟主库故障观察剩余从库的状态2.1.模拟主库故障2.3.当前主从架构 3.修复故障的主库3.1.修复主库3.2.当前主从架构3.3.恢复MHA 1.分析主库故障后哪一个从库会切换为主库
在模拟MHA高可用集群主库故障之前#xff0c;我们先… 文章目录 1.分析主库故障后哪一个从库会切换为主库2.模拟主库故障观察剩余从库的状态2.1.模拟主库故障2.3.当前主从架构 3.修复故障的主库3.1.修复主库3.2.当前主从架构3.3.恢复MHA 1.分析主库故障后哪一个从库会切换为主库
在模拟MHA高可用集群主库故障之前我们先来分析一下主库故障后谁会切换为新主库。
Manager组件选举新主库的过程
Manager组件选举新主库有三种算法
当主库故障后如果配置文件中有声明哪个节点强制为主库该节点会强制提升为新的主库。当主库故障后判断剩余从库谁的数据最新根据Position或者GTID来判断谁复制主库的数据最多最多的节点提升为新主库。当主库故障后如果剩余从库的Position或者GTID都一一致也就意味着剩余从库复制的数据都一样多那么此时就会根据配置文件中的书写顺序从上到下最上面的那个节点会成为新主库。
我们并没有在MHA中配置强制主库的参数因此第一个算法不会生效根据所有从库的信息来看和主库的数据是一模一样的不存在数据差异因此第二个算法也不会生效而在MHA的配置文件中是根据主从从节点的顺序来书写的mysql-1、mysql-2、mysql-3根据第三个算法那么当主库故障后mysql-2这个节点的从库会提升为主库。 在模拟故障之前一定要保证MHA是运行的否则不会切换主从。
2.模拟主库故障观察剩余从库的状态
2.1.模拟主库故障
1模拟主库故障
[rootmysql-1 ~]# systemctl stop mysqld2观察mysql-2中的从库是否会成为新主库
mysql-2中的从库已经成为新的主库了当查看slave的状态时没有任何输出就表示它是主库。
[rootmysql-2 ~]# mysql -uroot -p123456
mysql show slave status \G;
Empty set (0.00 sec)ERROR:
No query specified3观察mysql-3从库的状态信息
此时mysql-3上的从库已经开始复制mysql-2这个新主库了MHA故障切换成功保障了高可用 故障切换完成后MHA会自动自杀一次性高可用故障切换。 故障切换的过程可以在MHA的日志中看到。 2.3.当前主从架构
主库已经故障mysql-2成为了新主库mysql-3复制mysql-2的数据。 3.修复故障的主库
3.1.修复主库
当我们得知主库故障并且顺利进行故障切换使从库成为主库重新设置了主从关系保证业务的高可用之后我们就需要去修复主库了MHA已经将mysql-2这个从库提升为新的主库了我们也不需要去改变现有的主从关系直接让恢复的主库复制现有的主库即可避免破坏现有主从关系导致业务中断。 MHA切换主库就好比某个皇帝大明战神 明堡宗御驾亲征最后被俘虏了主库故障他的弟弟临危受命当了皇帝mysql-2成为了新主结果哥哥重新回来后主库修复居然夺门废了弟弟的皇位想重新成为主实在不地道了。 1修复主库
[rootmysql-1 ~]# systemctl start mysqld2配置故障的主库复制新主库mysql-2
关于复制参数我们可以从mha的日志中获取。
[rootmysql-3 ~]# grep CHANGE MASTER TO /data/mha/logs/manager.log
Sat Jul 9 16:15:20 2022 - [info] All other slaves should start replication from here. Statement should be: CHANGE MASTER TO MASTER_HOST192.168.20.12, MASTER_PORT3306, MASTER_AUTO_POSITION1, MASTER_USERreplicas, MASTER_PASSWORDxxx;配置故障主库复制新主库。
mysql CHANGE MASTER TOMASTER_HOST192.168.20.12,MASTER_USERreplicas,MASTER_PASSWORD123456,MASTER_PORT3306,MASTER_AUTO_POSITION1;
mysql start slave;故障的主库已经成功的修复完成并且已经成为mysql-2新主库的从库。 3.2.当前主从架构
mysql-2是主库mysql-1是故障主库恢复后成为了mysql-2的从库。 3.3.恢复MHA
MHA在完成一次故障切换后会自动杀死自己因此我们需要去恢复MHA首先将故障的主库重新添加到配置文件中因为MHA切换时会将故障的节点从配置文件中删除然后再启动MHA即可。
1将故障的主库重新加入到配置文件中
[rootmysql-3 ~]# vim /data/mha/app1.cnf
[server1]
hostname192.168.20.11
port33062启动MHA
[rootmysql-3 ~]# nohup masterha_manager --conf/data/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover /dev/null /data/mha/logs/manager.log 21 3查看状态
[rootmysql-3 ~]# masterha_check_status --conf/data/mha/app1.cnf
app1 (pid:11050) is running(0:PING_OK), master:192.168.20.12