美文网首页
浅析Mysql主从复制

浅析Mysql主从复制

作者: 封心_SH | 来源:发表于2019-10-14 19:37 被阅读0次

我们先从什么是主从复制说起。

什么是主从复制

简单来说,就是创建一个和主数据库一样的数据库,称为从数据库,从数据库同步主数据库中的数据,两者完整且独立。

为什么要主从复制

在业务比较简单的系统中,一台服务器基本能完成日常需求。但很多时候,系统和用户的规模都比较大,大量请求如果都集中在一台MySQL服务器上,磁盘I/O的频率较高,导致系统的性能急剧下降。

使用主从复制,让主(master)数据库写,从(slave)数据库读,即读写分离,这样slave可以分担master的压力,降低单台机器的I/O频率,提升系统的性能。

另外,slave同步master的数据,一旦master因故障宕机,slave可以临时替代master的位置,降低系统瘫痪的风险。


怎样进行主从复制

在介绍主从复制原理之前,先了解一下MySQL的binlog文件。

binlog是MySQL中一个二进制日志文件,专门用于记录除了select和show之外的任何使数据发生变化的sql语句,如create、alter、insert、delete等。一旦服务器启动,binlog文件就会进行记录。

主从复制分以下几个步骤:

①主库的更新操作被记录到binlog文件中;

②从库连接主库;

③主库开启binlog dump线程,将binlog文件内容传输到从库;

④从库创建I/O线程,将主库的binlog内容存进relay log文件中;

⑤从库同时又创建一个SQL进程,读取并执行relay log文件中的更新操作,并将更新内容写入从库。

可以看到,在主从复制的整个流程中,主库开启了一个线程,从库开启了两个线程。

但是请注意,主从复制是一个异步过程,所以并不是按照上述这个步骤逐步进行的。
下面是主从复制的原理图:


MySQL主从复制确实能带来很多好处,但是也伴随着一个常见问题:从库读延迟怎么办?
可能有读者不太理解这个问题是什么意思,我们详细说下。

slave开启SQL线程执行binlog中的更新操作(DDL和DML)时,DDL和DML的执行是随机的,且是单线程的(master可以并发),那么就有可能在与其它查询语句争夺时“卡住”,后面的语句就需要等它执行完才能执行,这样就造成延迟,降低了主从库的数据一致性和实时性。

相应地也有一些解决办法,如关闭从库的binlog,更换更好的从库硬件设备等,具体问题具体对待,且笔者在此方面并无经验,就不展开了。

以上是对MySQL主从复制做的一个浅析,其实还有很多问题等待解决,欢迎各位深入学习。

———— / END / ————



相关文章

  • MySQL如何配置主从复制,如何修复主从复制出现的异常?

    MySQL如何配置主从复制,如何修复主从复制出现的异常? 一、什么是Mysql主从复制 MySQL主从复制是其最重...

  • 浅析Mysql主从复制

    我们先从什么是主从复制说起。 什么是主从复制 简单来说,就是创建一个和主数据库一样的数据库,称为从数据库,从数据库...

  • MySQL-主从复制&读写分离

    零、本文纲要 一、MySQL主从复制 主从复制 主从复制过程 配置主从复制 二、MySQL读写分离 读写分离 Sh...

  • Mysql 主从复制

    Mysql 主从复制 MySQL Replication 主从复制(也称 AB 复制)允许将来自一个MySQL数据...

  • 主从复制 & MHA

    一,mysql主从复制 (1)场景一(主从复制 _ 全新环境下) (2)场景二(主从复制 _ mysql已经使用一...

  • mysql主从复制

    构建MySQL主从复制 MySQL的主从复制和mysql的读写分离两者有着紧密联系,数据的读写分离实在主从复制的基...

  • MYSQL主从复制gtid浅析

    Gtid概念 从 MySQL 5.6.5 开始新增了一种基于 GTID 的复制方式。通过 GTID保证了每个在主库...

  • Spring Data JPA 使用主从数据源

    Mysql 配置主从复制 参考:Mysql主从复制-半同步复制[https://www.jianshu.com/p...

  • MySQL集群篇

    1 集群之主从复制 1.1 主从复制概述 MySQL主从复制也可以称为MySQL主从同步,它是构建数据库高可用集群...

  • 深度探索MySQL主从复制原理

    概要 MySQL Replication (MySQL 主从复制) 是什么? 为什么要主从复制以及它的实现原理是什...

网友评论

      本文标题:浅析Mysql主从复制

      本文链接:https://www.haomeiwen.com/subject/cwkdmctx.html