MySQL数据库主从同步

一、主从同步的原因


 

   为了减轻服务器处理海量并发访问所产生的性能问题,其中最主流的方案之一就是读写分离。

二、MySQL主从同步流程图


                       

三、主从库如何同步


 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中的数据一致

                                                                      

四、为什么需要中继日志(Relay log)


 由于网络等原因,Binary log不可能一口气存到 I/O thread中,所以Relay log中用来缓存Binary log的事件。(Relay log存储在从服务器slave缓存中,开销比较小)

五、需要注意的点


  • master和slave连接,slave会在master中打开一个连接,使得master也开始一个线程;
  • 复制在slave上是串行化的,即master上的并行更新操作不能在slave上并行操作

六、主从同步优点


  •   主库写,从库读,降低服务器压力;
  •   在从主服务器进行备份,避免备份期间影响主服务器服务,保证数据安全;
  •   当主服务器出现问题时,可以切换到从服务器,提高性能

七、主从同步数据库设置


1、连接上MySQL

 2、在主服务器Master中做相关配置

设置server-id,log-bin,log-bin-index

重启主服务器数据库

show master status

创建repl账户并赋给权限,并刷新

3、从服务器进行相关配置

修改配置文件

设置server-id,relay-log-index,relay-log

重启从服务器数据库

进行设置

start slave

show slave status (/G,将内容竖向显示)

4、验证

主库File和position与从库一致,则证明主从同步了

5、(附加)数据库可设置一个用来远程访问的账户(%代表远程访问)

原文地址:https://www.cnblogs.com/hoje/p/11944556.html