广告
返回顶部
首页 > 资讯 > 数据库 >一文详解MySQL Binlog日志与主从复制
  • 943
分享到

一文详解MySQL Binlog日志与主从复制

MySQL Binlog日志MySQL 主从复制 2022-11-13 13:11:04 943人浏览 安东尼
摘要

目录1. Binlog日志的介绍2. 主从复制2.1 主从复制的流程2.2 GTID2.3 复制模型2.4 MGR模式2.5 并行回放1. Binlog日志的介绍 Binlog是Bi

1. Binlog日志的介绍

Binlog是Binary log的缩写,即二进制日志。Binlog主要有三个作用:持久化时将随机io转化为顺序IO,主从复制以及数据恢复。本文重点主从复制相关的问题。

Binlog日志由一个索引文件与很多日志文件组成,每个日志文件由魔数以及事件组成,每个日志文件都会以一个Rotate类型的事件结束。

image.png

对于每个事件,都可以分为事件头与事件体两部分:

事件头的结构如下所示:

image.png

事件体的结构包括固定大小与可变大小两部分。

对于Binlog日志的格式,做简单的了解即可,感兴趣的同学可以深入学习

2. 主从复制

2.1 主从复制的流程

image.png

MySQL主从复制的流程大致如下:

  • 主库同步自己的Binlog日志给从库
  • 从库的IO线程将Binlog日志内容写入Relay Log
  • 从库的sql线程取Relay Log并在数据库中进行回放

2.2 GTID

GTID是指全局事务标志,用来标记主从同步的情况。

master提交一个事务时会产生GTID,并且记录在Binlog日志中。从库的IO线程在读取Binlog日志时,会将其储存在自己的Relaylog中,并且将这个值设置到gtid_next中,即下一个要读取的GTID,从库读取这个gtid_next时,会对比自己的Binlog日志中是否有这个GTID:

  • 如果有这个记录,说明这个GTID的事务已经执行过了,可以忽略掉(幂等)。
  • 如果没有这个记录,slave就会执行该GTID事务,并记录到自己的Binlog日志中。

2.3 复制模型

  • 异步复制:master 把Binlog日志推送给slave,master不需要等到slave是否成功更新数据到Relay log,主库直接提交事务即可。这种模式牺牲了数据一致性。
  • 同步复制:每次用户操作时,必须要保证Master和Slave都执行成功才返回给用户。
  • 半同步复制:不要求Slave执行成功,而是成功接收Master日志就可以通知Master返回。

image.png

2.4 MGR模式

分布式一致性算法Paxos。由至少3个或更多个节点共同组成一个数据库集群,事务的提交必须经过半数以上节点同意方可提交提供,支持多写模式。

MGR 是 share-nothing 的复制方案,基于分布式paxos协议实现,每个实例都有独立的完整数据副本,集群自动检查节点信息,做数据的同步。同时提供单主模式和多主模式,单主模式在主库宕机后能够自动选主,所有写入都在主节点进行,多主模式支持多节点写入。同时集群提供冗余的容错功能,保证集群大多数节点正常集群就可以正常提供服务。

2.5 并行回放

事务回放是从库的SQL线程执行Relay Log的过程,并行回放是为了提高这一过程的效率,将可以并行进行的事务同时进行。

  • 基于逻辑时钟的并行回放

因为Mysql本身事务具有ACID的特点,所以从主库同步到从库的事务,只要其执行的逻辑时间上有重叠,那么这两个事务就能安全的进行并行回放。

  • 基于writeSet的并行回放

使用一个HashMap保存一定时间内针对某一块数据区域的事务的集合。如果事务在同一组内或者是逻辑时钟有重叠,说明没有冲突,其他情况不能确定是否有冲突。

到此这篇关于一文详解mysql Binlog日志与主从复制的文章就介绍到这了,更多相关MySQL Binlog日志内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: 一文详解MySQL Binlog日志与主从复制

本文链接: https://www.lsjlt.com/news/171273.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 一文详解MySQL Binlog日志与主从复制
    目录1. Binlog日志的介绍2. 主从复制2.1 主从复制的流程2.2 GTID2.3 复制模型2.4 MGR模式2.5 并行回放1. Binlog日志的介绍 Binlog是Bi...
    99+
    2022-11-13
    MySQL Binlog日志 MySQL 主从复制
  • mysql binlog 日志详解及恢复
    一、binlog概述 binlog是Mysql sever层维护的一种二进制日志,与innodb引擎中的redo/undolog是完全不同的日志; 其主要是用来记录对mysql数据更新或潜在发生更新的SQL语句,并以"事务"的形式保存在磁盘...
    99+
    2023-09-07
    mysql 数据库
  • mysql主从复制配置(日志点)
            一些mysql版本并不会开启二进制日志,所以一定要检查是否开启。如果一开始没开启,在以后需要开启,则必须重启数据库服务器,而数据库服务器重启会对业务造成很大影响。所以,尽管二进制日志会对性能...
    99+
    2022-10-18
  • Mysql主从复制与读写分离图文详解
    文章思维导图 为什么使用主从复制、读写分离 主从复制、读写分离一般是一起使用的。目的很简单,就是为了提高数据库的并发性能。 你想,假设是单机,读写都在一台MySQL上面完成,性...
    99+
    2022-11-11
  • MySQL主从复制详解
    ①主服务器将所有数据和结构更改记录到二进制日志中。 ②从属服务器从主服务器请求该二进制日志并在本地应用其内容。 ③IO:请求主库,获取上一次执行过的新的事件,并存放到relaylog ④SQL:从relaylog中将sql语句翻译给从...
    99+
    2017-03-30
    MySQL主从复制详解
  • mysql日志文件General_log和Binlog开启及详解
    目录背景:General_log 详解1.介绍2.开启数据库general_log步骤Binlog 详解1.介绍2.开启binlog日志3.常用binlog日志操作命令4.mysqlbinlog命令使用5.binlog的...
    99+
    2022-07-11
    mysql general_log MySQL 日志文件 binlog日志记录格式
  • MySQL 主从复制原理与实践详解
    本文实例讲述了MySQL 主从复制原理与实践。分享给大家供大家参考,具体如下: 简介 MySQL 的主从复制又叫 Replication、AB 复制。至少需要两个 MySQL 服务(可以是同一台机器,也可以是不同机器...
    99+
    2022-05-11
    MySQL 主从复制
  • mysql基于日志的主从复制是什么
    这篇文章主要介绍了mysql基于日志的主从复制是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。       ...
    99+
    2022-10-18
  • MySQL恢复:使用从库备份,主库binlog,从库中继日志恢复数据库
    小生博客:http://xsboke.blog.51cto.com -------谢谢您的参考,如有疑问,欢迎交流 环境说明: mysql主从复制,主库A宕机,将从...
    99+
    2022-10-18
  • Mysql如何通过binlog日志恢复数据详解
    目录前言方法如下总结前言 MySQL的binlog日志是MySQL日志中非常重要的一种日志,记录了数据库所有的DML操作。通过binlog日志我们可以进行数据库的读写分离、数据增量备...
    99+
    2022-11-13
  • MySQL三大日志(binlog、redo log和undo log)图文详解
    目录1.redo logredo log概述刷盘时机innodb_flush_log_at_trx_commit=0innodb_flush_log_at_trx_commit=1innodb_flush_log_at_...
    99+
    2023-01-28
    mysql日志binlog MySQL日志类型 MySQL redo log
  • MySQL三大日志(binlog、redo log和undo log)图文详解
    目录1.redo logredo log概述刷盘时机innodb_flush_log_at_trx_commit=0innodb_flush_log_at_trx_commit=1i...
    99+
    2023-01-28
    mysql日志binlog MySQL日志类型 MySQL redo log
  • MySQL主主复制(图文详解)
    一、实现原理主主复制即在两台MySQL主机内都可以变更数据,而且另外一台主机也会做出相应的变更。聪明的你也许已经想到该怎么实现了。对,就是将两个主从复制有机合并起来就好了。只不过在配置的时候我们需要注意一些...
    99+
    2022-10-18
  • 一篇文章看懂MySQL主从复制与读写分离
    目录引言一、MySQL主从复制1、MySQL的复制类型2、MySQL主从复制的原理3、MySQL主从复制延迟二、MySQL读写分离1、常见的 MySQL 读写分离分2、MySQL 读...
    99+
    2022-11-12
  • 一文详解MySQL主从同步原理
    目录1. mysql主从同步实现方式2. MySQL主从同步的作用一主多从架构双主多从架构3. 主动同步的原理4. 主从同步延迟问题主从同步延迟的原因有哪些?主从同步延迟的解决方案?5. 如何提升主从同步性能从库开启多线...
    99+
    2022-08-16
    MySQL主从同步原理 MySQL主从同步
  • 详解MySQL主从复制及读写分离
    目录前言一、相关概述二、读写分离三、MySQL主从复制实验部署四、MySQL读写分离实验前言 在企业实际应用中,成熟的业务通常数据量都比较大,而单台MySQL服务器在安全性、高可用性...
    99+
    2022-11-12
  • MySQL主从复制与读写分离原理及用法详解
    本文实例讲述了MySQL主从复制与读写分离原理及用法。分享给大家供大家参考,具体如下: 主从复制 概念 影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中。 假设,实时的将变化了的...
    99+
    2022-10-18
  • Mysql主从复制作用和工作原理详解
    一、什么是主从复制 主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。在最常用的mysql数据库中,支持单项、异步赋值。在赋值过程中,一个服务器充当主服...
    99+
    2022-10-18
  • 如何理解MySQL复制技术中的一主多从
    这期内容当中小编将会给大家带来有关如何理解MySQL复制技术中的一主多从,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。MySQL复制技术之一主多从   ...
    99+
    2022-10-19
  • MySQL主从复制数据不一致的解决方法
    目录1. 准备工作1.1 主机配置1.2 从机配置2. 数据不一致问题3. 原因分析4. 问题解决5. 小结今天来说说 MySQL 主从复制数据不一致的问题,通过几个具体的案例,来向...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作