第1页
北京
打造高可用的云数据库服务平台
网易蜂巢云数据库实践 / 郭忆
QCon全球软件开发大会
第2页
2016-4-23
第3页
目录
01 02
03 04
网易云数据库
高可用关键技术实现 智能健康检查系统
未来与展望
第4页
网易云计算的发展历程
• 私有云时代
• 全面公有云时代 • 面向企业的公有云
第5页
网易云计算平台规划
第6页
01
网易云数据库
第7页
网易云数据库
基础设施不可靠
高可用 高可靠
跨网络 高性能
弹性 在线伸缩
运维自动化 高智能
+=
第8页
核心功能
第9页
操控平台
第10页
02
高可用关键技术实现
第11页
业界高可用实现
DRBD
SAN BINLOG
MMM
MHA
SemiReplication
Galera
NDB
第12页
关键技术
已经提交的事物丢失!
第13页
同步复制技术
• InnoSQL 5.5.20-v3
• 主从数据完全一致 • 所有提交的事物都已写入从机
再也不用担心主从切换导致的数据丢失! • Oracle MySQL 5.7.2
• rpl_semi_sync_master_wait_point
• AFTER_SYNC • AFTER_COMMIT=Semi-Sync
第14页
组提交技术
• InnoSQL 5.5.20-v3
• Binary log Group Commit
• Oracle MySQL 5.6.6
第15页
实时切换
并行复制
• InnoSQL 5.5.20-v3 • Oracle MySQL 5.7
第16页
可用域和储存池
第17页
有了故障切换,就真的高可用了吗?
切换成本过高
SQL响应时间长 也是不可用
80%的切换都 可以避免
智能数据库
第18页
03
数据库智能健康检查系统
第19页
检查项
1. 索引设计 2. 容量规划 3. 参数配置 4. 服务安全 5. 用户访问
严重
风险
建议
警告
第20页
索引设计
• 主键索引 • 无主键
• 隐含主键会导致基于Row格式 的复制性能差
• 多表插入性能差
• 主键非自增
• 自增主键顺序插入,性能更优 • 按照插入时间进行检索,顺序
读取,速度更快 • 对主键更新,产生内存碎片
第21页
索引设计
• 冗余索引
• 索引前缀重复 • 组合索引与聚簇索引重叠 • 冗余索引会增加索引维护
代价,影响插入性能
• 无效索引
• 创建后一直未使用过的索引 • 增加索引维护代价,影响插入
性能
第22页
索引设计
• 低效索引
• 使用索引区分度评估使用索引 的效率
• 索引区分度=cardinality/tables
• 区分度最高为1,低于0.1则认为 索引区分度不高,建议修改索引
第23页
数据库参数配置(Binlog)
expire_logs_days
binary log占用的 存储空间比例
sync_ binlog
主从实例数据 不一致
binlog_format
可能造成主从数据 不一致
Binary Log
第24页
数据库参数配置(重做日志)
• Innodb_file_log_size
• 过小可能造成SSD存储介质下服务间歇性hang • 过大 可能导致recovery时间变长,同时对于小规格实例,
占用较多的存储空间
• Innodb_flush_log_at_trx_commit
• 可能造成已经提交的事务丢失
第25页
数据库参数配置(内存)
第26页
容量规划
CPU CPU利用率
内存
Buffer_pool 命中率
网络宽带 公网带宽
存储空间 空间利用率
IO能力 IOPS和带宽
第27页
服务安全
弱密码 弱密码彩虹表
权限检查 外网实例host
定时体检
开启自动 定时体检
网络安全 安全组设置
第28页
用户访问
死锁
ü 将死锁打印error log ü 统计一段时间内error log
中死锁的数量
慢查询
ü 单位时间内慢查询数量 ü 按照SQL 类型格式化
第29页
健康检查服务
第30页
健康检查服务
第31页
04
展望与未来
第32页
展望与未来
自动修复
MySQL 5.7
数据迁移
更多服务
高可用、高可靠、高性能 简单易用、智能服务 加速研发效率
第33页
谢谢观看! 扫一扫,关注我们