mysql主从搭建(gtid)

MySQL基于GTID同步模式搭建主从复制 异步同步模式是 MySQL 默认的同步策略模式。客户端在向服务端发送请求后,master处理完之后 , 直接返回客户端结果 , 接着在将对应的log信息发送给 slave节点。异步同步模式缺点主库在执行完客户端提交的事务后会立即将结果返回给客户端,并不关心从库是否已经接收并处理,这样就会有一个问题,主库如果crash掉了,此时主库上已经提交的事务可能并没有传到从库上,如果此时,强行将从提升为主,可能导致新的主库上数据不完整问题解答slave 节点响应 master 延迟。 阅读详情

一、前言

MySQL GTID(Global Transaction Identifier)主从复制原理是MySQL replication的一个进步,它使得复制配置变得更简单,并提供了更高的数据一致性,GTID是全局唯一的事务ID,由两个部分组成:<server_uuid>:<transaction_id>,用来标识主库上执行的每个事务。当一个事务在主库上提交时,对应的GTID会发送到从库上,从库使用该GTID来确保只应用一次相应的事务,从而避免重复执行,在所有节点的日志文件中,同一个event的gtid值都是一致的

server_uuid:服务器的唯一标识符,用于标识事务最初在哪个服务器上生成

transaction_id:事务的编号,在每个服务器上是连续递增的

工作流程

1.master节点一个事务被执行并提交,提交时,事务被赋予一个唯一的GTID,该事务及其GTID被记录在master节点的binlog中

2.slave节点的io线程获取master节点的binlog,写入到relaylog中,读取值根据gitd_next变量决定slave下一个执行哪个gtid事务

3.slave节点的SQL线程读取relaylog中的事务,通过slave节点的binlog检查事务的GTID是否有记录

4.如果该GTID在从服务器上未被应用过,从服务器就执行该事务并将其记录到binlog

5.如果该GTID已经被应用过,则跳过该事务,避免重复执行

搭建mysql主从使用三台主机,主机信息如下

ip端口主机名角色
10.1.60.803306rabbitmq04salve
10.1.60.1143306rabbitmq01slave
10.1.60.1153306rabbitmq02master

二、部署

为每台主机修改主机名并配置hosts

hostnamectl set-hostname rabbitmq04

vi /etc/hosts

10.1.60.114 rabbitmq01
10.1.60.115 rabbitmq02
10.1.60.80 rabbitmq04

关闭防火墙与selinux

systemctl stop firewalld&&systemctl disable firewalld

setenforce 0

每台主机安装mysql服务

参考:yum安装mysql 5.7_yum安装mysql5.7_Apex Predator的博客-优快云博客

 编辑配置文件

vi /etc/my.cnf

gtid_mode=on      #开启gtid
enforce-gtid-consistency=on  #当启用此选项时,MySQL 强制执行 GTID 一致性,确保从服务器不会执行未在主服务器上存在的事务。这有助于防止数据不一致
log_slave_updates=on  #当启用此选项时,从服务器将其接收到的更改记录到自己的二进制日志中,这允许从服务器充当其他从服务器的主服务器。这在构建链式主从复制拓扑时非常有用
relay_log_purge=0  #当设置为 0 时,从服务器不会自动删除中继日志。这意味着中继日志将一直保留,直到管理员手动删除它们。这可以用于调试和数据恢复的目的
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid  
server_id=2          #需要每个都不一样id
log_bin=mysql-bin
binlog_format=mixed
expire_logs_days=7
max_binlog_size=1g

重启mysql服务

systemctl restart mysqld

查看gtid服务是否生效

mysql -u root -p

show variables like '%gtid%';

每台主机配置相同的用于主从同步的用户

GRANT SELECT, RELOAD, PROCESS, SUPER, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'orchestrator'@'%' identified by '11111111';

flush privileges;

配置两个slave主机的mysql数据库,此处跟binlog主从配置不一样,不需要知道binlog文件号和pos值

CHANGE MASTER TO MASTER_HOST='rabbitmq02',

MASTER_USER='orchestrator',

MASTER_PASSWORD='11111111',

MASTER_PORT=3306,

master_auto_position=1;

start slave;

show slave status\G

也可以查看master库的状态

show master status; 

 至此gtid主从数据库配置完成

MySQL基于GTID搭建主从 使用xtarbackup来做主从的前期准备是因为xtarbackup备份数据和恢复数据都很快,特别适合数据量很大的数据库备份,而且它的安装非常的简单,使用也很简单....(巴拉巴拉,废话编不出来了)。 阅读详情

相关推荐

保姆级教程:在Rockchip RK3588 SDK中,如何为你的新硬件板子创建第一个DTS文件

本文提供在Rockchip RK3588 SDK中为自定义硬件创建首个DTS文件的详细教程。通过分析DTS在RK3588开发中的角色、快速定位参考设计、实操步骤及调试验证方法,帮助开发者高效完成硬件板级配置,特别适合嵌入式Linux系统开发者参考。

weixin_28678831的博客 286

MySQL GTID

第1-n代表n个事务。当在主库上提交事务或者被从库应用时,可以定位和追踪每一个事务,对DBA来说意义就很大了,我们可以适当的解放出来,不用手工去可以找偏移量的值了,而是通过CHANGE MASTER TO MASTER_HOST='xxx', MASTER_AUTO_POSITION=1的即可方便的搭建从库,在故障修复中也可以采用MASTER_AUTO_POSITION=‘X’的方式。slave:假设对应的表是MYISAM引擎,执行这个GTID的第一个语句后就会报错,因为非事务引擎一个sql就是一个事务。

m0_57126939的博客 2898

【FPGA】高效捕捉信号边沿的硬件实现技巧

本文深入探讨了FPGA设计中高效捕捉信号边沿的硬件实现技巧。核心在于通过“打两拍”同步器处理亚稳态风险,并详细解析了上升沿、下降沿及双边沿检测的基础原理与Verilog实现。文章进一步介绍了脉冲展宽、数字滤波等高级优化方案,并结合UART起始位检测与按键消抖等实战场景,提供了可靠的代码范例与调试心得,帮助工程师构建稳定可靠的边沿检测模块。

weixin_29165465的博客 225

MySQL主从复制之GTID模式

GTID用于在binlog中唯一标识一个事务。当事务提交时,MySQL Server在写binlog的时候,会先写一个特殊的Binlog Event,类型为GTID_Event,指定下一个事务的GTID,然后再写事务的Binlog。主从同步时GTID_Event和事务的Binlog 都会传递到从库,从库在执行的时候也是用同样的GTID写binlog,这样主从同步以后,就可通过GTID确定从库同步到的位置了。

weixin_68398469的博客 4179

QComboBox设置最大显示数量多余的用滑动条,以及QComboBox::setMaxVisibleItems()不起作用的问题

QComoboBox是Qt封装的一个选择框的东西,但是我在使用过程中有一点感觉很不好,如图: 不论你往里面添加多少个它都会给你显示全部,甚至给你铺满全屏,后来看了官方文档发现有个setMaxVisibleItems()的方法,我欣喜若狂啊,终于特么的能解决了,但是,很遗憾,不知为啥,我设置上之后并没有起作用,依然会显示全部,后来搜了百度发现有个人是这样解决的 QComboBox *box = ne...

Aboveground的博客 4919

51单片机基础知识

前言 周末闲着无聊,以后定时更新一期关于51单片机的学习案例,以供大家平时参考使用。至于单片机,你可以理解为人的大脑,而人各项身体器官的运作需要意识给到大脑,然后大脑再驱动我们的中枢神经进行相应的动作,这里的意识可以理解为我们要写的程序,而人的器官相当于各种输出设备,例如我们以后要学的LED、电机、各种传感器等等。学好单片机能让你找到一份相对不错的工作,当然越可观的东西也是要付出相应努力的。 一、51单片机是什么? 通常我们一说到 51 单片机,指的都是兼容IntelMCS-51体系架构的一系列单片机,而

qq_43537819的博客 6905

MySQL GTID介绍

GTID介绍,搭建主备环境,测试复制的故障转移,复制错误跳过。

承缘丶 4804

代号OneNET02 STM32+ESP8266 WIFI系列-第2节-STM32单片机通过ESP8266连接WIFI访问OneNET OTA服务器实现SOTA远程程序升级

第2节-STM32单片机通过ESP8266连接WIFI访问OneNET OTA服务器实现SOTA远程程序升级,这一节主要是实现通过OneNET OTA服务器将需要更新的程序远程下载到STM32单片机,这一节主要是引导程序和应用程序的讲解。

weixin_44862509的博客 1904

mysql数据库管理-GTID详解

GTID是MYSQL5.6新增的特性,GTID(Global Transaction Identifier)全称为全局事务标示符,用以数据库实例事务唯一标识,其组成主要是source_id和transaction_id 即GTID = source_id:transaction_id。其中source_id是数据库启动自动生成的数据库实例唯一标识,保存在auto.cnf中,而transaction_id则是事务执行的序列号。

oradbm的博客 5152

cmu15445(2024fall) project 2

project 2比p1难度要更大,代码量更大且涉及的知识更多,实现中出现的bug更多,好在是最后全部解决了。我最大的收获在于对于多线程编程的理解更深入了,实际发现解决了多个多线程相关的bug,学会了更多多线程下debug的技巧方法,也见识了更多多线程的bug情况。在之后可以更系统的学习一下多线程编程。同时学会实现B+树也是需要掌握的基础。

Jerome_Yi的博客 1559

AUTOSAR内存篇 -内存驱动(Mem)

Mem驱动程序的task是基于底层内存设备技术的物理分段的低级内存访问。Mem驱动程序的API与内存设备技术无关,因此向存储器访问模块上层提供了与存储器设备无关的接口。所有高级功能(如跨段操作)都由内存访问模块处理,以尽可能降低Mem驱动器的复杂性和占用空间。Mem驱动API命名、类型定义和文件命名规则都遵循标准的AUTUSAR BSW模块实现。服务Mem_Init初始化Mem驱动的内部状态,并设置Mem驱动Job处理状态到MEM_JOB_OK。

IOT2017的博客 713

MySQL gtid详解

从MySQL 5.6.5 开始新增了一种基于 GTID 的复制方式。

weixin_43816711的博客 2857

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

基于GTID搭建主从MySQL

目录 基于gtid搭建主从MySQL 一、GTID的使用 二、GTID的简介 三、GTID的构成 四、查看GTID的执行情况 4.1 gtid_executed 4.2 gtid_own 4.3 gtid_purged 五、MySQL的幂等性 六、拓展: 七、实验: 小实验1: 小实验2: 基于gtid搭建主从MySQL 一、GTID的使用 想让主从之间...

weixin_36892727的博客 1293

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

mysql主从搭建使用gtid_mysql主从之gtid主从搭建

/data/{master20,slave21,slave22}/{data,binlog}主库端口3320从库端口分别为3321,3322配置文件如下:cat> /data/master20/my.cnf <[mysqld]basedir=/opt/mysql/datadir=/data/master20/datasocket=/data/master20/mysql.sockser...

weixin_33239721的博客 344

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

mysql gtid 主从_基于GTID搭建主从MySQL

基于gtid搭建主从MySQL一、GTID的使用想让主从之间使用gtid的方式同步数据,需要我们在配置文件中开启mysql对gtid相关的配置信息找到my.cnf ,在mysqld模块中加入如下的配置。(主库从库都这样)# on表示开启,OFF表示关闭gtid-mode = ON# 下面的两个变量必须开启,否则MySQL拒绝启动# 通常情况,从服务器从主服务器接收到的更新不记入它的二进制日志。该选...

weixin_42347925的博客 625

基于GTID搭建MySQL主从复制集群指南

通过以上步骤,您已经成功搭建了一个基于GTID的MySQL主从复制集群。GTID复制相比传统的基于binlog位置的复制更加可靠和易于管理,特别是在故障恢复和主从切换场景下。检查防火墙设置,确保主从服务器之间的3306端口是开放的。,但注意这不会限制具有SUPER权限的用户。重启MySQL服务使配置生效。重启MySQL服务使配置生效。

学亮编程手记 675

手动搭建基于 GTID 的 MySQL 主从复制

无需手动定位 binlog 文件和偏移量,故障切换更高效;事务全局唯一,便于追踪和排查复制问题;支持更灵活的复制拓扑(如级联复制、多主复制)。本文从前提准备到最终验证,覆盖了 5.7/8.0 环境下的完整搭建流程,若在操作中遇到问题,可重点检查配置文件参数、复制状态中的和指标,或留言说明具体环境和错误信息,以便进一步排查。

yifengyiyufjq的博客 550

搭建mysql主从复制GTID模式

GTID (global transaction identifier) 即全局事务ID, 保证了在每个在主库上提交的事务在集群中有一个唯一的ID. 在原来基于日志的复制中, 从库需要告知主库要从哪个偏移量进行增量同步, 如果指定错误会造成数据的遗漏, 从而造成数据的不一致. 而基于GTID的复制中, 从库会告知主库已经执行的事务的GTID的值, 然后主库会将所有未执行的事务的GTID的列表返回给从库. 并且可以保证同一个事务只在指定的从库执行一次. GTID的好处: (1)GTID使用master

weixin_51705319的博客 680

mysql gtid 主从配置_mysqldump 快速搭建特定库主从架构(GTID)

对于数据总量不大的MySQL数据库搭建主从架构,借助mysqldump工具来实现是不错的选择,再结合MySQL GTID特性,使得高可用轻而易举。本文是基于mysqldump搭建gtid主从的补充。主要是介绍基于多库级别实现GTID主从,即非整个实例级别。下面是本文的具体描述及示例。相关知识点参考基于mysqldump搭建gtid主从MySQL GTID 错误处理汇总配置MySQL GTID 主从...

weixin_33326218的博客 646

mysql的gtid冒号隔开_mysql8基于gtid导出导入搭建主从

mysql8基于gtid导出导入搭建主从开启GTID的状况下导出导入库的注意事项在开启了 GTID 功能的 MySQL 数据库中, 不管是否使用了 GTID 的方式作了主从同步, 导出导入时都须要特别注意数据库中的 GTID 信息.mysql# 导出# 在主库上全备,--set-gtid-purged决定是否带gtid,这里建议明确指出是ON仍是OFFsql[root@db145 bak]# my...

weixin_39707941的博客 254

MySQL基于binlog和gtid主从搭建方案

MySQL 主从复制是一种常用的数据库高可用性和数据备份策略。通过主从复制,一个主数据库(master)上的所有更改都会被记录在二进制日志(binary log)中,然后这些更改可以被应用到从数据库(slave)上。使用 GTID(Global Transaction Identifier,全局事务标识符)可以进一步简化复制过程,因为它可以确保每个事务的唯一性和顺序性,即使在复杂的复制拓扑中也是如此。本章详细介绍MySQL基于binlog和gtid主从搭建方案

Linux运维老纪的博客 387

mysql 导出gtid_mysql8基于gtid导出导入搭建主从

mysql8基于gtid导出导入搭建主从开启GTID的情况下导出导入库的注意事项在开启了 GTID 功能的 MySQL 数据库中, 不论是否使用了 GTID 的方式做了主从同步, 导出导入时都需要特别注意数据库中的 GTID 信息.# 导出# 在主库上全备,--set-gtid-purged决定是否带gtid,这里建议明确指出是ON还是OFF[root@db145 bak]# mysqldump ...

weixin_29137599的博客 482

Docker搭建MySQL主从集群,基于GTID

写在前边 搭建MySQL读写分离主从集群,这里未使用binlog方式,使用的是GTID方式 源码见我的Github https://github.com/hellxz/mysql-cluster-docker.git 主从目录结构 . ├── bin │ ├── add-slave-account-to-master.sh │ ├── reset-slave.sh │ ├── slav...

weixin_30508241的博客 283

二、mysql主从配置及搭建(gtid方式)

本文讲解mysql通过gtid的方式制作主从。并且模拟宕机通过跳过gtid的事务进行备份恢复操作!!!线上可用!!!

weixin_57670650的博客 1512

没有找到mysql。sock_mysql8基于gtid方式搭建主从或恢复

对于mysql8基于gtid方式搭建主从或恢复,看到网上写的太多了,但是效果太差劲,现给出落地步骤(按照我的一步步来保准没问题,具体操作原因不赘述--请参考官方文档:https://dev.mysql.com/doc/refman/8.0/en/replication.html)废话不多说,直接上实践步骤前提说明机器说明:从库:10.5.31.9 10.5.31.10主库:10.5.31.8...

weixin_34042899的博客 160
上一篇: prometheus监控kafka
下一篇: orchestrator数据库高可用组件搭建
Apex   Predator
博客等级 码龄6年 9371粉丝 289原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值