目录

概念

好处

流程

        主节点 binary log dump 线程

        从节点IO线程

        从节点SQL线程

注意

主从同步模式

异步复制

全同步复制

半同步复制


概念

MySQL主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点

建立一个和主数据库(参照物)完全一样的数据库环境,称为从数据库;主数据库一般是准实时的业务数据库。

好处

        1.可以对数据进行热备份,作为后辈数据库,祝数据库服务器故障后,可以切换到从数据库继续工作,避免数据库宕机的损失

        2.随着业务量增大,IO频率过高,单机无法满足,促使多库存储,降低磁盘IO的访问频率,提高IO性能

        3.读写分离,在开发工作中,有时候会遇见某个sql 语句需要锁表,导致暂时不能使用读的服务,这样就会影响现有业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。

流程

MySQL主从复制建立在三个线程之上,分别为

        主节点 binary log dump 线程

                负责将主数据库更新后的binlog日志内容发送到从数据库,在读取操作的时候,线程会对binlog上锁,当读取完成后,锁会被释放

        从节点IO线程

                接收主节点 binary log dump 线程发送的binlog日志内容,将其写入到relay log(中继日志)中

        从节点SQL线程

                负责读取relay log中的内容,解析成具体的操作并执行,最终保证主从数据的一致性

mysql主从备份性能 mysql主从备份原理_mysql主从备份性能

注意

        主节点使用binlog问价+position偏移量来定位主从同步的位置,从节点会保存其已接收到的偏移量,下次会从偏移量的位置进行同步,相当于每次都是增量同步,不是全量同步

主从同步模式

异步复制

        MySQL的默认方式,主库把日志发送给从库后不管从库是否已经接收并处理,这样的效率比较高,但是一旦主库宕机,从库处理失败,这时候从库转换为主库,就会产生日志丢失,导致数据丢失

全同步复制

        主库写入binlog后强行同步到从库,所有从库都执行完后才会返回给客户端,这种方式稳定性高,但是性能会收到严重影响

半同步复制

        和全同步不同的是,从库写入日志成功后返回ACK确认给主库,主库收到至少一个从库的确认就会认为写操作完成