• MySQL主从复制


    MySQL主从复制

    什么是主从复制

    主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库。在赋值过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器。
    当一台从服务器连接到主服务器时,从服务器会通知主服务器从服务器的日志文件中读取最后一次成功更新的位置。然后从服务器会接收从哪个时刻起发生的任何更新,然后锁住并等到主服务器通知新的更新

    主从复制的作用

    做数据的热备
    作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。

    架构的扩展
    业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的评率,提高单个机器的I/O性能。

    读写分离
    使数据库能支持更大的并发。在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度。

    1–在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力;(主库写,从库读,降压)
    2–在从主服务器进行备份,避免备份期间影响主服务器服务;(确保数据安全)
    3–当主服务器出现问题时,可以切换到从服务器。(提升性能)

    MySQL主从复制原理

    主服务器在更新数据前,会写入硬盘,银盘在再将数据写入二进制日志

    从服务器开启I/O线程,Master节点为每个I/O线程启动一个dump线程用于发送二进制事件到从服务器的中继日志中

    从服务器的sql线程开启,读取中继日志,并将数据放入从服务器硬盘中,从而实现与主服务器的数据一致
    在这里插入图片描述

    MySOL主从复制模式

    异步复制(Asynchronous replication)
    MySQL默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库是否已经接收并处理,这样就会有一个问题,主如果crash掉了,此时主上已经提交的事务可能并没有传到从上,如果此时,强行将从提升为主,可能导致新主上的数据不完整。

    全同步复制(Fully synchronous replication)
    指当主库执行完一个事务,所有的从库都执行了该事务才返回给客户端。因为需要等待所有从库执行完该事务才能返回,所以全同步复制的性能必然会收到严重的影响。

    半同步复制(Semisynchronous replication)
    介于异步复制和全同步复制之间,主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到relay log中才返回给客户端。相对于异步复制,半同步复制提高了数据的安全性,同时它也造成了一定程度的延迟,这个延迟最少是一个TCP/IP往返的时间。所以,半同步复制最好在低延时的网络中使用。

    MySOL主从复制延迟的原因

    master服务器高并发,形成大量事务

    网络延迟

    主从硬件设备导致 cpu主频、内存io、硬盘io

    本来就不是同步复制、而是异步复制

    从库优化Mysql参数。比如增大innodb_buffer_pool_size,让更多操作在Mysql内存中完成,减少磁盘操作。从库使用高性能主机。包括cpu强悍、内存加大。避免使用虚拟云主机,使用物理主机,这样提升了i/o方

  • 相关阅读:
    DRF JWT认证(一)
    我打赌你以前从未使用过TypeScript的断言函数(译)
    trafilatura 网页解析原理分析
    【Overload游戏引擎细节分析】视图投影矩阵计算与摄像机
    网课没有摄像头,手机如何变成电脑摄像头?
    《舌尖上的中国》经典语录
    vuex为什么要存在?它与浏览器缓存的区别?
    Linux touch 命令使用介绍
    常见面试题-Redis专栏(二)
    计算机图形学:光线追踪(ray tracing)
  • 原文地址:https://blog.csdn.net/LIUKANGYYDS/article/details/128177099