MySQL高可用最佳实践
2020-02-27 151浏览
- 1.MySQL数据库高可用实践 赵天元
- 2.目录 n MySQL高可用的挑战 n MySQL高可用方案的分类 n 业界通用的MySQL高可用方案 n 企业级高可用方案
- 3.数据库不可用的原因 n 7 * 24 * 365 • 硬件故障 • 预期中的维护 • 软件缺陷
- 4.造成数据库不可用的原因 • 人为失误
- 5.MySQL 高可用的挑战
- 6.MySQL 高可用的难点
- 7.MySQL高可用方案分类
- 8.n 多写模型 数据库的写模型
- 9.多写方案 n Percona Xtradb Cluster n MySQL Group Replication
- 10.数据库多写-PXC n Percona XtraDB Cluster • 目前Percona公司负责开发和维护 • Codership Galera • 多节点的集群方案 • 完全兼容MySQL协议
- 11.Percona Xtradb Cluster n 建议三个集群以上的节点 n 必须使用Percona版本 n 每个节点都可以读写 n 不支持XA事务 n InnoDB/XtraDB
- 12.数据库多写-MGR n MySQL Group Replication • MySQL官方负责开发和维护(MySQL5.7.17) • 多节点的集群方案 • 基于Xcom(paxos)的复制协议 • 完全兼容MySQL协议 • 能够保证节点之间数据一致性
- 13.MySQL Group Replication n 只支持InnoDB表 n 必须打开GTID n Binlog格式必须为ROW n MGR集群最大为9个节点 n 每个节点都可以读写
- 14.多写的高可用实现 n借助第三方工具实现
- 15.多写的高可用实现 n驱动/业务层实现
- 16.多写模式的特点 n业务架构简单,易理解 n依赖数据库支持多写模型 n热点数据写入场景下存在数据争用问题 n 多写模式非常考究业务场景 n理想中的多写,目前尚不成熟
- 17.数据库的写模型 n 单写模型
- 18.单写方案 n Keepalived+ MySQL主备 n MHA(MySQL High Available)
- 19.业界通用的高可用方案
- 20.经典高可用架构(一) nKeepalived + MySQL(Master-Slave) + VIP • Keepalived是一个通用的HA方案 •VIP:Virtual IP Address • 同机房,同网段
- 21.部署模型 nVRRP:Virtual Router Redundancy Protocol
- 22.故障模型
- 23.架构特点 n完全使用开源软件 n架构简单,部署方便 n系统可靠性较高,经得住考验 n只能做同机房同网段的FailOver n存在脑裂问题
- 24.脑裂 n脑裂(split-brain) n高可用系统中的最大难题
- 25.生活中的脑裂
- 26.脑裂在MySQL中的表现 n 我要成为Leader n 我要成为Leader n 我要成为Leader n 我要成为Leader
- 27.如何防止脑裂 nArbitration nFencing
- 28.经典高可用架构(二) nMHA + MySQL(Master-Slave) + VIP/DNS • MHA : MySQL Master High Available • 由yoshinorim开发并开源 • 采用Perl语言编写 • 业界享负盛名的高可用组件 • 支持VIP/域名的切换
- 29.MHA的架构 n MHA Manager n MHA Client
- 30.MHA的技术创新 nMHA引入了数据回补流程
- 31.
- 32.
- 33.
- 34.
- 35.架构特点 n CS模型: Manager和Client的组合 n Manager和Client通过SSH通信 n 数据补偿逻辑非常有创意 n MHA Manager存在单点问题 n 原生MHA在业界用的不多,大多是二次开发 n 防脑裂做法简单粗暴 n MHA部署麻烦,不适合现在大公司使用的场景
- 36.企业级高可用方案
- 37.企业级高可用服务 n基于元数据的高可用服务服务 • CS模型:Manager和Client通过RPC通信 • 基于元数据建设,而非手动配置 • 引入仲裁节点,解决切换过程中的脑裂问题 • 优化数据回补流程
- 38.MHA的进阶版
- 39.Zookeeper的作用 n 三个节点以上的ZK集群(部署在不同服务器/机房) n HA Manager部署在不同服务器/机房
- 40.高可用切换的根基 n 准确的元数据是NDHA切换的基础 n 元数据的更新频率必须要细化到秒级别 n Agent的稳定性成为整个系统中的重中之重
- 41.数据回补流程的优化 n 三部操作优化为两步 n SSH传输优化为Stream
- 42.总结 n高可用方案分为单写模型和多写模型 n多写模型业务改造代价较小,但是要看准业务场景 nKeepAvailved和MHA都能解决MySQL切换的问题 n高可用系统中,脑裂是最为严重的问题
- 43.Thanks