美文网首页
MySQL 5.7 复制1

MySQL 5.7 复制1

作者: 8813d76fee36 | 来源:发表于2018-01-23 14:54 被阅读10次

简介

复制可以使数据从一台MySQL数据库服务器(master)复制到一台或多台MySQL数据库服务器(slaves)。默认情况下,复制是异步的,slaves不需要为了接受更新而长期与master保持连接。通过设置,你可以将多个数据库、指定的数据库、甚至数据库中指定的表进行复制。

优点

  • 横向扩展
    通过设置多台slaves来提升读取性能。在该场景下,所有的写及更新操作必须由master完成。读操作可以在一台或多台slaves上完成。由于master主要负责写操作,所以写操作的性能会大大提升;读操作也会随着slaves的数量提升而提升。
  • 数据更安全
    由于数据被复制到slave,而slave能够暂停复制进程,所以有必要在slave上开启数据备份服务。
  • 数据分析
    实时数据在master上产生,同时slave可以在不影响master性能的前提下完成数据分析操作。
  • 远距离数据传输
    可以通过复制将本地数据同步到远程服务器。

继续介绍。。。

MySQL 5.7支持使用不同的方式来实现复制。

  • 基于binary log
    MySQL实现主从复制的传统方式,需要日志文件和位置信息用于master和slave的同步。
  • 基于global transaction identifiers(GTIDs)
    新的主从复制方式。不需要日志文件和位置信息,简化了复制任务。复制操作使用GTIDs的时候,只要master提交了事务,slave上也会提交相同的事务,以此来保证数据一致性。

MySQL的复制支持不同类型的同步机制。
一种原始的同步类型是单程的,异步的复制。一台服务器扮演master,一台或多台服务器扮演slaves。这与NDB Cluster的特征——同步复制形成了对照。
在MySQL 5.7中,除了内置的异步复制外,还支持半同步复制。使用半同步复制时,提交操作在master锁返回执行事务直到至少一个slave得知它收到并记录了这次事务事件的会话之前执行。

有两种主要的复制格式。

  • Statement Based Replication(SBR)
    复制所有的SQL语句。
  • Row Based Replication(RBR)
    仅复制受影响的行。

除此之外,还可以使用混合模式。

  • Mixed Based Replication(MBR)

复制通过一些不同的设置和参数控制。

后记

  • 复制格式由my.cnfbinlog-format设置,其中MySQL版本<=5.7.6,默认为STATEMENT;>=5.7.7默认为ROW。
    binlog-format

参考资料
MySQL 5.7 Reference Manual--Replication

相关文章

网友评论

      本文标题:MySQL 5.7 复制1

      本文链接:https://www.haomeiwen.com/subject/eadsaxtx.html