MySQL复制 -- 实现

一.概述

复制是建立在主机服务器上,主机服务器在二进制日志中记录数据库的各种更改。二进制日志作为一个可写服务,可以记录数据库从启动开始所做的数据结构或内容的修改。

通常,select语句不被记录,因为它不修改数据结构或内容。每一个Slave连接Master,请求二进制日志的拷贝版。换句话说,Slave从Master上拉取数据。而不是Master推送数据到Slave。

Slave执行二进制日志中的事件。

 

二.复制实现的细节

MySQL复制能力通过三个线程来实现,一个在主机服务器上,另外两个在slave服务器上。

1.Binlog dump thread

主机创建一个线程去发送二进制日志给slave机,可以通过show processlist指令查看。这二进制dump线程接收一个锁,为了读取将要每一个将要发送给slave的事件。之后,事件就被读取,锁被释放.

 

2.Slave I/O thread

当一个START_SLAVE语句在Slave服务器上被发出的时候,Slave机子创建一个I/O线程,连接Master机,要求它发送它更新的二进制日志中的更新记录。

 

 

3.Slave SQL thread

 

三.服务器如何评估复制过滤规则

1.数据库级别的复制评估和二进制日志选项

2.表级别的

3.复制规则应用

 

四.复制转发和状态日志

1.slave转发日志

2.slave状态日志

 

五.

 

 

posted @ 2018-12-23 19:36  san3er  阅读(80)  评论(0)    收藏  举报