MySQL- 复制(一)
复制原理:
总体来说 复制有3个步骤:
1. 主数据库服务器把更改的数据记录到本地的二进制日志文件中(二进制事件日志 Binary log Events)
在主服务器上记录二进制日志文件,在每个更新数据的事务完成之前,主服务器都会把数据更改记录到二进制文件中。
2. 从服务器把主服务器的二进制日志文件拷贝到自己的中继日志(Replay)中
从服务器把主服务器的二进制日志拷贝到自己的硬盘上,进入“中继日志”过程。首先启动一个工作线程(IO从线程),这个IO线程开启了一个普通的客户端连接,这个连接会从主服务器的日志文件中读取事件,从服务器不会轮循去主服务器读取事件日志,而是等待有新事件发生时主服务器发出的信号,IO线程把事件写入到自己服务器的中继日志中。
3. 从服务器重放中继日志中事件,把更改写入自己的服务器
SQL从线程处理了最后的过程,SQL线程读取自己的中继日志,并且重放其中的事件,然后更新从服务器的数据。由于这个线程能跟上IO线程,中继日志通常都是在操作系统中缓存,所以中继日志的开销很低。SQL线程更新数据的事件也可以写入自己的二进制文件中。
复制拓扑:
1.主-从复制
2. 主-主复制
3. 有从服务器的主-主复制
4. 环
5. 金字塔
Andy_能力越到责任越大