日期:2014-05-16  浏览次数:20685 次

MySQL- 复制(一)

复制原理:

 总体来说 复制有3个步骤:

1. 主数据库服务器把更改的数据记录到本地的二进制日志文件中(二进制事件日志 Binary log Events)

在主服务器上记录二进制日志文件,在每个更新数据的事务完成之前,主服务器都会把数据更改记录到二进制文件中。

2. 从服务器把主服务器的二进制日志文件拷贝到自己的中继日志(Replay)中

从服务器把主服务器的二进制日志拷贝到自己的硬盘上,进入“中继日志”过程。首先启动一个工作线程(IO从线程),这个IO线程开启了一个普通的客户端连接,这个连接会从主服务器的日志文件中读取事件,从服务器不会轮循去主服务器读取事件日志,而是等待有新事件发生时主服务器发出的信号,IO线程把事件写入到自己服务器的中继日志中。

3. 从服务器重放中继日志中事件,把更改写入自己的服务器

SQL从线程处理了最后的过程,SQL线程读取自己的中继日志,并且重放其中的事件,然后更新从服务器的数据。由于这个线程能跟上IO线程,中继日志通常都是在操作系统中缓存,所以中继日志的开销很低。SQL线程更新数据的事件也可以写入自己的二进制文件中。

 

复制扩扑:

1.主-从复制

2. 主-主复制

3. 有从服务器的主-主复制

4. 环

5. 金字塔