数据库可靠性维护与管理设计参考
数据库运维保障体系设计
灾备管理
- 高可用
- MMHA
- SlaveHA
- 备份
- 逻辑备份
- 物理备份
- 恢复测试
- 演练平台
- 报警演练
- 机房断网演练
异常发现与治理
- 监控
- falcon
- 链路监控
- 深度监控
- 报警自动化处理
- 日志
- 慢日志
- ProcessList日志
- InnodbStatus日志
- 巡检
- 数据库巡检
- 周报产品巡检
数据服务
- 一致性校验
- DTS
- 数据恢复
- 数据归档
- 查询变更
资源管理
- 服务器
- 容器
- 压测与容量评估
巡检系统
数据库巡检作为运维保障体系最重要的环节之一,能够帮助我们发现数据库存在的隐患,提前治理,做到防患于未然。对于大规模集群而言,灵活健壮的自动化巡检能力,至关重要
设计原则
- 稳定
- 巡检作为保证数据库稳定的工具,它自身的稳定性也必须有所保证
- 高效
- 以用户为中心,尽量化繁为简,降低用户的使用成本,让新同学也能迅速上手治理和管理隐患;提高新巡检部署效率,随着架构、版本、基础模块等运维环境不断变化,新的巡检需求层出不穷,更快的部署等于更早的保障
- 可运营
- 用数据做基础,对巡检隐患进行运营,包括推进隐患治理,查看治理效率、趋势、薄弱点等
系统架构
应用层
- 外部数据服务
- 先知平台
- 运维周报
- 隐患运营后台
- 隐患报表
- 治理周报
- 治理催办
- DBA运维平台
- 隐患展示
- 白名单管理
- 配置巡检
执行层
- 巡检脚本
- 任务调度系统
- 采集目标机器、容器管理
- 采集的数据
- 隐患数据
- 运营数据
- 巡检元数据
- 隐患白名单
- 数据存储
巡检项目
责任划分
- DBA
- DBA主要负责处理数据库基础功能组件以及影响服务稳定性的隐患
- RD
- RD主要负责库表设计缺陷、数据库使用不规范等引起的业务故障或性能问题的隐患
- 协作
- 也存在需要他们同时参与治理的巡检项,比如“磁盘可用空间预测”等
常见巡检项
- 集群
- 主要检查集群拓扑、核心参数等集群层面的隐患
- 机器
- 主要检查服务器硬件层面的隐患
- Schema/SQL
- 检查表结构设计、数据库使用、SQL质量等方面的隐患
- 高可用/备份/中间件/报警
- 主要检查相关核心功能组件是否存在隐患
巡检项明细说明
DBA
- 备份。恢复测试与结果检查;Binary Log无法衔接最近一次备份
- 机器。磁盘可用空间预测
- 集群。集群GTID集异常;集群下多实例共宿主机
- 高可用。集群高可用功能未开启;同地域没有候选主库
RD
- Schema。数值类型溢出;大表
后期拓展
- 提高自动化能力,完善CI和审计
- 加强运营能力,进一步细化每个隐患的重要程度,辅助决策治理优先级
- 隐患自动修复