📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
文章目录
- 前言
- 1.主从复制
- 2.读写分离及负载均衡
- 3.MHA架构
- 4.多源复制
- 5.MGR架构
- 6.双主+Keepalived
- 7.PXC架构
- 8. Orchestrator+VIP架构
前言
本文对MySQL的高可用架构做了详细的阐述,均来自真实的企业生产环境1.主从复制
MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的 二进制日志 功能。就是一台或多台MySQL数据库(slave,即从库)从另一台MySQL数据库(master,即主库)进行日志的复制,然后再解析日志并应用到自身,最终实现 从库的数据和主库的数据保持一致。MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具。
MySQL 主从复制的优点主要包括以下3个方面:
(1)如果主库出现问题,可以快速切换到从库提供服务;
(2)可以在从库上执行查询操作,降低主库的访问压力;
(3)可以在从库上执行备份,以避免备份期间影响主库的服务
2.读写分离及负载均衡
MySQL Router 的主要用途是读写分离,主主故障自动切换,负载均衡,连接池等。
MySQL 强烈建议使用 Router 8 与 MySQL Server8和5.7一起使用,MySQL Router 是 MySQL 官方提供的一个轻量级中间件,可以在应用程序与 MySQL 服务器之间提供透明的路由方式。主要用以解决 MySQL 主从库集群的高可用、负载均衡、易扩展等问题
1.实现了主从读写分离
2.读从库一定程度上起到了负载均衡的作用
3.可以当作连接池
4.主主架构中,主数据库发生故障后,主从 MySQL 服务器自动发生切换
5.多从服务器负载读时,其中一台从服务器 DOWN 机,不影响业务访问
3.MHA架构
MHA(Master High Availability Manager and tools for MySQL)目前在MySQL高可用方面是一个相对成熟的解决方案,它是由youshimaton采用Perl语言编写的一个脚本管理工具。目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群必须最少有3台数据库服务器,一主二从,即一台充当Master,一台充当备用Master,另一台充当从库。
MHA由两部分组成:MHA Manager(管理节点)和MHA Node(数据库节点),
MHA Manager 可以单独部署在一台独立的机器上管理多个 master-slave 集群,
也可以部署在一台 slave 节点上。MHA Node 运行在每台 MySQL 服务器上,
MHA Manager 会定时探测集群中的 master 节点,
当 master 出现故障时,它可以自动将最新数据的 slave 提升为新的 master,
然后将所有其他的 slave 重新指向新的 master。
整个故障转移过程对应用程序完全透明
4.多源复制
所谓多源复制(Multi-source Replication),就是多台主库的数据同步到一台从库服务器上,从库创建通往每个主库的管道,从Mysql5.7版本开始支持多主一从的复制方式
多源复制的应用场景
1.各个主数据库的数据汇总到统一的数据库中
2.在从数据库对各个主数据库的数据进行集中备份
在部署多主一从之前,我们先了解下多源复制的好处:
(1)可以集中备份,在从库上备份,不会影响线上的数据正常运行;
(2)节约购买从库服务器的成本,只需要一个从库服务器即可;
(3)数据汇总在一起,方便后期做数据统计,可用于数仓;
(4)减轻DBA维护工作量,整合数据资源;
5.MGR架构
MySQL Group Replication(简称MGR)是一款高可用与高扩展的解决方案,
它提供了高可用、高扩展、高可靠的MySQL集群服务。既可以很好的保证数据一致性又可以自动切换,具备故障检查功能、支持多节点写入,以插件形式提供,实现了分布式下数据的最终一致性
(1)强一致性
基于原生复制及paxos协议的组复制技术,
并以插件方式提供,提供一致性数据安全。
(2)高容错性
只要不是大多数节点环境坏掉就可以继续工作,
有自动检查机制,当不同节点产生资源争用冲突时,
不会出现错误,按照先到者优先原则进行处理,并内置自动化脑裂防护机制。
(3)高扩展性
节点的新增和移除都是自动的,新节点加入后,
会自动从其他节点上同步状态,直到新节点和其他节点保持一致,
如果某节点被移除了,其他节点自动更新组信息,自动维护新的组信息。
(4)高灵活性
有单主模式和多主模式,单主模式下会自动选主,
所有的更新操作都是在主上进行;多主模式下,所有server都可以同时处理更新操作。
6.双主+Keepalived
一般中小型公司都使用这种架构,搭建比较方便简单;可以采用主从或者主主模式,在 master 节点发生故障后,利用keepalived 高可用机制实现快速切换到 slave 节点。原来的从库变成新的主库
keepalived主要有三个模块,分别是core、check和vrrp。
core模块为keepalived的核心,
负责主进程的启动、维护以及全局配置文件的加载和解析。
check负责健康检查,包括常见的各种检查方式。
vrrp模块是来实现VRRP协议的
7.PXC架构
PXC 是一套 MySQL 高可用集群解决方案,与传统的基于主从复制模式的集群架构相比 PXC 最突出特点就是解决了诟病已久的数据复制延迟问题,基本上可以达到实时同步
①实现 mysql 数据库集群架构的高可用性和数据的强一致性。
②完成了真正的多节点读写的集群方案。
③改善了传统意义上的主从复制延迟问题,基本上达到了实时同步。
④新加入的节点可以自动部署,无须提供手动备份,维护起来很方便。
⑤由于是多节点写入,所以数据库故障切换很容易。
8. Orchestrator+VIP架构
Orchestrator是最近非常流行的MySQL复制管理工具,相比较于MHA等常用管理工具,其支持高可用部署,并对故障进行一个完整的探测分析后才会做相应的故障转移,探测更精准、全面
下图中:Sqlite/MySQL,是Orchestrator的后端存储数据库
(存储监控的mysql复制实例的相关状态信息),可以选择MySQL,也可以选择SQLite。
/etc/orchestrator.conf.json是配置文件,Orchestrator启动时读取。
下面部分是监控的MySQL的实例,以下是搭建的一主两从。
当然,实际上Orchestrator可以监控成百上千个MySQL复制集群