详解
1、 Master主服务器将对数据的操作记录到二进制日志中(Binary log),MySQL将事务串行(交叉执行)的写入二进制日志;
2、Slave从服务器将二进制日志(Binary log)copy到中继日志当中(Relay log)。首先,slave开始一个工作线程——I/O线程。
- slave开始一个工作线程——I/O线程。I/O线程在master上打开一个普通的连接;
- 开始binlog dump process;
- 如果binlog dump process已经跟上master,它会睡眠并等待master产生新的事件。
- I/O线程将这些事件写入中继日志;
- SQL slave thread(SQL从线程)从中继日志读取事件,并重放其中的事件而更新slave的数据,使其与master中的数据一致
由于网络等原因,Binary log不可能一口气存到 I/O thread中,所以Relay log中用来缓存Binary log的事件。(Relay log存储在从服务器slave缓存中,开销比较小)
注意
由于网络等原因,Binary log不可能一口气存到 I/O thread中,所以Relay log中用来缓存Binary log的事件。(Relay log存储在从服务器slave缓存中,开销比较小)
优点
- 主库写,从库读,降低服务器压力;
- 在从主服务器进行备份,避免备份期间影响主服务器服务,保证数据安全;
- 当主服务器出现问题时,可以切换到从服务器,提高性能
操作
主服务配置
连接上MySQL
在主服务器Master中做相关配置
设置server-id,log-bin,log-bin-index
重启主服务器数据库
show master status
创建repl账户并赋给权限,并刷新
从服务器配置
修改配置文件
设置server-id,relay-log-index,relay-log
重启从服务器数据库
进行设置
start slave
show slave status (/G,将内容竖向显示)
验证
主库File和position与从库一致,则证明主从同步了