vlambda博客
学习文章列表

MySQL-(MHA+KA双主热备)-架构1

工作&&学习的热情不应季节的变化而改变




1. MasterHighAvaliability 简介


        相对成熟的高可用解决方案,可以在mysql故障切换过程中,做到0-20s之内自动完成数据库的故障切换,并且最大程度上保证数据的C。


2. MHA 组成


        Manager(管理节点),可以单独部署在一台mysql服务器管理多个m/s集群,也可以在一台s节点上。功能:手动/自动切换m/s及故障转移和m/s的状态监测

        Node(数据节点),运行在每台mysql服务器上,manager会定时探测集群中m节点,当m出现故障时,可以自动将最新数据的s提升为新的m,然后将所有其他的s重新指向到新的m。功能:复制m节点的binlog,对比s节点的relay(中继)log文件,无需停止s节点的sql线程,定时删除relay(中继)log。


3. MHA 工具(编写脚本)

# 常用命令举例# Manager工具masterha_check_ssh  //检查mha的ssh配置masterha_check_repl  //检查mysql复制masterha_manager  //启动mhamasterha_check_status  //检测当前mha的运行状态masterha_master_monitor //监测master是否宕机masterha_master_switch  //控制故障转移(自动或手动)masterha_conf_host  //添加或删除配置的server信息
# Node工具save_binary_logs //保存和复制master的二进制logapply_diff_relay_logs //识别差异的relaylog event 并应用于其它slavepurge_relay_logs //清除relaylog,不会阻塞sql线程
#扩展工具shutdown_script //强制关闭masternodereport_script //发送报告init_conf_load_script //加载初始配置参数master_ip_online_change //更新masternode ip addresssecondary_check_script //通过多条网络路由检测master的可用性


4. Keepalived 热备

    

        例如双机热备,两台部署服务器都在运行状态,但并不是两台服务器同时提供服务,当提供服务的一台服务器出现故障时,另外一台会自动接管并提供服务。主要是通过虚拟vip(主master节点会不断地向backup节点发送[多播]心跳消息,用以告诉backup自己还活着,反之,backupnode无法检测来自masternode的心跳,然后调用自身的接管代码,接管masternode ip资源和服务.当masternode恢复时,backupnode又会释放masternode故障时自身接管的ip资源和服务,恢复到原来的backupnode角色) ,实现对外的统一接口以及自动检测、失败切换的。


5. Keepalived 原理


        通过vrrp(VirtualRouterRedundancyProtocol虚拟路由器冗余协议),主要为了解决静态路由单点故障,它可以保证单个别节点宕机时,整个网络可以不间断运行。vrrp通过竞选(抢占模式为主服务正常工作时,虚拟vip会在主上,备不提供服务,当主服务优先级低于备时,备会自动抢占虚拟vip,这时,主不提供服务,备提供。抢占模式主要看priority优先级参数。非抢占模式,主要通过参数nopreempt[只能用于state为backup的情况,所以在配置的时候要把master和backup的state都设置成backup,才能实现非抢占模式]来控制,不管优先级,只要master服务器发生故障,虚拟vip就会切换到备上边来。并且当master服务器恢复后,也不会将虚拟vip抢占回来,直到备服务器发生故障时,才会自动切回来。)来确定主备,主要分为core(ka核心,负责主进程启动、维护以及全局配置文件加载和解析),check(负责健康检查),vrrp(实现vrrp协议)。


6.  mha+ka 架构搭建[基础]


# 系统版本 Ubuntu 18.04.1 LTS # 数据库版本 MySQL 5.7.22 # MHA版本 MHA 0.58# 数据库架构 GTID+无损同步复制技术,双主热备多从
#环境准备ip role host type192.168.18.50      Monitor         mha00         监控复制组192.168.18.51      MonitorBackup   mha01         监控复制组备# 数据库组A192.168.18.52      Master          mha02         主-写操作192.168.18.53      MasterBackup-slave    mha03   备-读操作-备用master192.168.18.54      Slave1          mha04         备-读操作192.168.18.56      Slave2          mha05         备-读操作# 数据库组B192.168.18.57      Master          mha06         主-写操作192.168.18.58      MasterBackup-slave    mha07   备-读操作-备用master192.168.18.59      Slave1          mha08         备-读操作192.168.18.60      Slave2          mha09         备-读操作


具体搭建待续ing...

        









【完】


                                              

欲知更多精彩,请扫码关注,下期再见!