MMM与MHA以及MGR,高可用架构都有以下的共同点:数据库
须要两个Master,同一时间只有一个Master对外提供服务,能够说是主备模式。bash
须要基础资源:服务器
资源 | 数量 | 说明 |
---|---|---|
主DB | 2 | 用于主备模式的主主复制 |
从DB | 0~N台 | 能够根据须要配置N台从服务器 |
IP地址 | 2n+1 | N为MySQL服务器的数量 |
监控用户 | 1 | 用户监控数据库状态的MySQL用户(replication) |
代理用户 | 1 | 用于MMM代理端改变read_only状态 |
故障转移步骤:架构
优势:异步
缺点:工具
适用场景:spa
须要资源:插件
资源 | 数量 | 说明 |
---|---|---|
主DB | 2 | 用于主备模式的主主复制 |
从DB | 2~N台 | 能够根据须要配置N台从服务器 |
IP地址 | n+2 | N为MySQL服务器的数量 |
监控用户 | 1 | 用户监控数据库状态的MySQL用户(replication) |
复制用户 | 1 | 用于配置MySQL复制的用户 |
MHA采用的是从slave中选出Master,故障转移:3d
优势:代理
缺点:
MHA须要自行开发VIP转移脚本。
MHA只监控Master的状态,未监控Slave的状态
MGR是基于现有的MySQL架构实现的复制插件,能够实现多个主对数据进行修改,使用paxos协议复制,不一样于异步复制的多Master复制集群。
支持多主模式,但官方推荐单主模式:
// 查看MGR的组员
select * from performance_schema.replication_group_members;
// 查看MGR的状态
select * from performance_schema.replication_group_member_stats;
// 查看MGR的一些变量
show variables like 'group%';
// 查看服务器是否只读
show variables like 'read_only%';
复制代码
优势:
缺点:
适用的业务场景:
读负载大:
增长slave
加中间层(MyCat,ProxySQL,Maxscale)
读写分离
关于写负载大:
参考慕课网课程,s.imooc.com/S8KFBvs