首页 > 其他分享 >GDIT的用法总结

GDIT的用法总结

时间:2024-08-08 14:28:08浏览次数:12  
标签:总结 binlog 事务 数据库 用法 GTID 服务器 GDIT

GDIT的用法

从 MYSQL 的主从复制讲起

在Mysql中, 我们部署一个数据库的时候往往会有多个服务器, 我们称之为服务器的拓朴结构. 在主从复制(Replication)环境中, 通常主服务器(Master)负责处理写操作以及事务的生成与提交. 主服务器会将对服务器的操作记录到binlog中, 当事务开始执行的时候, MYSQL会在内存中暂存事务的操作, 这些操作不会写入binlog中, 只有事务完成所有操作并提交后, MySQL会将该事务的所有变更记录写入binlog.

在主从复制的数据库拓扑结构中, 主服务器(Master)写入binlog, 从服务器(Slave)根据主服务器记录的binlog重放事务, 也就说对主服务器所作的操作都在从服务器上回放一遍.
下图是MYSQL主从服务器复制的原理:

  1. 对主服务器提交的一个事务, 在事务开始执行时会生成事务的全局ID, 也就是 GDIT
  2. 事务执行完之后, 事务commit之后, 会将事务的操作写入binlog文件中, 格式为SQL语言.
  3. 主服务器(Master)的logdump Thread线程会不断地将数据从主服务器发送方到从服务器(Slave).
  4. 从服务器(Slave)的 I/O thread 线程会将收到的binlog信息写入到中继日志Relay Log文件中.
  5. 从数据库端(Slave)的SQL线程从中继日志中获取GTID号, 然后对比从数据库本地的Binlog查看其是否有记录. 如果有记录, 则说明该GTID的事务已经执行, 此时从数据库会忽略.
  6. 如果没有记录, 则从数据库就会从中继日志中获取数据并执行该GTID的事务, 并记录到binlog中. 根据GTID号可以知道事务最初是在哪个数据库上提交的, GTID的存在方便了主从复制的宕机切换(failover).

MYSQL官方网站对GDIT的介绍如下:

A global transaction identifier (GTID) is a unique identifier created and associated with each transaction committed on the server of origin (the source). This identifier is unique not only to the server on which it originated, but is unique across all servers in a given replication topology.

所以简单来说GDIT可以看做是事务的唯一 identifier, 在数据库的拓扑结构中仍然保持唯一.
当一个事务执行完后, 被提交到主服务器的时候, 只要事务被写入二进制日志(binlog)该事务会被分配一个GDIT, GDIT分配时保连续递增.
不会分配GDIT的情况:

  1. 一个事务没有被写入binlog文件, 例如读事务, 或者该事务被筛选掉了.

主从复制的复制事务使用与主服务器上相同的GDIT. 从服务器(Slave) 通常不会写binlog,虽然它有自己的binlog文件, 即使会写binlog, 从服务器仍然会使用和主服务器相同的GDIT.

标签:总结,binlog,事务,数据库,用法,GTID,服务器,GDIT
From: https://www.cnblogs.com/wevolf/p/18348897

相关文章

  • 太强!盘点固态功率放大器SSPA冷知识,总结了半天终于消化了
            SSPA,即固态功率放大器,是一种利用半导体器件(如场效应晶体管FET、双极型晶体管BJT等)替代传统真空管放大器的技术。它具有体积小、重量轻、效率高、可靠性好等优点,广泛应用于卫星通信、微波中继、移动通信基站等领域。SSPA的主要功能是放大射频(RF)信号的功率,以满足......
  • excel总结遗留问题解决
    excel遗留问题解决powerquery这是powerbi中的一部分,excel2016以后集成了powerquery,用于做数据清洗。一般过程是数据导入powerquery,经过powerquery清洗,然后上载到excel的表,数据透视表等以共使用。插入之定义列,然后使用公式生成新的列数据?函数配合条件选择使用......
  • SSD 论文总结
    论文摘要我们提出了一种使用单个深度神经网络检测图像中的物体的方法。我们的方法被称为SSD,它将边界框的输出空间离散化为一组在不同特征图位置上具有不同长宽比和尺度的默认框。在预测时,网络为每个默认框生成每种物体类别的存在分数,并对框进行调整,以更好地匹配物体的形状。此......
  • RetinaNet 论文总结
    日期:2024年08月05日目录前言论文摘要FocalLossCrossEntropyLossBalancedCrossEntropy FocalLossRetinaNet网络架构ResNet FeaturePyramidNetwork(FPN)ClassSubnetBoxSubnet前言一般来说,one-stage的目标检测器在检测速度上有着明显优势,而two-stag......
  • 大语言模型评测方法全面总结!
    自2017年Transformer模型提出以来,自然语言处理研究逐步转向基于该框架的预训练模型,如BERT、GPT、BART和T5等。这些预训练模型与下游任务适配后,持续刷新最优结果。然而,现有评测方法存在广度和深度不足、数据偏差、忽视模型其他能力或属性评估等问题。因此,需要全面评测和深入......
  • uniapp-实现轮播图效果深度总结【建议收藏】
       ......
  • Studying-代码随想录训练营day62| Floyd 算法精讲、A*算法精讲(A star算法)、最短路算法
    第62天,完结撒花*★,°*:.☆( ̄▽ ̄)/$:*.°★*,最后的两个算法学习,编程语言C++目录Floyd算法精讲A*算法精讲(Astar算法) A*算法 复杂度分析 A*算法的缺点最短路算法总结篇 图论总结深搜和广搜并查集最小生成树 拓扑排序 最短路算法 总结 Floyd算法精讲......
  • 链表的使用和总结
    一:基本知识2:特点:内存不连续,通过指针链接解决:长度固定的问题,插入删除麻烦的问题逻辑结构:线性结构存储结构:链式存储操作:增删改查二:单向链表结构体:structnode_t{ intdata;//数据域 structnode_t*next;//指针域};2.1.1分类1>有头单向链表存在一个头节点,数据......
  • 再探GraphRAG:如何提升LLM总结能力?
    作者:王振亚编者语:自微软发布GraphRAG之后,相关解读文层出不穷,其中不乏优秀的内容。比如前段时间转载薛明同学的《微软GraphRAG框架源码解读》让大家对GraphRAG的开源代码有了快速的认识。这次我们分享一下来自蚂蚁技术同学王振亚的对GraphRAG如何提升LLM总结能力的思考,作者对Gr......
  • Selenium 4 的用法
    Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,10,11),MozillaFirefox,Safari,GoogleChrome,Opera,Edge等。这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能够很好得工作在......