mysql—半同步模式

news2024/9/30 11:55:16

mysql的并行复制

在172.25.254.20(slave)主机上

默认情况下slave中使用的是sql单线程回放 在master中时多用户读写,如果使用sql单线程回放那么会造成组从延迟严重 开启MySQL的多线程回放可以解决上述问题

mysql> show processlist;

在配置文件中进行编辑

[root@nginx ~]# /etc/init.d/mysqld restart
Shutting down MySQL. SUCCESS! 
Starting MySQL. SUCCESS!

[root@nginx ~]# mysql -uroot -p

mysql> show processlist;

此时sql线程转化为协调线程,16个worker负责处理sql协调线程发送过来的处理请求。

MySQL 组提交(Group commit)是一个性能优化特性,它允许在一个事务日志同步操作中将多个 事务的日志记录一起写入。这样做可以减少磁盘I/O的次数,从而提高数据库的整体性能。

mysql的gitd日志模式

当为启用gtid时我们要考虑的问题 在master端的写入时多用户读写,在slave端的复制时单线程日志回放,所以slave端一定会延迟与master端

这种延迟在slave端的延迟可能会不一致,当master挂掉后slave接管,一般会挑选一个和master延迟日 志最接近的充当新的master

那么为接管master的主机继续充当slave角色并会指向到新的master上,作为其slave

这时候按照之前的配置我们需要知道新的master上的pos的id,但是我们无法确定新的master和slave之 间差多少

当激活GITD

当master出现问题后,slave2和master的数据最接近,会被作为新的master slave1指向新的master,但是他不会去检测新的master的pos id,只需要继续读取自己gtid_next即可

gitd日志模式模式部署如下:

172.25.254.10(maste)主机

[root@nginx mysql]# # mysqlbinlog -vv /data/mysql/nginx-relay-bin.000001
@@省略内容@@ SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/; DELIMITER ; # End of log file /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

编辑配置文件设置gtid

[root@nginx ~]# vim /etc/my.cnf

重启文件

[root@nginx ~]#  /etc/init.d/mysqld restart
Shutting down MySQL.. SUCCESS! 
Starting MySQL. SUCCESS! 

172.25.254.20主机

编辑配置文件设置gtid

[root@nginx ~]# vim /etc/my.cnf

重启文件

[root@nginx ~]#  /etc/init.d/mysqld restart
Shutting down MySQL.. SUCCESS! 
Starting MySQL. SUCCESS! 

停止salve

mysql> stop slave;

开启git日志模式同步

mysql>CHANGE MASTER TO MASTER_HOST='172.25.254.10', MASTER_USER='repl',MASTER_PASSWORD='123', MASTER_AUTO_POSITION=1;

开启salve

mysql> start slave;

mysql> show slave status\G;

172.25.254.30主机

编辑配置文件设置gtid

[root@nginx ~]# vim /etc/my.cnf

重启文件

[root@nginx ~]#  /etc/init.d/mysqld restart
Shutting down MySQL.. SUCCESS! 
Starting MySQL. SUCCESS! 

停止salve

mysql> stop slave;

开启git日志模式同步

mysql>CHANGE MASTER TO MASTER_HOST='172.25.254.10', MASTER_USER='repl',MASTER_PASSWORD='123', MASTER_AUTO_POSITION=1;

开启salve

mysql> start slave;

mysql> show slave status\G;

mysql的gitd日志模式的部署完成

mysql的半同步模式原理

1.用户线程写入完成后master中的dump会把日志推送到slave端

2.slave中的io线程接收后保存到relaylog中继日志

3.保存完成后slave向master端返回ack  

4.在未接受到slave的ack时master端时不做提交的,一直处于等待当收到ack后提交到存储引擎

5.在5.6版本中用到的时after_commit模式,after_commit模式时先提交在等待ack返回后输出ok

启用用半同步模式,先做好git日志模式

172.25.254.10(master)

编辑配置文件配置启用半同步模式

[root@nginx ~]# vim /etc/my.cnf

配置文件不要重启,由于没有安装相应的模块 就没有该功能。

安装半同步插件 

mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

查看插件是否安装成功

mysql> select * from information_schema.PLUGINS where PLUGIN_NAME LIKE '%semi%'\G;

打开半同步功能 

mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1;

查看半同步功能状态是否开启(AFTER_SYNC)

mysql> SHOW VARIABLES LIKE 'rpl_semi_sync%';

查看状态是否开启

mysql> SHOW STATUS LIKE 'Rpl_semi_sync%';

172.25.254.20

编辑配置文件配置启用半同步模式

[root@nginx ~]# vim /etc/my.cnf

安装半同步插件 

mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

打开半同步功能 

mysql> SET GLOBAL rpl_semi_sync_slave_enabled =1;

重启io线程,半同步才能生效

mysql> STOP SLAVE IO_THREAD;
mysql> START SLAVE IO_THREAD; 

mysql> SHOW VARIABLES LIKE 'rpl_semi_sync%';

172.25.254.20的半同步模式配置完成

172.25.254.30

编辑配置文件配置启用半同步模式

[root@nginx ~]# vim /etc/my.cnf

安装半同步插件 

mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

打开半同步功能

mysql> SET GLOBAL rpl_semi_sync_slave_enabled =1;

重启io线程,半同步才能生效

mysql> STOP SLAVE IO_THREAD;
mysql> START SLAVE IO_THREAD; 

mysql> SHOW VARIABLES LIKE 'rpl_semi_sync%';

172.25.254.30的半同步模式配置完成

测试

172.25.254.10(master)端

查看有多少数据

mysql> SHOW STATUS LIKE 'Rpl_semi_sync%';

mysql> show databases;
mysql> create database  MySchool_db; 

mysql> show databases;

在172.25.254.20主机上会显示库名

mysql> show databases;

在172.25.254.30主机上也会显示库名

mysql> show databases;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LVS+keepalived整合负载均衡配置

准备三台服务器;负载均衡服务器192.168.45.136,后端机器1,92.168.45.135,后端机器2,192.168.45.138 在两台后端机器上安装nginx服务,yum install -y nginx,并且启动nginx服务,systemctl start …

【Linux学习】【Ubuntu入门】2-1 Linux系统下运行C语言输出hello word

1.双击打开VMware软件,点击开启此虚拟机后,等待点击头像输入密码进入 2.“CtrlAltt”调出命令行终端,输入命令sudo apt-get install vim安装vim,输入命令sudo apt-get install gcc安装gcc 3.输入命令vi hello.c进入C语言编写环境&…

【漏洞复现】VEXUS多语言货币交易所存在未授权访问漏洞

漏洞描述 java后端,非常完整的一套交易所,UI前端做的也很漂亮,新增了交易跟单功能,前端pc+wap都是uniapp纯源码,前端源码node_modules环境已经安装好了,拿去直接编译就可以. 后端 前端 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共…

订餐点餐|订餐系统基于java的订餐点餐系统小程序设计与实现(源码+数据库+文档)

订餐点餐系统小程序 目录 基于java的订餐点餐系统小程序设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布…

qt使用QDomDocument读写xml文件

在使用QDomDocument读写xml之前需要在工程文件添加: QT xml 1.生成xml文件 void createXml(QString xmlName) {QFile file(xmlName);if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate |QIODevice::Text))return false;QDomDocument doc;QDomProcessin…

隆道携手黑龙江省中小企业协会助力区域企业数字化转型

9月28日,隆道公司总裁吴树贵出席“2024年黑龙江省中小企业协会副会长扩大会议暨数字化转型专题报告会”并做主题发言,分享了龙江惠企商城建设情况和供应链数字化转型实践经验。会上,隆道公司与黑龙江省中小企业协会签订了战略合作协议&#x…

SOLIDWORKS 2025基于浏览器角色的新功能:如何简化设计流程?

在2025版本中,SOLIDWORKS引入了一系列基于浏览器角色的新功能,本文将深入探讨SOLIDWORKS 2025的这些新增功能,看看它们是如何帮助工程师简化工作流程、增强用户体验的。 SOLIDWORKS 2025 1从多方面定义工作流程 • 根据您的需求使用全新的…

ACM MM 2024中有哪些值得关注的Diffusion Models相关的论文?

Diffusion Models专栏文章汇总:入门与实战 前言:ACM MM 2024作为多模态领域的顶级会议,已经放出所有接受的论文。这次的MM又是Diffusion Models的盛会,非常多值得关注的最新论文,这篇博客将一一介绍。 COMD: Training-free Video Motion Transfer With Camera-Object Moti…

Redis哨兵模式的搭建以及配置参数简介

原理 Redis哨兵模式是一种用于在Redis主从复制环境中进行高可用性监控和故障恢复的机制。该模式引入了一个或多个哨兵节点,这些节点负责监控Redis服务器的状态,并在主节点发生故障时切换为新的主节点。 哨兵节点的工作原理如下: 1、哨兵节点…

基于SpringBoot的诗词学习网站的设计与实现

目录 毕设制作流程功能和技术介绍系统实现截图开发核心技术介绍:使用说明开发步骤编译运行代码执行流程核心代码部分展示可行性分析软件测试详细视频演示源码获取 毕设制作流程 (1)与指导老师确定系统主要功能; (2&am…

通信工程学习:什么是GOCC地面操作控制中心、SOCC卫星操作控制中心

GOCC地面操作控制中心&SOCC卫星操作控制中心 GOCC(Ground Operation Control Center,地面操作控制中心)和SOCC(Satellite Operations Control Center,卫星操作控制中心)是卫星通信系统中至关重要的组成…

GitHub下载MY-SITE

1、GitHub下载my-site 解压 打开项目 ApiOperation swagger日志的 七牛云-云平台 dao和model统称为pojo--实体类 删除docker 2、创建数据库 执行sql 3、链接数据库 扫描dao曾的包 46、鸡汤分析开源项目_哔哩哔哩_bilibili 修改yaml 启动 http://localhost:8089/a…

如何在 Kubernetes 上部署和配置开源数据集成平台 Airbyte?

在 Kubernetes 上部署和配置 Airbyte 是一个复杂但非常有价值的过程,特别是对于需要强大数据集成和数据处理能力的企业或团队。Airbyte 是一个开源的数据集成平台,允许用户从各种来源提取数据并加载到目标存储中。其强大的插件系统支持多种数据源与目标&…

FPGA实现PCIE视频采集转SDI输出,基于GTX+XDMA中断架构,提供2套工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的PCIE方案本博已有的 SDI 编解码方案 3、PCIE基础知识扫描4、工程详细设计方案工程设计原理框图电脑端视频QT上位机XDMA配置及使用XDMA中断模块FDMA图像缓存SDI视频编码之-->RGB转BT1120SDI视频编码之-->SMPTE SD/HD…

python5_basecurd

基础增删改查 # 定义一个字典来存储数据 data {}def add(key, value):"""添加数据:param key: 键:param value: 值"""if key not in data:data[key] valueprint(f"添加成功:{key} -> {value}")else:print(f"键已…

【12月IEEE出版* 镇江 】第九届清洁能源与发电技术国际学术会议(CEPGT 2024)

2024 9th International Conference on Clean Energy and Power Generation Technology (CEPGT 2024) 第九届清洁能源与发电技术国际学术会议(CEPGT 2024),将于2024年12月27-29日在江苏镇江举办。高效清洁新能源的研究和应用是我国现阶段最主…

非关键尺寸的失效模式和效应分析(FMEA)是否有必要进行?

在追求极致的过程中,一个看似不起眼的细节——非关键尺寸的失效模式和效应分析(FMEA),却常常被忽视或低估其重要性。本文,深圳天行健企业管理咨询公司旨在分享为何在非关键领域,FMEA同样不可或缺&#xff0…

【LeetCode】动态规划—221. 最大正方形(附完整Python/C++代码)

动态规划—221. 最大正方形 前言题目描述基本思路1. 问题定义:2. 理解问题和递推关系:3. 解决方法:3.1 动态规划方法3.2 空间优化的动态规划 4. 进一步优化:5. 小总结: 代码实现Python3代码实现Python 代码解释C代码实现C 代码解释 前言 在二维矩阵中寻找最大正方形的问题是动…

mysql笔记10(高级部分--跟数据库管理有关)

文章目录 一、视图(view)1. 作用2. CRUD--跟表操作几乎相同① 创建② 显示视图③ 查看视图相关详细信息④ 删除视图⑤ 更新视图 3. 视图算法① 创建视图时指定视图算法② 后期navicat里修改视图算法③ 注 二、事务(transaction)1. 事务的提出2. 举例理解① commit -- 一起执行②…

CSS宽度和高度

CSS 尺寸属性指的就是元素的宽度和高度属性,虽然说非常简单,但却是必须掌握的技能。CSS 中提供了 width、height、max-width、min- width、max-height 和 min-height 等几个属性来设置元素的宽度和高度,这些元素使用起来非常简单,…