MySQL Replication  新功能介绍  北京万里开源软件有限公司 2011 年 8 月
万里开源和 MySQL - 开源软件解决方案和技术服务提供商,推广使用开放源代码 的 LAMP  架构。 - 2006 年携手 MySQL AB 共建 MySQL 中国研发中心,   先后在 MySQL Cluster 和 Replicatio...
MySQL 5.5 Replication  新功能和改进  <ul><li>- Semi-synchronous Replication </li></ul><ul><li>- Replication Heartbeat </li></ul>...
Semi-Synchronous Replication <ul><li>目标 </li></ul><ul><li>- 当 COMMIT 语句成功返回后,该事务的所有日志已经被同步到了 Slave 上 </li></ul><ul><li>- 如...
Semi-Synchronous Replication <ul><li>Master 上 COMMIT 返回后的两种含义 </li></ul><ul><li>- 得到了 Slave 的响应,数据已经复制到了 Slave 上 </li></ul...
MySQL 5.6 Replication  新功能和改进 <ul><li>- Multi-Threaded Slaves </li></ul><ul><li>- Crash-Safe </li></ul><ul><li>- Time-Dela...
Crash-Safe On Master <ul><li>binlog.index  的容错 </li></ul><ul><li>-  备份 binlog.index 文件 </li></ul><ul><li>Binary Log 和 Mast...
Crash-Safe On Slave <ul><li>slave-relay-bin.index  的容错 </li></ul><ul><li>-  备份 slave-relay-bin.index 文件 </li></ul><ul><li>...
Time-Delayed Replication <ul><li>Slave 滞后 Master 一定时间后再执行 Binary Log </li></ul><ul><li>- CHANGE MASTER TO MASTER_DELAY = N...
Informational Log Events <ul><li>Informational Log Event 是一个新的 Binary Log Event 族 . </li></ul><ul><li>Master  可以通过这些 Event...
Informational Log Events <ul><li>Rows Query Log Event </li></ul><ul><li>- 在 Row 模式下,记录生成 Rows Log Events 的语句 </li></ul><ul...
Remote Binlog Back-up <ul><li>mysqlbinlog </li></ul><ul><li>- --raw </li></ul><ul><li>- --read-from-remote-server </li></u...
Multi-Threaded Slaves <ul><li>Multi-Threaded Slaves </li></ul><ul><li>实现了多个 SQL Threads  </li></ul><ul><li>并发的执行不同的事务 </li...
Multi-Threaded Slaves <ul><li>限制 </li></ul><ul><li>- Database 级别的并发,两个事务修改了同一个 database 中的表,则要顺序执行。 </li></ul><ul><li>参考  ...
Optimized Row-Based Replication <ul><li>在 row 模式下,复制数据时,只复制必要的字段,而 </li></ul><ul><li>不复制整行数据。减少 Binary Log 占用的空间和网络 </li><...
Optimized Row-Based Replication <ul><li>Before Row </li></ul><ul><li>- 只复制主键字段或非空唯一键字段 </li></ul><ul><li>After Row </li></...
Email: Anders.Song@greatopensource.com <ul><li>Q&A </li></ul><ul><li>谢谢! </li></ul>
参考书
Upcoming SlideShare
Loading in …5
×

MySQL Replication新功能介绍

2,377 views
2,173 views

Published on

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,377
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
80
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • MySQL Network corporate presentation Hide or unhide slides for customization
  • MySQL Replication新功能介绍

    1. 1. MySQL Replication 新功能介绍 北京万里开源软件有限公司 2011 年 8 月
    2. 2. 万里开源和 MySQL - 开源软件解决方案和技术服务提供商,推广使用开放源代码 的 LAMP 架构。 - 2006 年携手 MySQL AB 共建 MySQL 中国研发中心, 先后在 MySQL Cluster 和 Replication 功能上进行合作开发。
    3. 3. MySQL 5.5 Replication 新功能和改进 <ul><li>- Semi-synchronous Replication </li></ul><ul><li>- Replication Heartbeat </li></ul><ul><li>- Automatic Relay Log Recovery </li></ul><ul><li>- Replication Per Server Filtering </li></ul><ul><li>- Replication Slave Side Data Type Conversions </li></ul><ul><li>参考 </li></ul><ul><li>- http://blogs.oracle.com/mysql/entry/mysql_55_whats_new_in_replication </li></ul><ul><li>- http://dev.mysql.com/doc/refman/5.5/en/replication.html </li></ul><ul><li>- https://www.mysql.com/news-and-events/on-demand-webinars/display-od-572.html </li></ul>
    4. 4. Semi-Synchronous Replication <ul><li>目标 </li></ul><ul><li>- 当 COMMIT 语句成功返回后,该事务的所有日志已经被同步到了 Slave 上 </li></ul><ul><li>- 如果这时 Master 发生故障,用户能从 Slave 上看到所有在 Master 看到的数据 </li></ul><ul><li>实现方法 - 等待应答机制 </li></ul><ul><li>- Master 在事务提交后,将等待至少一个 slave 的应答,此应答意味着整个事务的 </li></ul><ul><li>日志已经复制到 了 slave 上 </li></ul><ul><li>- Slave 在一个事务的所有 binary log 都写入 relay log 并刷新到磁盘后, </li></ul><ul><li>就立刻应答 Master </li></ul><ul><li>- Binary Log Event 前添加了一个 Semi-Sync Header. 有是否应答的标志 </li></ul><ul><li>位。 COMMIT,ROLLBACK, DDL </li></ul><ul><li>- 应答内容为 master_log_file 和 master_log_pos </li></ul>
    5. 5. Semi-Synchronous Replication <ul><li>Master 上 COMMIT 返回后的两种含义 </li></ul><ul><li>- 得到了 Slave 的响应,数据已经复制到了 Slave 上 </li></ul><ul><li>- 等待超时, 数据没有复制到 Slave 上 . 转变为异步方 </li></ul><ul><li>式。 Master 上的操作不能回滚 </li></ul>
    6. 6. MySQL 5.6 Replication 新功能和改进 <ul><li>- Multi-Threaded Slaves </li></ul><ul><li>- Crash-Safe </li></ul><ul><li>- Time-Delayed Replication </li></ul><ul><li>- Informational Log Events </li></ul><ul><li>- Optimized Row-Based Replication </li></ul><ul><li>- Replication Checksums </li></ul><ul><li>- Server UUIDs </li></ul><ul><li>- Binlog API </li></ul><ul><li>- Binlog Group Commit </li></ul><ul><li>- Remote Binlog Back-up </li></ul>
    7. 7. Crash-Safe On Master <ul><li>binlog.index 的容错 </li></ul><ul><li>- 备份 binlog.index 文件 </li></ul><ul><li>Binary Log 和 Master 数据的一致性 </li></ul><ul><li>- 事务日志已经完整写入 Binary Log, 但是未提交 </li></ul><ul><li>利用 xid Events, 恢复这些事务 </li></ul><ul><li>- 事务日志未完整写入,也未提交 </li></ul><ul><li>从 Binary Log 中删除不完整事务的日志 </li></ul>
    8. 8. Crash-Safe On Slave <ul><li>slave-relay-bin.index 的容错 </li></ul><ul><li>- 备份 slave-relay-bin.index 文件 </li></ul><ul><li>master.info, relay-log.info 和 Slave 数据的一致性 </li></ul><ul><li>- master.info 和 relay-log.info 存入系统表,并可修改引擎类型 </li></ul><ul><li>slave_master_info, slave_relay_log_info 。 </li></ul><ul><li>- 对这两个表的操作,包含在正在执行的事务中 </li></ul><ul><li>Round-Robin Multi-Source Replication in Pure SQL </li></ul><ul><li>- http://mysqlmusings.blogspot.com/2011/04/round-robin-multi-source-in-pure-sql.html </li></ul><ul><li>参考 </li></ul><ul><li>- http://mysqlmusings.blogspot.com/2011/04/crash-safe-replication.html </li></ul>
    9. 9. Time-Delayed Replication <ul><li>Slave 滞后 Master 一定时间后再执行 Binary Log </li></ul><ul><li>- CHANGE MASTER TO MASTER_DELAY = N; </li></ul><ul><li>目的 </li></ul><ul><li>- 阻止用户在 Master 上的错误扩散到 Slave 上 </li></ul><ul><li>- 检测一段时间以前的数据库系统的状况 </li></ul><ul><li>- 测试目的 </li></ul><ul><li>参考 </li></ul><ul><li>- http://dev.mysql.com/doc/refman/5.6/en/replication-delayed.html </li></ul>
    10. 10. Informational Log Events <ul><li>Informational Log Event 是一个新的 Binary Log Event 族 . </li></ul><ul><li>Master 可以通过这些 Events 将额外的信息发送到 Slave 。 </li></ul><ul><li>- 不包含任何数据,不影响 Slave 上的数据。 </li></ul><ul><li>- 只包含一些信息 , 这些信息可以被 mysqlbinlog, </li></ul><ul><li>SHOW BINLOG EVENTS 打印出来。 </li></ul><ul><li>- 主要用于调试 </li></ul><ul><li>- Event Header 中设置 LOG_EVENT_IGNORABLE_F 标志 </li></ul>
    11. 11. Informational Log Events <ul><li>Rows Query Log Event </li></ul><ul><li>- 在 Row 模式下,记录生成 Rows Log Events 的语句 </li></ul><ul><li>- --binlog_rows_query_log_events </li></ul><ul><li>参考 </li></ul><ul><li>- http://d2-systems.blogspot.com/2011/04/mysql-562-dm-binlog-informational.html </li></ul>
    12. 12. Remote Binlog Back-up <ul><li>mysqlbinlog </li></ul><ul><li>- --raw </li></ul><ul><li>- --read-from-remote-server </li></ul><ul><li>- --stop-never </li></ul><ul><li>参考 </li></ul><ul><li>- http://dev.mysql.com/doc/refman/5.6/en/mysqlbinlog-backup.html </li></ul>
    13. 13. Multi-Threaded Slaves <ul><li>Multi-Threaded Slaves </li></ul><ul><li>实现了多个 SQL Threads </li></ul><ul><li>并发的执行不同的事务 </li></ul><ul><li>Slave 的组成 </li></ul><ul><li>- 1 个 I/O Thread </li></ul><ul><li>- 1 个 SQL Coordinator Thread </li></ul><ul><li>分发 Binary log Events </li></ul><ul><li>到不同的 Worker Threads </li></ul><ul><li>- N 个 SQL Worker Threads </li></ul><ul><li>执行 Binary log Events </li></ul>
    14. 14. Multi-Threaded Slaves <ul><li>限制 </li></ul><ul><li>- Database 级别的并发,两个事务修改了同一个 database 中的表,则要顺序执行。 </li></ul><ul><li>参考 </li></ul><ul><li>- http://d2-systems.blogspot.com/2011/04/mysql-56x-feature-preview-multi.html </li></ul><ul><li>- http://d2-systems.blogspot.com/2011/07/update-on-multi-threaded-slave.html </li></ul>
    15. 15. Optimized Row-Based Replication <ul><li>在 row 模式下,复制数据时,只复制必要的字段,而 </li></ul><ul><li>不复制整行数据。减少 Binary Log 占用的空间和网络 </li></ul><ul><li>传输时间。 </li></ul><ul><li>Variable binlog-row-image </li></ul><ul><li>- full </li></ul><ul><li>- noblob </li></ul><ul><li>- minimal </li></ul>
    16. 16. Optimized Row-Based Replication <ul><li>Before Row </li></ul><ul><li>- 只复制主键字段或非空唯一键字段 </li></ul><ul><li>After Row </li></ul><ul><li>- 对于 UPDATE ,只复制被修改的字段 </li></ul><ul><li>- 对于 INSERT ,复制所有字段 </li></ul><ul><li>参考 </li></ul><ul><li>- http://dev.mysql.com/doc/refman/5.6/en/replication-options-binary- </li></ul><ul><li>log.html#sysvar_binlog_row_image </li></ul><ul><li>- http://d2-systems.blogspot.com/2011/04/mysql-562-dm-optimized-row-based.html </li></ul>
    17. 17. Email: Anders.Song@greatopensource.com <ul><li>Q&A </li></ul><ul><li>谢谢! </li></ul>
    18. 18. 参考书

    ×