mysql(二)

MySQL主从复制通过binlog实现数据同步,确保高可用和备份。主库记录所有更改,从库接收并应用这些更改以保持一致。读写分离提升并发能力,降低数据库压力,同时提供数据热备份。主从复制涉及binlog传输、中继日志处理及多个线程协同工作。在面临延迟、故障时,该机制能保证服务连续性。
摘要由CSDN通过智能技术生成

Mysql主从复制

binlog日志

记录所有更改的语句,可以从用于主从服务器之间的数据同步,以及服务器遇到的故障数据的无损修复

  1. 用于数据的恢复,如果Mysql数据库意外停止的话,可以通过二进制日志来查看用户执行了哪些操作,对数据库服务器文件做了哪些修改,然后根据二进制文件中的记录来恢复数据库服务器
  2. 数据的复制,由于日志的延伸性和时效性,master把二进制日志传递给slaves来达到 主从数据一致的目的
    mysql的数据备份,主备,主主,主从,都离不开binlog,需要依赖binlog来同步数据,保证数据的一致性

中继日志(relay log)介绍

中继日志只在主从服务器架构的从服务器上存在,从服务器为了与主服务器保持一致,要从主服务器读取二进制binlog日志的内容,并且把读取到的信息写入到本地日志文件中,这个从服务器本地的日志文件就叫做中继日志,然后从服务器读取中继日志,并且根据中继日志的内容对从服务器的数据进行更新,完成主从服务器的数据的同步,中继日志和二进制日志的格式相同

如何提高数据库的并发能力

在实际的工作中,我们常常将redis作为缓存和Mysql进行配合使用当有请求的时候,会先从reids中进行查找,如果存在就直接取出,如果不存在然后访问数据库,这样就提高了读取的效率,降低了数据库的压力,redis的缓存架构是高并发中非常重要的一环
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9chdU05P-1661326359508)(./2022-05-07-19-10-43.png)]
此外,一般应用对于的数据库而言,都是读多写少,数据库的读取压力比较的大,因此的话,可以采用集群的方案,做主从架构,进行读写分离,这样可以提高数据库的并发处理能力,但是设计架构本身是有一定成本的,如果我们的目的在于提高数据库高并发访问的效率,应该首先考虑的是如何优化sql和索引,其次才是缓存策略,比如使用redis将热点数据保存在内存数据库当中,提高读取的效率,最后才是主从架构,读写分离

主从复制的作用

主从复制的设计不仅可以提高数据库的吞吐量,还有以下的作用

  1. 读写分离
    我们可以通过主从复制的方式来同步数据,然后通过读写分离提高数据库的并发处理能力
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-56iN4z25-1661326359509)(img/2022-05-07-20-46-09.png)]
    其中一个是master主库,负责写数据,我们称为写库
    其他的都是slave从库,负责读取数据,我们称为读库
    当主库更新的时候,会自动的将数据复制到从库中,而我们在读取数据的时候,是在从库中进行读取的,在面对读多写少的需求的时候,读写分离的方式可以实现更高的并发访问,还可以对服务器进行负载均衡,让不同的请求策略均匀的发送到不同的服务器上,让读取更加的顺畅,减少了锁表的影响,主库出现写锁的时候,不会影响从库进行读取.

  2. 数据的备份
    通过主从复制将主库中的数据复制到了从库上,相当于是一种热备份机制,在主库正常的情况下进行备份,不会影响到服务

  3. 高可用
    数据的备份就是一种冗余的机制,通过这种冗余的方式,可以换取数据库的高可用性,也就是当服务器出现故障或者宕机的时候,可以切换主从服务器,然后保证服务器的正常运行

主从复制的原理

slave 会从Master读取binlog来进行数据的同步
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eqvUQJRe-1661326359510)(img/2022-05-07-21-04-39.png)]
实际上主从复制的原理是基于binlog进行数据同步的,在主从复制的过程中,会有三个线程来操作,一个主库线程,两个从库线程
主库线程:
二进制日志转储线程
从库线程:
从库I/O线程
从库SQL线程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9vLH4CrQ-1661326359510)(img/2022-05-07-21-08-51.png)]

主从复制的步奏

  1. master将写操作记录到二进制日志中,传输到从服务器
  2. slave接收master传输的bin.log文件,将其转化为二进制的中继日志
  3. slave重新的读取中继日志中的事件,将其改变同步到自己的数据库中

主从复制的问题和原则

  1. 主从复制的最大问题是 延时
  2. 每个slave只有一个master
  3. 每个slave只能有一个唯一的服务器id
  4. 每个master可以有多个slave
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值