MySQL主从复制原理

本文来详细说下Mysql主从复制原理。


概述

主从复制是MySQL本身自带的一个功能,不需要额外的第三方软件就可以实现。可实现功能:数据备份、故障转移、MySQL集群、高可用、读写分离等功能。

在这里插入图片描述


主从复制的好处

主从复制的好处

  • 数据更安全:做了数据冗余,不会因为单台服务器的宕机而丢失数据
  • 性能大大提升:一主多从,不同用户从不同数据库读取,性能提升
  • 扩展性更优:流量增大时,可以方便的增加从服务器,不影响系统使用
  • 负载均衡:一主多从相当于分担了主机任务,做了负载均衡。

主从复制实现原理

把主服务器上的binLog日志(记录数据的增删改和授权等写操作行为)复制到从服务器上执行一遍,这样从服务器上的数据就和主服务器上的数据相同了。具体步骤如下所示

  • a、主库有写操作时,会将日志信息写到binlog中
  • b、主库启用新线程log dump线程,从库启用新的io线程,这两个线程保持着长连接
  • c、当binlog有变动时,log dump线程会将数据推给从数据库的io线程
  • d、io线程获得binlog后写到relay log(中继日志)中,由sql独立线程完成数据库的写操作。

在这里插入图片描述


主从复制的类型

类型说明
基于SQL语句的复制【STATEMENT模式(SBR)】在主服务器上执行sql语句,在从服务器上执行同样的语句。优点是并不需要记录每一条sql语句和每一行的数据变化,减少了binlog日志量,节约IO,提高性能。缺点是在某些情况下会导致master-slave中的数据不一致(如sleep()函数,last_insert_id(),以及user-defined functions(udf)等会出现问题)。mysql默认采用基于语句的复制,执行效率高。
基于行的复制【ROW模式(RBR)】把改变的内容复制过去,而不是把命令在从服务器上执行一遍。缺点是会产生大量的日志,尤其是alter table的时候会让日志暴涨。
混合类型的复制【MIXED模式(MBR)】默认采用基于语句的复制,一旦发现基于语句无法精确复制时,就会采用基于行的复制

本文小结

本文介绍了mysql主从复制的基本原理,下文介绍主从复制会出现什么问题,以及如何取解决这些问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值