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 //启动mha
masterha_check_status //检测当前mha的运行状态
masterha_master_monitor //监测master是否宕机
masterha_master_switch //控制故障转移(自动或手动)
masterha_conf_host //添加或删除配置的server信息
# Node工具
save_binary_logs //保存和复制master的二进制log
apply_diff_relay_logs //识别差异的relaylog event 并应用于其它slave
purge_relay_logs //清除relaylog,不会阻塞sql线程
#扩展工具
shutdown_script //强制关闭masternode
report_script //发送报告
init_conf_load_script //加载初始配置参数
master_ip_online_change //更新masternode ip address
secondary_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 type
192.168.18.50 Monitor mha00 监控复制组
192.168.18.51 MonitorBackup mha01 监控复制组备
# 数据库组A
192.168.18.52 Master mha02 主-写操作
192.168.18.53 MasterBackup-slave mha03 备-读操作-备用master
192.168.18.54 Slave1 mha04 备-读操作
192.168.18.56 Slave2 mha05 备-读操作
# 数据库组B
192.168.18.57 Master mha06 主-写操作
192.168.18.58 MasterBackup-slave mha07 备-读操作-备用master
192.168.18.59 Slave1 mha08 备-读操作
192.168.18.60 Slave2 mha09 备-读操作
具体搭建待续ing...
【完】
欲知更多精彩,请扫码关注,下期再见!