mysql高可用性 - LinuxTone.Org

Download Report

Transcript mysql高可用性 - LinuxTone.Org

数据库高可用架构
Jacky @ Alibaba
www.HelloDBA.net
问题与挑战
• 集中式数据库成为系统瓶颈
• 数据库依赖高端硬件设备
o 小型机和高端存储
o 硬件可用性要求高
o Scale up
• 数据库如何线性扩展(Scale out)
• 利用廉价设备搭建高可用数据库集群
CAP原理
• Consistency:一致性
• Availability:可用性
• Partition tolerance:分区容错性
• 三者不可兼得
• 传统数据库(CA)
o ACID
o 原子性,一致性,隔离性,持久性
• NoSQL产品(AP)
o BASE
o 基本可用,软状态,最终一致
Hardware HA
• Active/Standby
• High Availability
• Bad Scalability
• IBM hacmp
• HP serviceguard
Oracle Data Guard
•
•
•
•
Primary服务,Standby只读(11g)
异步传送方式,可能导致数据丢失
失败切换需要人工干预
廉价的容灾方案
Oracle RAC 架构
•
•
•
•
•
•
Shared Disk
Oracle Clusterware
High Availability
Scale out
Load Balance
TAF
Oracle RAC 特点
• 应用透明
• 廉价的高可用方案
• 扩展能力有限
o 共享存储的扩展能力
o 节点间通信成本
• DSS类型应用分析
o 可扩展特性
o 充分利用节点计算能力
o 降低节点间通信成本
• OLTP类型应用分析
o 高可用特性
o 应用透明切换(TAF)
Oracle ASM
Oracle ASM 特点
•
•
•
•
•
•
具备整合多个存储设备的能力,解决存储的扩展问题
自动负载均衡,支持RAID 10
ASM替换裸设备
ACFS替换OCFS
所有的数据都可以放在ASM中
ASM是免费的
MySQL Replication
•
•
•
•
Master + Slave(单向复制)
Master + Master(双向复制)
Dual master + heartbeat (HA)
Slave可读写,比Oracle DG更灵活
MySQL Cluster 架构
• Shared Nothing
• High Availability
• Scale out
MySQL cluster 特点
• 完全分布式架构
o 高可用
o 可扩展
• 存储节点,处理节点和管理节点
• 内存存储引擎NDB
• 自动数据hash分布
• 数据自动冗余,防止单点故障
• 性能不理想
o 数据同步写多节点
o 数据按照PK Hash分布
o UK需要根据PK访问两次
o Join需要将数据读取至mysqld处理
技术发展趋势
• 硬件
o Intel CPU vs IBM Power
o CPU多核化
o Flash Cache / SSD
o PC server RAS特性增强
 Reliability, Availability and Serviceability
• 软件
o 虚拟化
o 分布式
o 云计算
Oracle Exadata
Oracle Exadata
Oracle Exadata
Oracle Exadata 特性
• 功能
o Smart Scan
o Smart Flash Cache
o Storage Index
o Hybrid Columnar Compressed
• 特点
o 廉价设备组成的BOX
o RAC整合计算能力
o ASM整合存储能力
o Infiniband高速互联网络
o Flash cache作为二级Cache
o 同时支持DSS和OLTP应用
o 缺点:贵
读写分离架构-MySQL复制
读写分离架构-Oracle Active Standby
读写分离架构-DB+Memcache
Facebook MySQL+Memcache架构
读写分离架构分析
• 适合Read Intensive应用
• 数据库复制存在延迟
• 一致性的问题
o Read-your-writes consistency
o Session consistency
• 数据库单机容量成为瓶颈,Sharding?
• Memcache crash = Disaster ?!
• 分布式Memcached集群
o Consisitent hash
Consistent hash
Consistent hash
Sharding架构
• BASE思想的产物
• 具备线性扩展能力
• 弱化关系型处理
o DB = KV Store
• 分布式Hash算法
o
o
Hash(key) mod n
Virtual Partition Hash
Virtual Partition Hash策略
• 根据mod计算hash分布的缺陷
o 节点变化时,所有数据需要重新分布
• Virtual Partition hash策略
o 虚拟分区策略,预分区
o 物理节点包含多个虚拟分区
o 增加节点时,只需移动部分虚拟分区
o 每个节点都有备用节点
o 可根据压力状况灵活配置
o Consistent hash策略的简化
Virtual Partition Hash策略
Virtual Partition Hash策略
分布式数据库
•
•
•
•
•
•
•
•
分布式数据库Proxy
应用透明
Query Parse
Query Route
Results Merge
Load Balance
故障探测
Failover
数据库同步技术
• 为什么需要数据库同步
o
o
构建多站点架构
数据库复制无法满足需要
• 商业产品
o
o
Quest Shareplex
Oracle Goldengate
我们的解决方案
• 触发器方案
• 日志解析
o
o
Oracle redo log
MySQL binlog
• 数据打包传输
o
数据库,文件,图片
o
o
并行应用模型
如何保持事务一致
• 应用模型
• 我们可以做到更好
o
o
o
解析SQL
灵活定义业务逻辑
提升处理能力
技术趋势
•
•
•
•
•
•
•
•
去I/O/E
MySQL Sharding架构
DB + Memcached架构
FlashCache/SSD作为DB二级Cache
MySQL Cluster
数据同步,多站点架构
廉价高可用数据库集群
Key-Value Store