mysql主从数据库

MySQL主从数据库实现读写分离,提升读取效率,用于数据备份、高可用和实时灾备。主从同步涉及statement、row和mixed三种粒度的复制方式,通过binlog传递数据变化。主从延迟问题主要是由于单线程处理和高并发导致,可通过架构调整、硬件升级、同步参数优化等方式解决。半同步复制和并行复制技术进一步提高数据一致性和性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、主从数据库的区别

从数据库(Slave)是主数据库的备份,当主数据库(Master)变化时从数据库要更新,这些数据库软件可以设计更新周期。这是提高信息安全的手段。主从数据库服务器不在一个地理位置上,当发生意外时数据库可以保存。

(1) 主从分工

其中Master负责写操作的负载,也就是说一切写的操作都在Master上进行,而读的操作则分摊到Slave上进行。这样一来的可以大大提高读取的效率。在一般的互联网应用中,经过一些数据调查得出结论,读/写的比例大概在 10:1左右 ,也就是说大量的数据操作是集中在读的操作,这也就是为什么我们会有多个Slave的原因。但是为什么要分离读和写呢?熟悉DB的研发人员都知道,写操作涉及到锁的问题,不管是行锁还是表锁还是块锁,都是比较降低系统执行效率的事情。我们这样的分离是把写操作集中在一个节点上,而读操作其其他的N个节点上进行,从另一个方面有效的提高了读的效率,保证了系统的高可用性。

(2) 基本过程
1)、Mysql的主从同步就是当master(主库)发生数据变化的时候,会实时同步到slave(从库)。
2)、主从复制可以水平扩展数据库的负载能力,容错,高可用,数据备份。

3)、不管是delete、update、insert,还是创建函数、存储过程,都是在master上,当master有操作的时候,slave会快速的接受到这些操作,从而做同步。

(3) 用途和条件
1)、mysql主从复制用途
  ●实时灾备,用于故障切换
  ●读写分离,提供查询服务
  ●备份,避免影响业务
2)、主从部署必要条件:
  ●主库开启binlog日志(设置log-bin参数)
  ●主从server-id不同
  ●从库服务器能连通主库

 

二、主从同步的粒度、原理和形式:

(1)、 三种主要实现粒度
详细的主从同步主要有三种形式:statement、row、mixed
 1)、statement: 会将对数据库操作的sql语句写道binlog中
 2)、row: 会将每一条数据的变化写道binlog中。
   3)、mixed: statement与row的混合。Mysql决定何时写statement格式的binlog, 何时写row格式的binlog。

(2)、主要的实现原理、具体操作、示意图

1)、在master机器上的操作:
   当master上的数据发生变化时,该事件变化会按照顺序写入bin-log中。当slave链接到master的时候,master机器会为slave开启binlog dump线程。当master的binlog发生变化的时候,bin-log dump线程会通知slave,并将相应的binlog内容发送给slave。
2)、在slave机器上操作:

   当主从同步开启的时候,slave上会创建两个线程:I\O线程。该线程连接到master机器,master机器上的binlog dump 线程会将binlog的内容发送给该I\O线程。该I/O线程接收到binlog内容后,再将内容写入到本地的relay log;sql线程。该线程读取到I/O线程写入的ralay log。并且根据relay log。并且根据relay log 的内容对slave数据库做相应的操作。

3)、MySQL主从复制原理图如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值