数据库之MHA
什么是MHA?
masterhight availabulity:基于主库的高可用环境下:主从复制 故障切换
主从的架构
MHA:最少要一主两从
mysql的单点故障问题,一旦主库崩溃,MHA可以在0-30秒内自动完成故障切换
MHA使用的是半同步复制,只要有一台从服务器写入数据,就会自动提交给客户端
如果master崩溃,slave就会从主的二进制日志保存文件
slave识别最新更新的日志
差异部分同步到slave
提升一个新的slave作为master
其他的slave继续和新的master同步
实验准备:
1、MHA架构搭建
2、模拟故障
3、故障恢复
MHA manager 192.168.233.30
master 192.168.233.110
slave1 192.168.233.120
slave2 192.168.233.130
node组件-------->需要部署在所有服务器上。manager组件依赖node组件,node组件监控mysql的状态
node组件靠ssh来进行通信
主从复制
set global read_only=1;
设置数据库为只读模式
所有的服务器都要按照MHA的依赖环境必须要按照epel源
先安装node组件,在安装MHA
masterha_check_ssh:检查MHA的SSH的配置状况
masterha_check_repl:检查mysql的复制情况
masterha_manager:启动manager的脚本
masterha_check_status:检测MHA的运行状态
masterha_master-monitor:检测master主机的情况,masters是否宕机
masterha_master_switch: 控制故障转移
masterha_conf_host: 添加或者删除配置的server信息。
masterha_stop:停止MHA脚本
node组件
save_binary_logs:保存和复制mater的二进制日志
apply_didd_relay_logs:识别二进制日志当中的差异事件,然后发送给其他的slave
filter_mysqlbinlog:去除不必要的回滚(mha已经不用了)
purge_relay_logs:同步之后清楚中继日志(不会阻塞sql的线程)
node依赖ssh通信,每台主机实现ssh的免密登录
master_ip_failover:自动切换时管理vip的脚本
master_ip_online_change:在切换时,vip的管理脚本