MySQL数据库的主从复制

本文介绍了MySQL数据库的主从复制,包括复制的概念、类型(基于语句、基于行、混合类型),主从数据库的区别,主从部署的必要条件,以及MySQL主从复制的基本过程,强调了主从复制在提升数据库并发负载能力和实现高可用性上的作用。
摘要由CSDN通过智能技术生成

一、主从复制概念

1、
在实际的生产环境中,对数据库的读和写都在同一个数据库服务器中,是不能满足实际需求的。

无论是在安全性、高可用性还是高并发等各个方面都是完全不能满足实际需求的。

因此,通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力。

用于实现灾备、读写分离、数据备份。
●实时灾备,用于故障切换
●读写分离,提供查询服务
●备份,避免影响业务

主从复制可以水平扩展数据库的负载能力,容错,高可用,数据备份。

2、
主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中。

对于多级复制,数据库服务器既可充当主机,也可充当从机。

主从复制是依赖于二进制日志的,“实时”备份的一个多节点架构。

MySQL 主从复制的基础是主服务器对数据库修改记录二进制日志,从服务器通过主服务器的二进制日志自动执行更新。

二、主从复制的类型

1、基于语句的复制:
主服务器上面执行的语句在从服务器上面再执行一遍
存在的问题:时间上可能不完全同步造成偏差,执行语句的用户也可能不是同一个用户。

2、基于行的复制:
把主服务器上面改编后的内容直接复制过去,而不关心到底改变该内容是由哪条语句引发的存在的问题:比如一个工资表中有一万个用户,我们把每个用户的工+1000,那么基于行的复制则要复制一万行的内容,由此造成的开销比较大,而基于语句的复制仅仅一条语句就可以了。

3、混合类型的复制:
MySQL默认使用基于语句的复制,当基于语句的复制会引发问题的时候就会使用基于行的复制,MySQL会自动进行选择。

三、主从数据库的区别

参考博客:Mysql主从基本原理,主要形式以及主从同步延迟原理 (读写分离)导致主库从库数据不一致问题的及解决方案

1、
从数据库(Slave)是主数据库的备份,当主数据库(Master)变化时从数据库要更新,这些数据库软件可以设计更新周期。

这是提高信息安全的手段。
主从数据库服务器不在一个地理位置上,当发生意外时数据库可以保存。

2、
其中Master负责写操作的负载,也就是说一切写的操作都在Master上进行。

而读的操作则分摊到Slave上进行。这样一来的可以大大提高读取的效率。

写操作涉及到锁的问题,不管是行锁还是表锁还是块锁,都是比较降低系统执行效率的事情。我们这样的分离是把写操作集中在一个节点上,而读操作在其他的N个节点上进行,从另一个方面有效的提高了读的效率,保证了系统的高可用性。

四、主从部署必要条件

●主库开启binlog日志(设置log-bin参数)
●主从server-id不同
●从库服务器能连通主库

五、MySQL的主从复制

mysql主从复制是对数据库中的数据、语句做备份。

1、
MySQL 主从复制的两种情况:同步复制和异步复制,实际复制架构中大部分为异步复制。

2、复制的基本过程:
Mysql的主从同步就是当master(主库)发生数据变化的时候,会实时同步到slave(从库)。
不管是delete、update、insert,还是创建函数、存储过程,都是在master上,当master有操作的时候,slave会快速的接收到这些操作,从而做同步。

1)Slave 上面的 IO 进程连接上 Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容。

2)Master 接收到来自 Slave 的 IO 进程的请求后,负责复制的 IO 进程会根据请求信息读取日志指定位置之后的日志信息,返回给 Slave 的 IO 进程。

返回信息中除了日志所包含的信息之外,还包括本次返回的信息已经到 Master 端的 bin-log 文件的名称以及 bin-log 的位置。

3)Slave 的 IO 进程接收到信息后,将接收到的日志内容依次添加到 Slave 端的 relay-log 文件的最末端,并将读取到的 Master 端的 bin-log 的文件名和位置记录到 master-info 文件中,以便在下一次读取的时候能够清楚的告诉 Master“我需要从某个 bin-log 的哪个位置开始往后的日志内容,请发给我”。

4)Slave 的 Sql 进程检测到 relay-log 中新增加了内容后,会马上解析 relay-log 的内容成为在 Master 端真实执行时候的那些可执行的内容,并在自身执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值