zoukankan      html  css  js  c++  java
  • 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、(附加)数据库可设置一个用来远程访问的账户(%代表远程访问)

  • 相关阅读:
    leetcode刷题总结401-450
    leetcode刷题总结351-400
    马哥博客作业第六周
    马哥教育第一阶段考试
    马哥博客作业第四周
    马哥博客作业第三周
    马哥博客作业第二周
    马哥博客作业第一周
    马哥博客预习作业第三周
    马哥博客预习作业第二周
  • 原文地址:https://www.cnblogs.com/hoje/p/11944556.html
Copyright © 2011-2022 走看看