天天看点

面试积累-MySQL-关于MySQL的复制MySQL 的复制原理以及流程MySQL支持的复制类型?

MySQL 的复制原理以及流程

Mysql 内建的复制功能是构建大型,高性能应用程序的基础。将 Mysql 的数据 分布到多个系统上去,这种分布的机制,是通过将 Mysql 的某一台主机的数据 复制到其它主机(slaves)上,并重新执行一遍来实现的。 * 复制过程中一 个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将 更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志 可以记录发送到从服务器的更新。 当一个从服务器连接主服务器时,它通知主 服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生 的任何更新,然后封锁并等待主服务器通知新的更新。

过程如下 :

  1. 主服务器 把更新记录到二进制日志文件中。
  2. 从服务器把主服务器的二进制日志拷贝 到自己的中继日志(replay log)中。
  3. 从服务器重做中继日志中的时间, 把更新应用到自己的数据库上。

MySQL支持的复制类型?

  1. 基于语句的复制: 在主服务器上执行的 SQL 语句,在从服务器上执行 同样的语句。MySQL 默认采用基于语句的复制,效率比较高。 一旦发 现没法精确复制时,会自动选着基于行的复制。
  2. 基于行的复制:把改变的内容复制过去,而不是把命令在从服务器上执 行一遍. 从 mysql5.0 开始支持
  3. 混合类型的复制: 默认采用基于语句的复制,一旦发现基于语句的无法 精确的复制时,就会采用基于行的复制。