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状态日志
五.

浙公网安备 33010602011771号