如何打造稳健的数据库管理平台
如果无法正常显示,请先停止浏览器的去广告插件。
1. 如何打造稳健数据库管理平台
演讲人:洪斌
全球敏捷运维峰会 广州站
2. 我是谁
• 洪斌 上海爱可生南区技术负责人
• 12年开源数据库技术咨询与支持
• 致力于开源数据库技术的分享与传播
• 公众号《玩转MySQL》作者
• Oracle MySQL ACE
• 上海爱可生 开源数据库解决方案和服务提供商
• 为企业提供开源数据库的整体解决方案与技术服务
• 客户覆盖金融、电信、能源、零售、制造业等行业
全球敏捷运维峰会 广州站
3. 数字化转型催生产业互联网,为运维带来机遇与挑战
One size does not fit all
• 数据库种类的增多,运维难度增大
• 数据库数量的增多,运维工作量增大
• 存储数据量的增多,可扩展性增大
• 业务连续性要求高,运维敏捷增大
• 希望运维效率提升,降低运维风险
• 数据库运维不同于其他无状态应用运维
企业使用的数据库种类至少3-6种
全球敏捷运维峰会 广州站
4. 开源数据库正在成为主流,2021年首度超越商业数据库
Stack Overflow Developer Survey 2020
全球敏捷运维峰会 广州站
5. 数据库运维如此专业,怎么才能把运维的门槛(成本)降低点?
全球敏捷运维峰会 广州站
6. 我们需要具全生命周期管控能力的数据库运管平台
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
数据库归档
数据库销毁
资源回收
资源
回收
数据库在线迁移
数据库规格变更
数据库版本升级
数据库扩容
参数变更
高可用切换策略
•
•
•
规范
资源
变更
监控告警
数据库开发及测试
备份恢复
性能优化(锁、
TOPSQL、慢SQL)
故障分析
资源
使用
分钟级别交付
数据库拓扑信息
与CMDB对接
选型调研
开发规范
运维规范
不断改进
•
•
•
基
线
数据库全生命 •
•
周期管理 •
•
资源
创建
资源
交付
资源
审批
•
•
•
全球敏捷运维峰会 广州站
架构基线(可靠性、稳定性)
性能基线(高性能、高并发)
部署基线(基础运行环境)
已有资源纳管
多种架构(灾备、高可用、
分布式、读写分离)
模板管理
SLA确认(RPO\RTO)
资源清单确认
权限划分
与OA/ITIL等流程对接
7. 拥有什么样功能才算是一个比较完整的数据库运管平台
• 服务编排平台
• 多种数据库类型
• 多种数据库架构
• 高可用切换平台
• 备份恢复平台
• 监控告警平台
• 故障诊断平台
• SQL审核平台
全球敏捷运维峰会 广州站
8. 系统运维的稳定性从规范化的部署开始
• 版本管理
• 架构选型
• 系统参数
• 数据库参数
• 目录规范
• 磁盘分区
• 安装方式
• 账户安全
全球敏捷运维峰会 广州站
9. 金融行业容灾标准规范
容灾等
级 RT
O RPO 年中断时间
3级 ≤24
小时 ≤24
小时 ≤4 天
4级 ≤4
小时 ≤1小
时 ≤10小时
5级
≤30
分钟
0
≤1小时
数据备份、数据处理、网络、运维技术要求(部分)
复制方式选择
• 至少有一个数据副本在同城或异地; • 异步复制
• 支持完成切换准备后,自动或集中切换; • 双副本
• 至少有一个数据副本在异地; • 异步复制
• 异地处于就绪或运行状态,支持自动或集中切换; • 双副本
• 同城、异地至少各有一个数据副本;其中至少一个应同 步复制; • 同城强同步复制
同城、异地,至少一个处于运行状态, 可实时自动或集 • 3或4副本
• 同城强同步复制+异地
•
中切换;
•
6级
≤2
分钟
0
≤5分钟
同城、异地至少各有一个数据副本;其中至少一个应同
步复制;
•
同城、异地均处于运行状态, 可实时自动或集中无缝切
换;
全球敏捷运维峰会 广州站
异步复制
•
4或5副本
10. 不同容灾级别下的MySQL高可用容灾架构
六级灾备
五级灾备
A园区
B园区
半同
步
Master
Slave
2
半同
步
半同步
Slave
1
异步
B园区
A园区
Master
半同步
Slave
3
半同
步
Slave
2
半同
步
Slave
3
Slave
1
C园区
Slave
4
三级灾备
四级灾备
A园区
异步
Master
半同步
A园区
B园区
Slave
2
Master
异步
Slave
1
Slave
1
全球敏捷运维峰会 广州站
11. 数据库运维需要应对多种故障场景
•
•
•
•
•
主机硬件
网络故障(脑裂)
操作系统
数据库服务
高可用软件自身
全球敏捷运维峰会 广州站
12. 满足企业级需求的高可用架构
架构介绍
管
理
区
核心配置组
件
Ucore
Ucore
• 透明访问:SIP绑定 或路由中间件,支持一主多备
• 故障自动切换:检测网络、服务器、操作系统、服
务进程等故障,实现故障秒级自动切换
• 强一致性保证:
Ucore
A.支持异步复制,可选用binlog共享存储
方式,切换前数据补齐,确保数据零丢失
B.支持MySQL半同步复制
切换决策组件
数
据
区
Ustats
状态采集
MySQL主
Uguard_MGR(主)
UGuard_Agen
t
Uguard_MGR(备)
UGuard_Agen
t
管理任
管理任务
务
数据库复制
C.支持组复制(MGR)技术
D.当半同步降级为异步复制,此时主库发
生故障,高可用软件会优先尝试采用主库
节点上的binlog日志进行数据补偿,补偿
完成后新主库对外提供服务,保证数据的
一致性。
Ustats
• 故障自动恢复:主从节点故障自动修复
• 数据复制自动修复:检测复制状态,自动修复复制
故障,降级为异步复制后自动恢复为半同步复制
• SLA协议保证:量化数据库服务指标,保障数据一
致性切换
• 易用性:图形化管理、一键式部署、数据自动备份、
监控告警应用场景
状态采集
MySQL从
全球敏捷运维峰会 广州站
13. 如何避免脑裂
脑裂是指当发生网络分区时可能双主局面,即有两个节点都绑定VIP,客户端可对双主写数据,可
能造成数据不一致。
处理机制
1. 网络采用多链路聚合,降低网络链路分区的概率。
2.多个视角探测master节点的连通性,包括哨兵视角和slave
视角,提高探测精确性。
3. VIP漂移需发送免费arp包,避免原主被访问
4. 网络恢复后及时解绑VIP,降级为备节点
全球敏捷运维峰会 广州站
14. 从整体考虑数据库可用性管理,不是简单的主从切换
高可用架构
MHA
云树DMP(Uguard)
特性
KeepAlived
基于逻辑复制的单主多从 基于逻辑复制的单主多从 基于逻辑复制的双主
支持(多个哨兵节点以主备模式运行) 不支持(单哨兵节点) 对称架构(无第三方哨兵节点)
主节点可用性监测 支持 支持 支持
从节点可用性监测 支持 不支持 支持(双主架构)
复制链路可用性监测 支持 不支持 不支持
GTID一致性实时监测 支持(发现GTID不一致告警并踢出高可用集群) 不支持 不支持
支持(对从节点自动保持只读设置) 不支持(需手动配置,容易遗漏) 不支持(需手动配置,容易遗漏)
主节点故障自修复 支持(服务重启、主从切换) 部分支持(主从切换) 不支持
从节点故障自修复 支持(服务重启,数据自动重建(可选)) 不支持 支持(双主架构)
复制链路故障自修复 支持(复制通道重启/重建) 不支持 不支持
连续主从切换(1主多从架构) 支持(只要存在可用从机) 不支持(一次性切换,manager进程退出) 不支持(仅支持双节点)
异步/半同步/组复制 异步/半同步 异步/半同步
可配置切换策略 支持(基于权重/基于标签/基于RTO和RPO指标要求) 不支持 不支持
binlog日志补偿 支持 支持 不支持
可触发切换动作 VIP绑定/可触发自定义脚本 需自行编写切换动作脚本 VIP绑定/可触发自定义脚本
脑裂防护 支持(若主节点发生网络隔离,选出新主后,旧主网络
恢复,降级) 不支持 容易产生脑裂,且无法防护
告警通知 支持 不支持(可自定义通知脚本) 不支持(可自定义通知脚本)
哨兵决策节点的高可用
从节点只读保护
可用复制模式
全球敏捷运维峰会 广州站
15. MySQL架构的横向扩展
•
读写分离
•
•
• 读的横扩展
适合读多写少,读写比例极不均衡
读一致性要求不高
•
•
• 读写横向扩展
容量的横向扩展
数据分散到不同节点
• 超过1000万行就要分表
• 水平分片
• 误区
通过切片(sharding)对集中式数据库进行分库分表,把
数据库的业务数据分成多个物理数据库分片
• 每个Shard 只负责自己分片数据的修改
• 实现Sharding 需要解决一系列关键的技术问题: 切片
策略、节点路由、跨节点排序/分组/关联、分 布式事务处
理和Shard扩容等
分片架构
读写分离架构
写
读
SQL计算节
点
主
读写
从
只读
全球敏捷运维峰会 广州站
主
从
数据存储节
点
…
主
从
16. 一套高可用软件,实现多种高可用容灾架构
园区B
园区A
APP Server
APP Server
DBLE 数据库分布式中间件集群
l 架构: 1主3从2确认
l 切换策略:DC内自动,
DBLE 数据库分布式中间件集群
跨DC联动
l
分片1
监测,不一致踢出集群
不等ACK
等ACK
故障预警:主从gtid实时
.
l
故障自愈:复制重连;备
库重做
分片N
l
容灾能力:RPO=0 RTO
<30 m;
管理节点
管理节点
全球敏捷运维峰会 广州站
17. 备份、转储、恢复、演练一套完整闭环的备份恢复系统
备份策略
下发
备份
任务
Urman_agent
DB
1
Urman_mg
r
演练
DB
下发恢复
任务
Urman_agent
开始
备份
备份集
转储
归档空间
演练
恢复
新
DB1
故障
恢复
如果本
地没有
则拷贝
编排 备份 转储 恢复演练 灾备报告
l 自动编排所有备份任务 l 全量/增量 l ftp、磁盘、带库 l 自动恢复演练 l 展示RTO、RPO
l 发送每天编排报表 l 物理备份/Binglog备份 l 自动转储,故障无忧 l 指定时间点恢复 l 备份数据有效性验证
l 异常编排任务告警 l 备份自动回收 l NBU/S3备份对接 l 故障恢复预测
全球敏捷运维峰会 广州站
18. 自动恢复演练确保需要恢复数据时备份集可用,可恢复至任意时间点
l 备份成功=!顺利恢复;
l 高可用不能替代备份恢复;
l 可基于时间点恢复到指定event;
全球敏捷运维峰会 广州站
18
19. 覆盖最全面的监控指标
事务相
关
InnoDB
l
连接与
线程
相关
融合十年以上百个大型MySQL数据库系统运
维经验,总结出9大类,25个子类,监控指
标MySQL200 多项、Redis 80多项、
MySQL
MongoDB 50多项。
表相关
监控
中心
排序
l
查询缓
存
等上百个监控指标,确保MySQL数据库系统
网络流
量
命令统
计
查询类
型
结合系统资源,主机、操作系统、IO、网络
稳定可靠地运行。
l
支持对数据库空间、性能、运行时间、报
警、慢SQL等形成数据库性能报告。
全球敏捷运维峰会 广州站
20. 成千实例规模,成万监控指标,实时指标展示,告警异常及时
传统监控面临的问题:
Ø 无法分布式部署,扩展性差
Ø 初始化配置复杂,后期运维管理成本高
Ø 数据量增长导致后端数据库性能不足
Ø 告警规则配置复杂,容易触发邮件风暴
mon
爱可生监控的优势:
Ø 全分布式架构,扩展性好
Ø 配置管理简单,可视化展现丰富
Ø 采用时间序列数据库,高效查询和存储
Ø 支持两种数据采集方式:直接pull采取和短
时Job的push gateway
Ø 可自定义多维度数据模型
Ø 独立的告警管理中心,提供API接口
Ø 支持告警的抑制和收敛
Ø 支持微信、邮件、黑洞等转发
Ø 专业的MySQL监控模板
全球敏捷运维峰会 广州站
21. 定时健康巡检,快速诊断数据库,将故障隐患扼杀在摇篮里
• 健康巡检
• 库表检查
• 慢日志分析
• 锁冲突分析
• 磁盘容量分析
• DDL进度
• 连接分析
全球敏捷运维峰会 广州站
22. 一键参数变更,避免误操作、漏操作
l 热参数即时生效
l 重启参数特别标识
l 敏感参数默认不显示
全球敏捷运维峰会 广州站
22
23. SQL审核落实开发规范,DBA不再为烂SQL发愁
• 规范化数据库设计
• 对象审核
• SQL语句审核
• 逻辑设计反模式
• 物理设计反模式
• 查询反模式
• 数据反模式
全球敏捷运维峰会 广州站
24. 某银行A类业务MYSQL两地三中心架构
应用特征
• 交易特征:高并发、低延时,日
均交易量2亿
• 交易延时<10ms ;业务数据量
20T , 7*24联机服
• 高可用架构: MySQL分库分表,
应用双活
实施效果
• 日均交易量1亿以上
• 分库分表, -致性Hash算法、智
能路由, 128个分
• 日间联机(读)、夜间批量(写)支
持
• 同城/本地高可用自动化切换,
RPO=0,RTO<30s
全球敏捷运维峰会 广州站
25. 组合开源数据库帮助企业降本,用好数据库运管平台帮助企业提效
云树®DMP 数据库集群管理平台
服务部署
实
例
接
管
资
源
隔
离
版
本
升
级
高可用主从集群
MySQL
主库
监
控
告
警
SQ
L
审
核
数
据
库
权
限
平
台
权
限
高
可
用
异地容灾集群
同城容灾集群
MySQL
DB2
MGR
组复制
MySQL主
库
MySQL
DB3
MySQL
从库
MySQL主
库
读
写
分
离
分
布
式
分布式集群
读
MySQL从
库
MySQL
从库
异步复制
半同步复
半同步复制
自
动
巡
检
架构优化
写
l
实
例
诊
断
安全审计
writeset
MySQL
DB1
异步复制
备
份
恢
复
高可用MGR集群
MySQL
从库
l
参
数
变
更
监控巡检
快
速
部
署
系统变更
制
MySQL
从库
MySQL从
库
全球敏捷运维峰会 广州站
MySQL
从库
半同步复制
MySQL
主库
MySQL
从库
26. THANK YOU!
全球敏捷运维峰会 广州站