当前位置:文档之家› 淘宝核心系统数据库组技术专家林晓斌(花名:丁奇)《MySQL云实践》

淘宝核心系统数据库组技术专家林晓斌(花名:丁奇)《MySQL云实践》


诊断系统

监控图
• 实例数/运维人数 > 20 还能依赖人工?

实例诊断 卡慢诊断


全链路诊断
迭代的矛盾

云服务特点
• “最强测试”—用户

存储过程中用prepare语法创建三层视图 使用MyISAM引擎,在scheduler中使用事务语法 存储过程中死循环无限申请内存
• “我买了RDS,MySQL的bug我就认为是 RDS的bug” • “我使用中没碰到问题,为什么要强制升级”

恢复到任意时间点

专治剁手
• 删错库/表了! • U/D忘记where

备份
• 定期全备 • 备份binlog
主备一致性

校验
• 常见校验方案 • 改进:利用主备复制机制

修复
• 按片检测,按片修复
主备一致性--利用主备复制机制

主库 insert into tmp (select … ) 等待备库复用
连接复用问题

流程
• • • • • 连接 创建 使用 用户关闭 放入链接池 再次连接 复用 使用

问题
• Kill connection

解决
• set connection id
高可靠

恢复到任意时间点
主备一致性 延迟问题 Crash数据不丢



问题
• Binlog格式 • warning日志问题
主备一致性—延迟问题

多线程复制 无主键表的问题
• Row格式 • 备库全表扫描 • 隐含主键

Crash数据不丢

主库能恢复自然不丢
• 恢复时间不可控

切换
• 直接切成备库就可以吗? • 等备库执行完日志就可以吗? • Semi-sync就可以吗? • 我们的方案
迭代的矛盾



需要稳定,没问题的用户不想升级 需要迭代,有bug的用户必须升级 多租户 无法统一的“业务低峰” 升还是不升,这是个问题 我们的方案
• 单机多版本 • 按实例升级


一点感悟
人性化
谢谢
MySQL 云实践
@淘宝丁奇

基本结构 服务高可用 数据高可靠 运维成本 迭代的矛盾




基本结构—主备

常规一主一备 双M & 备库readonly 只读实例


高可用
高可用—切换闪断问题

用户只看见主库
• 主备保障数据安全 • 切换后继续使用

切换闪断
• 游戏用户痛点 • Proxy桥接方案
async
Master
Slave
•双通道(multi-source replication) •改造的semi-sync •数据补齐
运维成本

自动化
诊断系统

自动化

基本的自动化
• • • • 创建、删除 升级、迁移 备份、恢复 加锁、解锁

进一步的
• 备库自动修复 • 现场保留

一个有趣的投诉
相关主题