mysql双主怎么切换 mysql两主一从( 二 )


Keepalived看名字就知道 , 保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,用来防止单点故障(单点故障是指一旦某一点出现故障就会导
整个系统架构的不可用)的发生,那说到keepalived不得不说的一个协议不是VRRP协议 , 可以说这个协议就是keepalived实现的基础 。
1)Keepalived的工作原理是VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议 。在VRRP中有两组重要的概念:VRRP路由器和虚拟路由器,主控路由器和备份路由器 。
2)VRRP路由器是指运行VRRP的路由器,是物理实体,虚拟路由器是指VRRP协议创建的,是逻辑概念 。一组VRRP路由器协同工作,共同构成一台虚拟路由器 。
Vrrp中存在着一种选举机制,用以选出提供服务的路由即主控路由,其mysql双主怎么切换他的则成了备份路由 。当主控路由失效后,备份路由中会重新选举出一个主控路由,来继
续工作,来保障不间断服务 。
基于MySQL双主的高可用解决方案理论及实践【mysql双主怎么切换 mysql两主一从】 MySQL在互联网应用中已经遍地开花 , 但是在银行系统中 , 还在生根发芽的阶段 。本文记录的是根据某生产系统实际需求,对数据库高可用方案从需求、各高可用技术特点对比、实施、测试等过程进行整理,完善Mysql高可用方案,同时为后续开展分布式数据库相关测试做相应准备 。
存储复制技术: 传统IOE架构下,常用高可用方案,靠存储底层复制技术实现数据的一致性 , 优点数据安全性有保障,限制在于是依赖存储硬件,实施成本较高 。
keepalived+双主复制: 两台MySQL互为主从关系 , 即双主模式,通过Keepalived配置虚拟IP,实现当其中的一台数据库故障时,自动切换VIP到另外一台MySQL数据库,备机快速接管业务来保证数据库的高可用 。
MHA:MHA部署在每台mysql服务器上 , 定时探测集群中的master节点,当master出现故障时,它可以自动将最新的slave提升为新的master,然后将所有其他的slave重新指向新的master,优点在最大程度保证数据的一致性的前提下实现快速切换,最少需要3台服务器 , 存在数据丢失的可能性 。
PXC:Percona eXtra Cluster是Percona基于galera cluster封装的集群方案 。不同于普通多主复制,PXC保障强一致性和实时同步,故障切换更快 。但是也需要3个节点 , 配置相对复杂 , 对性能也稍有影响 。
除了上述方案外,还有MMM、Heartbeat+DRBD等高可用方案 , 此处不做详细介绍 。
综合评估下,本次实施采用了 keepalived+mysql双主实现数据库同城双机房的高可用 。MySQL版本为: 5.7.21 。操作系统:Red Hat Enterprise Linux Server 7.3 。
配置过程如下:
Mysql-master1: IP地址1 --以下简称master1
Mysql-master2: IP地址2 --以下简称master2
Mysql-vip : VIP地址 --应用连接使用
Mysql复制相关概念描述:
1、 Mysql主从复制图示:
2、 Mysql主从复制过程描述:
(1)master记录二进制日志:在每个事务更新数据完成之前,master在二进制日志记录这些改变 。MySQL将事务写入二进制日志 。在事务写入二进制日志完成后,master通知存储引擎提交事务 。
(2)slave将master的binarylog拷贝到自己的中继日志:首先,slave开始一个工作线程——I/O线程 。I/O线程在master上打开一个普通的连接 , 然后开始binlog dump process 。Binlog dump process从master的二进制日志中读取事务,如果已经同步了master,它会睡眠并等待master产生新的事件 。I/O线程将这些事务写入中继日志 。

推荐阅读