MySQL的复制流程

来源:互联网 发布:精子优化处理哪个医院 编辑:程序博客网 时间:2024/05/17 01:07

基本的实现依靠3个线程:

  1. 主服务器:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中;
  2. 从服务器:io线程——在使用start slave之后,负责从master上拉取binlog内容,放进自己的relay log中;
  3. 从服务器:sql执行线程——执行relay log中的语句。
工作原理并不复杂。

复制是MySQL数据库提供的一种高可用、高性能的解决方案,一般用来建立大型的应用。总体来说,复制的工作原理分为三步:
(1)主服务器把数据更新记录到二进制日志中。
(2)从服务器把主服务器的二进制日志拷贝到自己的中继日志(Relay log)中。
(3)从服务器重做中继日志中的语句,把更新应用到自己的数据库上。


可以很容易地看出,其实本质上就是对主服务器的执行语句的备份并在从服务器上进行还原。需要注意的是,这个二进制日志的还原操作基本上是实时进行的,注意,不是完全实时的,而是异步的实时。其中存在主从服务器之间的执行延迟,如果主服务器的压力很大,则这个延时可能更长。
从服务器有两个线程:一个是I/O线程,负责读取主服务器的二进制日志,并将其保存为中继日志;另一个是SQL线程,负责执行中继日志。