基于MySQL开放复制协议的数据同步<br />简朝阳<br />@mbaobao.com<br />2011.06.12<br />2011/06/12<br />1<br />
基于MySQL开放复制协议的数据同步<br />简朝阳(sky000) <br />Oracle ACE (Expertise MySQL) <br />技术保障部@麦包包<br />http://isky000.com<br />http:/...
基于MySQL开放复制协议的数据同步<br />原生现状介绍<br />主题纲要<br />现实业务需求<br />应该如何扩展<br />架构示例展示<br />3<br />2011/06/12<br />
原生 MySQL Replication 现状<br /><ul><li> 3个线程:2 个 io线程,1个sql线程
 2种日志:binlog,relaylog
1种实现:全程异步</li></ul>实现机制<br />原生现状<br /><ul><li>稳定可靠:已经历多年实践验证
代码集成:和 MySQL Server 绑定
维护简单:配置简单,信息清晰
能耗较低:单线程,Slave 端请求</li></ul>优点<br /><ul><li>数据丢失:异步机制无法保证安全
主从延时:单线程串行机制造成
Upcoming SlideShare
Loading in …5
×

2011 06-12-基于my sql开放复制协议的数据同步

5,995 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,995
On SlideShare
0
From Embeds
0
Number of Embeds
3,477
Actions
Shares
0
Downloads
53
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

2011 06-12-基于my sql开放复制协议的数据同步

  1. 1. 基于MySQL开放复制协议的数据同步<br />简朝阳<br />@mbaobao.com<br />2011.06.12<br />2011/06/12<br />1<br />
  2. 2. 基于MySQL开放复制协议的数据同步<br />简朝阳(sky000) <br />Oracle ACE (Expertise MySQL) <br />技术保障部@麦包包<br />http://isky000.com<br />http://twitter.com/sky000<br />http://weibo.com/isky000<br />2<br />2011/06/12<br />
  3. 3. 基于MySQL开放复制协议的数据同步<br />原生现状介绍<br />主题纲要<br />现实业务需求<br />应该如何扩展<br />架构示例展示<br />3<br />2011/06/12<br />
  4. 4. 原生 MySQL Replication 现状<br /><ul><li> 3个线程:2 个 io线程,1个sql线程
  5. 5. 2种日志:binlog,relaylog
  6. 6. 1种实现:全程异步</li></ul>实现机制<br />原生现状<br /><ul><li>稳定可靠:已经历多年实践验证
  7. 7. 代码集成:和 MySQL Server 绑定
  8. 8. 维护简单:配置简单,信息清晰
  9. 9. 能耗较低:单线程,Slave 端请求</li></ul>优点<br /><ul><li>数据丢失:异步机制无法保证安全
  10. 10. 主从延时:单线程串行机制造成
  11. 11. 单个主库:避免可能的数据冲突?
  12. 12. 切换困难:日志ID不是全局唯一</li></ul>缺点<br />4<br />2011/06/12<br />
  13. 13. 现实场景对 Replication的需求<br /><ul><li> 日志:故障情况下不丢失日志内容
  14. 14. 数据:故障情况下不丢失数据</li></ul>无丢失<br />现实需求<br /><ul><li> 主从延时小:希望Master 与 Slave 之间数据延时较小,更有效的提升扩展性</li></ul>低延时<br /><ul><li> 异常切换快:Slave能够在无人工干预的环境下快速更换 Master的,并确保数据无丢失</li></ul>易切换<br /><ul><li> 多主复制:能够让1个 Slave 从多个 Master 复制数据,实现数据合并</li></ul>多个主<br />2011/06/12<br />5<br />
  15. 15. 我们该如何对 Replication 进行扩展<br /><ul><li> 可行性:协议开源
  16. 16. 目的性:易于控制(分拆/合并/持久化…)
  17. 17. 必要性:避免入侵原生代码,方便后续升级</li></ul>自行解析<br />如何扩展<br /><ul><li> 易控制:合并,分拆,转发…
  18. 18. 降低能耗:一个请求多个解析,解放主节点
  19. 19. 持久化:集中处理变更(备份/转发…)
  20. 20. 易切换:日志不丢失,可全局控制</li></ul>中继缓冲<br /><ul><li>高性能:多线程提高处理能力
  21. 21. 低延时:避免大事务阻塞问题
  22. 22. 易排错:一个错误不影响整体复制进度</li></ul>并行加载<br />6<br />2011/06/12<br />
  23. 23. 复制扩展后架构示例<br /><ul><li>实时反映数据变化至数据分析中心
  24. 24. 合并多个数据源至单个目的数据库
  25. 25. 目标端可能不是 MySQL数据库</li></ul>示例扩展<br />准实时数据分析<br /><ul><li>写入量相对较少,数据相对静止
  26. 26. 读取请求特别多,并发量很高</li></ul>高并发主读应用<br />7<br />2011/06/12<br />
  27. 27. 准实时数据分析系统架构示例<br />…<br />…<br />…<br />…<br />app1<br />app2<br />app3<br />app4<br />App Cluster<br />…<br />…<br />…<br />db1<br />db2<br />db3<br />DB Cluster<br />BinlogSyncer<br />实时分析报表<br />昨日数据报表<br />Data Analyze Center<br />8<br />2011/06/12<br />
  28. 28. 高并发主读系统架构示例<br />…<br />…<br />…<br />…<br />app1<br />app2<br />app3<br />app4<br />App Cluster<br />write<br />Master<br />(with all data)<br />read<br />read<br />BinlogSyncer<br />db3<br />db2<br />db…<br />db1<br />each db with part of all data<br />Read DB Cluster :<br />9<br />2011/06/12<br />
  29. 29. 互动环节<br />Q & A<br />sky000@gmail.com<br />Thanks!<br />10<br />2011/06/12<br />

×