73 mysql replication 集群的交互

前言

新建两个数据库, 分别为 192.168.220.132:3001, 192.168.220.132:3002

设置 192.168.220.132:3001 为 master, 192.168.220.132:3002 为 slave 

 

配置文件如下

9d885a196006e67a4fc79b880ce46377.png

 

然后使用 mysqld --initialize 来初始化 data 目录, 以及相关基础数据库 

这里会为 root 账户创建一个随机的密码, 用于后面的登录 

444b8eaf15735ff021b97d826c013cb1.png

 

然后是修改 root 的密码信息, 可访问客户端的信息 

612d9ba4be242edd816503f3a7762383.png

 

master 和 slave 启动好了之后, 在 slave 上面执行如下命令, 配置 master 的相关信息 

change master to master_host='192.168.220.132', master_port=3301, master_user='root', master_password='root', master_log_file='mysql-master.000006', master_log_pos=154;
start slave;
show slave status;

 

假设我们这里测试数据表如下 

CREATE TABLE `tz_test_02` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `field1` varchar(128) DEFAULT NULL,
  `field2` varchar(128) DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE,
  KEY `field_1` (`field1`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8

 

基础数据如下 

391d1634f6d0973216aa6cdb6fc87e1b.png

 

 

master 这边 binlog 的处理

我们这里测试执行 sql 如下, 我们这里 着重关注第二条 insert 语句的相关处理 

delete from tz_test_02 where id = 11;
INSERT INTO `tz_test_02`(`id`, `field1`, `field2`) VALUES (11, 'field11', '11');

 

在提交事务的时候, 会唤醒 BinlogSender 这边的相关逻辑处理 

909bcd9196cedbb2d7d8289125c58435.png

 

然后 Binlog_sener 这边被唤醒, 开始处理发送 binlog 的相关处理 

901217f849ffa5b024c010b07c043f49.png

 

然后这里会遍历新增的 event, 将需要传递的 event 传输到 slave 

这里会依次遍历几个 event, 类型分别为 Anonymous_Gtid, Query, Table_map, Write_rows, Xid

这里的 WRITE_ROWS_EVENT 对应的 position 为 8889

3f1ac8a95e614dd9bbd8532ab13a72dc.png

 

然后 master 的 binlog 中信息如下, 可以看到 8889 对应的 event 为 WRITE_ROWS_EVENT

98bfdfaee959f3a62aabbcb31cf5cffe.png

 

 

slave 这边 binlog 的处理

然后 slave 这边会收到相关的几个 event, Anonymous_Gtid, Query, Table_map, Write_rows, Xid 这里我们主要关心 WRITE_ROWS_EVENT

这里将接收过来的 WRITE_ROWS_EVENT 添加到 Relay_log_info 中, 其是对应于一段带缓冲的文件映射

6fd2045c7a3037a0269e993dbd7963c0.png

 

slave 这边的 relay_log 的 apply 的处理如下, 相当于拿到对应的 binlog 之后, 处理相关的业务处理, 对于我们这里的 WRITE_ROWS_EVENT 就是根据目标语句, 或者Write_rows 新增业务记录 

f52f861246d8cf8013e7e4934f029961.png

 

 

slave 这边 handleSlaveSql 的线程

slave reapply relay_log 的线程如下, 只负责处理该部分的业务 

04d9ae9dbb6ef057d569c81fe3d2c881.png

 

该线程是在 “start slave” 命令的处理中执行的, 新建了 handleSlaveSql 的线程 

377a82e544ddbbcd39b5eee45dd5b814.png

 

 

另外可以看出 这个 replication 过程时候近乎实时的 

中间空隙是 master 这边遍历发送 binlog, slave 这边接受 binlog, 并执行 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/948987.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CG顶会论文阅读|《科技论文写作》硕士课程报告

文章目录 一、基本信息1.1 论文基本信息1.2 课程基本信息1.3 博文基本信息 二、论文评述(中英双语)2.1 研究问题(Research Problem)2.2 创新点(Innovation/Contribution)2.3 优点(Why this pape…

路由器的转发表

【4-24】 已知路由器R₁ 的转发表如表T-4-24 所示。 表T-4-24 习题4-24中路由器R₁的转发表 前缀匹配 下一跳地址 路由器接口 140.5.12.64/26 180.15.2.5 m2 130.5.8/24 190.16.6.2 ml 110.71/16 ----- m0 180.15/16 ----- m2 190.16/16 ----- ml 默认 11…

嵌入式驱动开发详解8(阻塞/非阻塞/异步通信)

文章目录 前言阻塞非阻塞异步通知后续 前言 首先来回顾一下“中断”,中断是处理器提供的一种异步机制,我们配置好中断以后就 可以让处理器去处理其他的事情了,当中断发生以后会触发我们事先设置好的中断服务函数, 在中断服务函数…

【MATLAB第112期】基于MATLAB的SHAP可解释神经网络回归模型(敏感性分析方法)

【MATLAB第112期】基于MATLAB的SHAP可解释神经网络回归模型(敏感性分析方法) 引言 该文章实现了一个可解释的神经网络回归模型,使用BP神经网络(BPNN)来预测特征输出。该模型利用七个变量参数作为输入特征进行训练。为…

DeepSeek-V3 正式发布,已在网页端和 API 全面上线,性能领先,速度飞跃。

DeepSeek-V3 在推理速度上相较历史模型有了大幅提升。在目前大模型主流榜单中,DeepSeek-V3 在开源模型中位列榜首,与世界上最先进的闭源模型不分伯仲。 简介 DeepSeek-V3是一个强大的混合专家 (MoE) 语言模型,总共有 671B 个参数,…

深度评测uni-app x:开启跨平台开发新篇章

文章目录 一、引言1.1 跨平台开发的崛起1.2 uni-app x 初印象 二、uni-app x 核心特性评测2.1 uts 语言:跨平台编程新利器2.2 uvue 渲染引擎:原生渲染新体验2.3 强大的组件和 API 支持2.4 插件生态:拓展无限可能 三、与 uni-app 对比&#xf…

用python编写一个放烟花的小程序

import pygame import random # 代码解释及使用说明: # 首先,导入 pygame 和 random 库。pygame 用于创建游戏窗口和图形绘制,random 用于生成随机数。 # 初始化 pygame,并设置屏幕尺寸为 800x600 像素,设置窗口标题为…

Android设备使用AOA协议进行主机与配件模式通信

1.使用TYPC-C数据线连接两台华为手机: TYPE-C线,先连接下图右边的ACCESSORY 再连接左边的HOST 此时左边的HOST(白色) 会给右边的ACCESSORY(黑色) 充电 接着打开左连接的HostChart会自动调起授权,然后会启动右边的AccessoryChart USB HOS…

flutter在windows平台中运行报错

PS D:\F\luichun> flutter run当运行flutter项目时,【解决如下报错】 /C:/flutter/packages/flutter/lib/src/painting/star_border.dart:530:27: Error: The getter Matrix4 isnt defined for the class _StarGenerator.- _StarGenerator is from package:flut…

ROS2软件架构全面解析-学习如何设计通信中间件框架

前言 ROS(Robot Operating System) 2 是一个用于开发机器人应用的软件平台,也称为机器人软件开发工具包 (SDK)。 ROS2是ROS1的迭代升级版本 ,最主要的升级点是引入DDS(Data Distribution Service)为基础的…

【C++】B2093 查找特定的值

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述输入格式输出格式输入输出示例 💯题目分析与解题思路💯代码实现与对比分析我的实现代码老师的实现代码详细对比与分析1. 数组的定义方式2. …

SAP 01-初识AMDP(ABAP-Managed Database Procedure)

1. 什么是AMDP(ABAP-Managed Database Procedure) 1.)AMDP - ABAP管理数据库程序,是一种程序,我们可以使用SQLSCRIPT在AMDP内部编写代码,SQLSCRIPT是一种与SQL脚本相同的数据库语言,这种语言易于理解和编码。 将AM…

基于 gitlab-runner 实现调度GPU的资源

本篇目录 1. 客户需求2. 需求调研3. 实践3.1 方案一:环境变量的方式3.2 方案二:k8s 自身的spec注入机制 4. 效果 该实践来自于客户的一个真实需求 1. 客户需求 客户的某些流水线需要使用GPU资源,但是对于GPU服务器而言,会有多张G…

走进深圳华为总部参观研学

在这个科技日新月异的时代,每一次与行业标杆企业领先者对话,都是开眼界的好时机。华研标杆游学高老师组织了一场企业家参访团体考察,带大家去到深圳华为总部研学,亲身感受科技巨头的风采,一起探讨未来的发展。 第一站-…

客户案例:基于慧集通(DataLinkX)集成平台的金蝶云星空公有云与WMS系统对接集成方案

本文档详细介绍了基于慧集通(DataLinkX)集成平台的金蝶云星空公有云与WMS系统对接集成方案。该方案旨在实现金蝶云星空与WMS系统之间的数据同步和流程对接,以提高企业供应链管理的效率和准确性。通过物料、供应商资料同步,采购、销…

【Kaggle】练习赛《预测贴纸的销量》(上)

前言 本篇文章介绍的是2025年首个Kaggle月赛《Forecasting Sticker Sales》,即《预测贴纸的销量》。与之前一样,也同样适合初学者,但与之前不同的是,本次比赛的数据集是个时间序列,从题目来看,就是通过之前…

【论文+源码】基于Spring和Spring MVC的汉服文化宣传网站

为了实现一个基于Spring和Spring MVC的汉服文化宣传网站,我们需要创建一个简单的Web应用程序来展示汉服文化和相关信息。这个系统将包括以下几个部分: 数据库表设计:定义文章、用户和评论的相关表。实体类:表示数据库中的数据。DAO层接口及MyBatis映射文件:用于与数据库交…

操作系统大题整理

专题一 程序代码题:程序设计与分析,主要考的是线程,多线程的并发? 大题第一问(1)操作系统的结构有哪几种常用的结构? 宏内核:宏内核是将操作系统的主要功能模块都集中在内核的一种结…

一文理解区块链

一文搞懂区块链 区块链的诞生,源于对 电子货币(e-money) 的探索需求,即Bitcoin的产生。因此,了解的小伙伴应该知道区块链的常见定义是:不可篡改的分布式账本。 为什么发明“账本”,而不是直接发…

【论文笔记】QLoRA: Efficient Finetuning of Quantized LLMs

🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: QLoRA: Efficient Finetun…