解密数科数据库运维攻守之道

高新刚解密数科数据库运维攻守之道

展开查看详情

1. 解密数科数据库运维攻守之道 演讲人:高新刚 2019 中国数据智能管理峰会

2. 京东金融 金融科技 目录 运维概述 备战准备 618进行时 案例复盘 2019 中国数据智能管理峰会

3.DBA团队 数据库运维 架构搭建、性能优化、故障排查、安全防 护、备份与恢复、部署与下线、变更查询 自动化智能化运维产品 运维平台、性能诊断平台、数据查询平台、 数据建模平台、数据复制平台、数据库变 更平台、归档平台、数据库中间件 科技输出 分布式事务数据库、自动化运维产品、数 据库解决方案、私有云 2019 中国数据智能管理峰会

4.运维目标 规范 服务 精细 持续 海量数据 架构转型 服务可用率 性能保障 1、业务发展催生架构 1、故障风险分摊 1、慢查询 1、DB数据容量大 转型 2、TPS\QPS 2、每日增量快速 2、高可用方案,可用 2、性能瓶颈寻求架构 率保障 3、连接数 3、多模数据存储 变革 4、字段和数据变更慢 3、合规要求,多数据 3、成本和安全优化促 中心技术保障 进转型 保障 高效 价值 数据安全 水平拆分 数据服务 1、对业务透明、 1、运营报表类聚 1、数据一致性 研发改动小 合查询 2、事务一致性 2、数据均匀分布, 2、数据迁移同步 3、安全加固方案 风险分摊 能力和效率 4、备份策略 3、二次缩扩容 4、分布式事务 2019 中国数据智能管理峰会

5. 运维体系 核心目标 业务层级 业务需求 运维组件产品 数据建模平台DBCM SQL自助建模 SQL自助查询 数据一致性 应用层 查询机MyDB SQL自助变更 工单流程平台MagicFlow 水平拆分 读写分离 容灾可用性 中间层 数据库中间件CDS、SS 弹性扩容 分布式事务 资源管控 备份恢复 安全合规管控 自动部署 任务调度 数据库运维管理系统 HA切换 DB迁移 Mega 数据库层 资源回收 数据接口 运维自动化 空间分析 性能分析 数据库性能展示平台 会话分析 慢查询分析 CleverDB 数据治理 数据复制平台DBRep 大数据层 数据抽取 复制订阅 2019 中国数据智能管理峰会 大数据计算与分析平台

6. 备战准备 618 案例复盘 • 备战巡检 • 容量评估 • 大促调整 • 事件管理 • 优化改造 • 监控大屏 • 案例分享 • 数据归档 • 应急处理 • 经验总结 • 压力测试 • 切换演练 • 变更管控 2019 中国数据智能管理峰会

7. 备战巡检 自增主键 磁盘空间 表分区 连接数 单表21亿 系统相关 时间维度的分区 活跃连接数 全局自增主键 DB相关 时间维度的拆分 max_connections 备份 热点表 Top SQL 慢查询 备份作业 数据量大 SQL 频次 SQL 消耗 有效性检查 拆分不均匀 SQL 效率 影子表 优化改造 定时调度 容量评估 硬件&机房 业务梳理 业务跑批 ETL抽取 硬件容量 磁盘 Raid卡 数据库依赖程度 出口带宽 机柜超电 事务读写逻辑 信息采集 备份调度 性能容量 双电链路 温湿度 上下游调用逻辑 2019 中国数据智能管理峰会

8.巡检通道 - CleverDB 2019 中国数据智能管理峰会

9.容量评估 权 参数 评分 第一档 第二档 第三档 第四档 重 1500~500 8000~99999 QPS容量(CPU) qps/cpu_percent 0~1500 0 5000~8000 9 10 3000~600 10000~9999 SQL质量 QPS容量(IO) qps/io_percent 0~3000 6000~10000 10 0 99 1000~300 5000~99999 TPS容量(IO) tps/io_percent 0~1000 3000~5000 10 0 9 参数 评分 第一档 第二档 第三档 第四档 第五档 权重 CPU使用率 cpu_percent 60~100 0~5 30~60 5~15 15~30 15 资源利用率 IO使用率 io_percent 80~100 0~10 50~80 10~25 25~50 15 磁盘利用率 磁盘使用率 disk_percent 80~100 0~5 50~80 5~15 15~50 30 2019 中国数据智能管理峰会

10. 容量评估 分数 缩容 扩容 磁盘使用率 归档 0% 30% 50% 70% 100% 分数 CPU使用率 缩容 优化、扩容 读写分离 0% 5% 10% 20% 30% 50% 100% 2019 中国数据智能管理峰会

11.容量评估 选型 CDS or SS 单实例 多实例 容量 2019 中国数据智能管理峰会

12.优化改造 SQL优化 SQL采集、执行计划、sql解析、统计分析、索引优化、优化推荐 1 配置优化 模板固化、动态调整、变更流程(连接) 2 数据优化 归档、冷热数据、表结构 3 架构优化 r2m、Hcenter、 MQ、硬件扩容 4 代码优化 逻辑、事务、降级开关 5 2019 中国数据智能管理峰会

13. 缩扩容流程 数据同步 容量评估 资源评估 迁移方案 资源申请 冷备份 QPS/TPS 硬件需求数量 提高硬件配置(切换) 工单系统申请 数据管道 CPU/DISK/MEM 预期增长量 多库架构拆分(垂直) DB环境初始化 dbrep 历史增长率 预算情况 单库多表拆分(垂直) 代码逻辑改造 主从同步 硬件配置 峰值预估 单表拆分(水平) 测试环境验证 数据校验 扩容 权限校验 网络校验 一致性校验 缩容 切分规则校验 容量评估 迁移方案 资源申请 QPS/TPS 工单系统申请 DB下线(工单回收) 切换迁移 CPU/DISK/MEM 降低硬件配置(切换) DB环境初始化 历史增长率 代码逻辑改造 Online切换(透明) 单库多表拆分(垂直) 硬件配置 测试环境验证 修改连接池(集群) 水平拆分+hdb dnsvip调整(重启) 旧资源回收下线 2019 中国数据智能管理峰会

14.数据归档 空间分析 • 机器级别 • 实例级别 1 • • 库级别 表级别 归档规则 • 冷热数据划分 • 归档条件筛选 数据归档 2 • 3 归档时间节点和频率 • 结转对性能影响的追踪 • 归档数据访问规则 • 结转效率的评估 • 数据删除 1、备份删除 2、历史表 3、归档库 4、大数据平台 2019 中国数据智能管理峰会

15. 压力测试 Ø应用 Ø缓存 ØDB ØAPI 2019 中国数据智能管理峰会

16.切换演练 提升团队协作能力 提升团队应急处理能力 检查高可用系统 迁移前 迁移中 迁移后 沟通+公告 原主库只读 搭建从库 变更指向或vip漂移 去除复制关系 一致性检查 访问流量check 备份策略调整 HAcheck 研发check 资源回收下线 应用check 新主库读写 网络check 元数据变更 2019 中国数据智能管理峰会

17.变更管控 研发 DBA 流程繁琐 数据源不准确 审批麻烦 SQL语法错误 工单描述 没有where条件 处理周期 需要回滚数据 操作复杂时间长 2019 中国数据智能管理峰会

18.大促调整 关闭半同步 降低IO 关闭数据库信息采集 消耗 关闭数据库全量备份 调整后的代价 ETL抽取推迟2小时 数据推送推迟2小时 核心业务数据一致性 备份恢复时间长 业务跑批任务推迟2小时 任务跑批无法完成 2019 中国数据智能管理峰会

19.监控大盘 2019 中国数据智能管理峰会

20.监控大盘 2019 中国数据智能管理峰会

21.监控大盘 2019 中国数据智能管理峰会

22.应急预案 硬件故障 链路故障 性能故障 服务组件故障 n 主库容灾方案 n 连接数满 n 慢查询 n 权限 n 监控故障 n 带宽流量 n 从库容灾方案 n 防火墙端口 n 事务锁 n 读写分离 n 计算平台故障 n 事务未提交 n 机房容灾方案 n 网络抖动 2019 中国数据智能管理峰会

23.事件管理 事件标题 发生时间 响应时间 解决时间 影响范围 事件描述 事件等级 部门归属 负责人 事件原因 解决方案、改进项:1、2、3、4、5。。。 业务 架构 运维 安全 合规 持续追踪 2019 中国数据智能管理峰会

24. 案例分享一 • 故障描述:业务主库写入性能下降 • 故障原因:读写分离,15个从库,多个从 库获取主库binlog,导致主库推送binlog 时系统上下文切换频繁,负载升高,写性能 下降。 • 解决方法:关闭多个从库 2019 中国数据智能管理峰会

25.案例分享一 1、从库扩容超过5个,使用级联复制,或者使用dbrep复制 2、从库扩容后,都要进行性能压测,验证扩容合理性 3、自动识别Sending binlog event to slave 过多的现象 4、实现自愈,下掉从库以及保障从库高可用 5、资源扩容要有从库数量提醒 6、接口应用增加容错机制,可自动降级 2019 中国数据智能管理峰会

26. 案例分享二 • 故障描述:业务从库异常重启 • 故障原因:DBA开启半同步时,正处于某事务在binary log group commit的flush阶段, 会触发bug,导致MySQL重启 • 解决方法:升级版本 2019-06-18 23:45:36 1015 [Note] Semi-sync replication switched OFF. 2019-06-18 23:45:36 1015 [Note] Semi-sync replication disabled on the master. 2019-06-19 00:18:25 1015 [Note] Semi-sync replication initialized for transactions. 2019-06-19 00:18:25 1015 [Note] Semi-sync replication enabled on the master. mysqld: /mysql-5.6.26/plugin/semisync/semisync_master.cc:792: int ReplSemiSyncMaster::commitTrx(const char*, my_off_t): Assertion `entry' failed. 16:08:25 UTC - mysqld got signal 6 ; 2019 中国数据智能管理峰会

27. 案例分享二 Flush Stage Sync Stage Commit Stage 将每个事务写入binlog缓存中 将binlog缓存内容刷到磁盘 根据顺序调用存储引擎提交事务 Semi sync 会通过active 设置binlog的相对位置 transaction这hash表,记录提 trx_wait_binlog_name 交事务的name、pos和entry 如果是after_commit 则对比的逻辑在 trx_wait_binlog_pos 标识,缓存这些信息的目的是 coommit 阶段进行。 当从库返回ACK时,会和wait的pos 在发送binlog时判断要不要等 进行对比,如果比wait的值大于等于 从库返回的ACK。这个entry的 就提交,否则等待 意义就是告诉从库这个event需 rpl_semi_sync_master_enabled=on 要返回ACK 当事务已经处于flush阶段,但半 dump进程已经发送事务给从库,主 Bug fix之前是只判断是否enabled, 同步没有打开,此时entry 标识 库在等待从库返回ACK时出现了 没有判断是否有entry 没有生成 assertion failure 5.6.35 5.7.17 8.0.1 2019 中国数据智能管理峰会

28. 经验总结 持续做、模拟多场景、 缓存思想、MQ消费 容灾 数据 应急方案优化 数据冷热分离 演练 治理 连续自助化、业务视角、 性能 大促 资源 智能评分、使用效率 管控视角、发现隐患解 优化 支撑 管控 优化方案、合理扩容 决问题 智能压测、营销预估、 压测 业务 减少交互、简化逻辑 服务的服务、监控的监 方案 优化 熔断降级、连接池优化 控 2019 中国数据智能管理峰会

29. THANK YOU! 2019 中国数据智能管理峰会

数据连接未来!围绕Database、Bigdata、AiOps的企业级专业社群。行业大咖、技术干货,每天精品原创文章推送,每周线上技术分享,每月线下技术沙龙,受众20W+。