数据库高可用架构

6,757 views

Published on

Database high availability architecture

Published in: Technology
4 Comments
56 Likes
Statistics
Notes
No Downloads
Views
Total views
6,757
On SlideShare
0
From Embeds
0
Number of Embeds
1,890
Actions
Shares
0
Downloads
310
Comments
4
Likes
56
Embeds 0
No embeds

No notes for slide

数据库高可用架构

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

×