当前位置: 首页 > news >正文

配置mysql 主主模式 GTID

文章目录

    • 一、前提
    • 二、修改my.cnf
      • 主1 10.255.131.9
      • 主2 10.255.131.10
    • 三、配置主主
      • 3.1 配置主 10.255.131.9
      • 3.2 配置从 10.255.131.10
      • 3.3 配置主 10.255.131.10
      • 3.4 配置从 10.255.131.9
    • 四、验证
    • 五、同步问题排查以及恢复
      • 5.1 查看同步状态
      • 5.2 查看同步是否数据一致性,延迟多少
      • 5.3 过滤掉常见错误
      • 5.4 同步失败如何恢复

一、前提

两台机器均部署好了mysql;

部署可参考之前的博客: Mysql 8.4.3LTS 的离线部署

二、修改my.cnf

主1 10.255.131.9

vim /etc/my.cnf

[mysqld] 中加入以下内容

# 配置server-id 每个MySQL实例的server-id都不能相同
server-id=9
# MySQL的日志文件的名字
log-bin=mysql_master
# 作为从库时 更新操作是否写入日志 on:写入  其他数据库以此数据库做主库时才能进行同步
log-slave-updates=on
# 同步DML
binlog_format = ROW
# 开启GTID
gtid-mode = ON 
enforce-gtid-consistency = ON 
log-slave-updates = ON
# 多线程复制
slave_parallel_workers = 4# MySQL系统库的数据不需要同步 我们这里写了3个  更加保险
# 同步数据时忽略一下数据库 但是必须在使用use db的情况下才会忽略;如果没有使用use db 比如create user  数据还是会同步的
replicate-ignore-db=information_schema
replicate-ignore-db=mysql
replicate-ignore-db=performance_schema
replicate-ignore-db=sys
# 使用通配符忽略MySQL系统库的表  这样在create user时也不会进行同步了
replicate_wild_ignore_table=information_schema.%
replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=performance_schema.%
replicate_wild_ignore_table=sys.%
# MySQL系统库的日志不计入binlog 这样更加保险了
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys

主2 10.255.131.10

修改my.cnf, 只需要修改其中的两个地方,其他内容一样

# 配置server-id 每个MySQL实例的server-id都不能相同
server-id=10
# MySQL的日志文件的名字
log-bin=mysql_slave

my.cnf文件修改完成后,重启mysql

systemctl restart mysql

三、配置主主

主主模式就是配置两个主从。

10.255.131.9(主)->10.255.131.10(从)

10.255.131.10(主)->10.255.131.9(从)

3.1 配置主 10.255.131.9

先登录10.255.131.9(主1)的数据库,依次执行如下命令:


#创建备份的账号 使用MYSQL_NATIVE_PASSWORD的方式加密
create user 'repl_master'@'%' identified with mysql_native_password by 'master_ccdcsm';
# 对repl_master授予备份的权限
grant replication slave on *.* to 'repl_master'@'%';
# 刷新权限
flush privileges;

3.2 配置从 10.255.131.10

登录到10.255.131.10(主2) 中,执行如下命令:

mysql> CHANGE MASTER TO 
MASTER_HOST='10.255.131.10',
MASTER_USER='repl_master',
MASTER_PASSWORD='master_ccdcsm',
MASTER_PORT=3306,
MASTER_AUTO_POSITION = 1;

image-20241029192826476

mysql> START SLAVE;
mysql> SHOW SLAVE STATUS\G;

image-20241029192846975

这样,

10.255.131.9(主1)->10.255.131.10(主2)的主从就搭建好了。

然后,我们再反过来,搭建

10.255.131.10(主2)->10.255.131.9(主1)的主从

3.3 配置主 10.255.131.10

登录10.255.131.10(主2)的数据库,依次执行如下命令:

#创建备份的账号 使用MYSQL_NATIVE_PASSWORD的方式加密
create user 'repl_slave'@'%' identified with mysql_native_password by 'slave_ccdcsm';
# 对repl_slave授予备份的权限
grant replication slave on *.* to 'repl_slave'@'%';
# 刷新权限
flush privileges;
# 查看MySQL主节点的状态
show master status;

image-20241029193053920

binlog文件的名字,mysql_master.000001,和位置,也就是830。

3.4 配置从 10.255.131.9

登录到10.255.131.9(主1),执行如下命令:

mysql> CHANGE MASTER TO MASTER_HOST='10.255.131.9',MASTER_USER='repl_slave',MASTER_PASSWORD='slave_ccdcsm',MASTER_PORT=3306,MASTER_AUTO_POSITION = 1;

image-20241029193148326

mysql> START SLAVE;
mysql> SHOW SLAVE STATUS\G;

image-20241029193203509

四、验证

由于上述的my.cnf中将创建用户,创建表的行为给屏蔽同步了。

注释相关代码后 重启,发现在10.255.131.9上执行的创建用户与表的动作;

10.255.131.10上已经同步过去了。

此外创建分区并不会导致同步的报错以及异常;

CALL P_ADD_TAB_PARTITION_THAT_VERY_DAY(‘MON_DATA_CUR’);

两台服务器均正常创建了今天的分区;

五、同步问题排查以及恢复

5.1 查看同步状态

同步状态是否正常可通过sql查询;

mysql> show slave status\G;

以下两个属性均为yes;说明同步状态正常

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

如果有任何为No,可以查询Last_SQL_Error上次同步失败的sql;如何恢复,请看5.4

5.2 查看同步是否数据一致性,延迟多少

mysql> show slave status\G;

Seconds_Behind_Master: 为0说明数据同步完成,这个属性表示的是从库同步主库的延迟时间,单位秒;

5.3 过滤掉常见错误

常见的有1032错误码;

image-20241029193448260

binlog中变更的那行在表中不存在,导致主从失败; 该错误很常见,可屏蔽

my.cnf可配置slave-skip-errors=1032

重启mysql,就可以跳过日志中的1032错误码

也可以配置

# 跳过所有错误 slave-skip-errors=all

5.4 同步失败如何恢复

如果主库有个错误的sql执行导致报错,或者主从库数据结构不一致等原因导致同步报错;

这种情况如何恢复同步呢;

基本上就这三步;

mysql> stop slave;mysql> reset slave;mysql> start slave;

如果起不来可能是binlog记录的位置不一致。这时候reset slave下再重启;

复杂的错误导致数据不一致的情况

  1. 全量同步

可以采取删除从库数据库,主库锁库只读。然后全量备份再恢复到从库中,再建立主从同步的链接,以此来恢复。

锁表:FLUSH TABLES WITH READ LOCK;

解锁:UNLOCK TABLES;

  1. 跳过部分错误(没啥用)

mysql>stop slave ;

~~mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;~~跳过一个事务

mysql>start slave;

  1. 对于复杂的报错无法解决的时候如果同步并恢复主从呢

在此举例主从,主主的模式一样,就是操作两遍。

首先从数据库停止同步;并删除主从连接配置信息

mysql> stop slave;

mysql> reset slave all;

主数据库中删除binlog,重新记录binlog

mysql> reset master;

借助工具,手动的同步两个数据库,主数据库数据同步到从数据库中;Navicat,SQLyog 均可,好用。

从数据库上建立连接GTID

mysql> CHANGE MASTER TO MASTER_HOST='10.255.131.9',MASTER_USER='repl_master',MASTER_PASSWORD='master_ccdcsm',MASTER_PORT=3306,MASTER_AUTO_POSITION = 1;

启动从库同步;

mysql> start slave;

这样就可以恢复主从的同步了。

这是没法通过 reset slave; 恢复同步时候的实用的解决方式,要注意mysql同步之前最好做下必要的备份,防止数据丢失。

总之数据库的同步是一个复杂的情况,如果生产上发现同步异常,数据库数据不一致等情况,可以找专业DBA。

O

MASTER_HOST=‘10.255.131.9’,

MASTER_USER=‘repl_master’,

MASTER_PASSWORD=‘master_ccdcsm’,

MASTER_PORT=3306,

MASTER_AUTO_POSITION = 1;

启动从库同步;`mysql> start slave;`这样就可以恢复主从的同步了。这是没法通过 reset slave; 恢复同步时候的实用的解决方式,要注意mysql同步之前最好做下必要的备份,防止数据丢失。总之数据库的同步是一个复杂的情况,如果生产上发现同步异常,数据库数据不一致等情况,可以找专业DBA。

相关文章:

配置mysql 主主模式 GTID

文章目录 一、前提二、修改my.cnf主1 10.255.131.9主2 10.255.131.10 三、配置主主3.1 配置主 10.255.131.93.2 配置从 10.255.131.103.3 配置主 10.255.131.103.4 配置从 10.255.131.9 四、验证五、同步问题排查以及恢复5.1 查看同步状态5.2 查看同步是否数据一致性&#xff0…...

推荐一款多显示器屏幕亮度调节工具:Twinkle Tray

Twinkle Tray中文版使您可以轻松管理多台显示器的亮度级别。 尽管 Windows 10 能够调节大多数显示器的背光,但它通常不支持外部显示器。 Windows 还缺乏管理多台显示器的亮度的任何功能。 该应用程序将一个新图标插入系统托盘,您可以在其中单击以立即访问…...

第十一章 Shiro会话管理和加密

学习目标 11.1 会话管理11.1.1 会话相关API一、获取会话二、会话属性管理三、会话信息获取四、会话控制五、会话监听六、会话DAO七、会话验证 11.2 缓存一、缓存接口二、内置缓存实现三、配置缓存四、使用缓存五、缓存清理六、注意事项 前面两章我们已经掌握了Shiro四大基石的认…...

DDR4单个DQ仿真实战(一)

目录 引言1、新建Workspace2、导入brd文件3、在SiPro中打开Layout:查看并编辑叠层4、PCB剪裁(可选)5、创建SiPro6、创建分析模型7、查看分析结果8、创建原理图9、系统行为级仿真 引言 DDR4仿真将按照以下几个步骤进行: 新建Work…...

Android Studio插件版本与Gradle 版本对应关系

一、背景 Android Studio 构建系统以 Gradle 为基础,并且 Android Gradle 插件添加了几项专用于构建 Android 应用的功能。 虽然 Android 插件通常会与 Android Studio 的更新步调保持一致,但插件(以及 Gradle 系统的其余部分)可…...

Uni-App-01

HBuilder安装卸载 安装 官网地址:https://www.dcloud.io/hbuilderx.html 下载HBuilder最新版 解压到安装目录,路径中不要有中文和空格 在桌面上增加快捷方式 卸载 执行reset.bat 删除HBuilder文件夹(如果提示文件被占用&#xff0…...

Java版本鸿鹄工程项目管理系统源码概述

项目背景 随着企业规模的扩大和业务的复杂化,传统的工程项目管理方式已经无法满足高效、准确、实时的管理需求。为了提高工程管理效率、优化资源配置、降低风险并控制成本,企业决定通过数字化转型,构建一个基于Spring Cloud、Spring Boot、M…...

基于echarts、php、Mysql开发的数据可视化大屏

大屏效果展示 管理员进入数据可视化页面将看到数据可视化大屏。大屏内容包括两个条形图,用于统计当前网站所有用户的MBTI 16型人格分布;玫瑰图,用于展示当前网站用户MBTI四个维度,八个字母的占比;折线图,用…...

Me-and-My-Girlfriend-1

Me-and-My-Girlfriend-1 解题 信息收集 nmap扫描存活主机 我的虚拟机为131 所以发现130为目标靶机。 查看网站,找到可利用点 使用浏览器查看,使用xff伪造本地用户。 注册用户cat,观察url有url_id,改为5,发现alice用户。 将…...

R语言实现GWAS meta分析(1)

1、基于数据集的Meta分析 datafilenamec("data1.txt","data2.txt"), setwd(workdir) library(Metalgwas) a1 name1c() for(i in datafilename){ assign(paste("file",a,sep""),data.table::fread(paste(getwd(),"/","…...

Kafka-代码示例

一、构建开发环境 File > New > Project 选择一个最简单的模板 项目和坐标命名 配置maven路径 添加maven依赖 <dependencies><!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients --><dependency><groupId>org.apache.kaf…...

LLVM - 编译器前端-llvm 基本块、指令、函数 的关系

一:基础概念: 在 LLVM 中,基本块、指令和函数是构建中间表示(IR)的核心概念,它们之间有着紧密的关系,首先了解下基本概念。 1. 基本块(Basic Block) 定义:基本块是一个不包含任何跳转指令的线性代码段,执行顺序是从头到尾。每个基本块至少有一个入口和一个出口。特…...

探索人工智能在自然语言处理中的应用

探索人工智能在自然语言处理中的应用 前言1. 机器翻译2. 情感分析3. 智能客服4. 文本生成未来展望 结语 前言 在信息爆炸的时代&#xff0c;自然语言处理&#xff08;NLP&#xff09;作为人工智能&#xff08;AI&#xff09;的一个重要分支&#xff0c;正以前所未有的速度改变着…...

IFC模型文本的含义

以下代码是一个STEP文件&#xff08;ISO-10303-21标准&#xff09;&#xff0c;它是一种用于表示产品数据的国际标准。STEP文件通常用于在不同的计算机辅助设计&#xff08;CAD&#xff09;系统之间交换数据。下面是对这段代码的逐行解释&#xff1a; HEADER部分&#xff1a; …...

构建高效评奖系统:SpringBoot在教育领域的应用

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了学生评奖评优管理系统的开发全过程。通过分析学生评奖评优管理系统管理的不足&#xff0c;创建了一个计算机管理学生评奖评优管理系统的方案。文章介绍了学生评奖…...

「二叉树进阶题解:构建、遍历与结构转化全解析」

文章目录 根据二叉树创建字符串思路代码 二叉树的层序遍历思路代码 二叉树的最近公共祖先思路代码 二叉搜索树与双向链表思路代码 从前序与中序遍历序列构造二叉树思路代码 总结 根据二叉树创建字符串 题目&#xff1a; 样例&#xff1a; 可以看见&#xff0c;唯一特殊的就…...

在使用代理IP时,需要注意以下几点:

1. 代理IP的质量和稳定性直接影响爬虫的效果。因此&#xff0c;我们需要定期更新代理IP列表&#xff0c;并筛选出可用的代理IP。 2. 有些代理IP可能存在被目标网站封禁的风险。因此&#xff0c;我们需要合理使用代理IP&#xff0c;避免过度频繁地访问目标网站。 3. 在使用代…...

深入理解Java基础概念的高级应用(1/5)

目录 1. Java内存模型&#xff1a;堆、栈与方法区 示例代码&#xff1a;对象存储位置 2. 类加载器的工作原理 示例代码&#xff1a;自定义类加载器 3. JVM如何执行字节码 字节码指令示例 4. Java基础数据类型的存储与操作 自动装箱与拆箱 示例代码&#xff1a;基础类型…...

高可用HA软件

高可用HA&#xff08;High Availability&#xff09;软件在分布式系统架构设计中至关重要&#xff0c;它们能够减少系统停机时间&#xff0c;确保应用程序持久、不间断地提供服务。以下是四款常用的高可用HA软件介绍&#xff1a; Keepalived Keepalived起初是为LVS&#xff08;…...

《近似线性可分支持向量机的原理推导》 拉格朗日函数 公式解析

本文是将文章《近似线性可分支持向量机的原理推导》中的公式单独拿出来做一个详细的解析&#xff0c;便于初学者更好的理解。 公式 9-41 解释&#xff1a; L ( w , b , ξ , α , μ ) 1 2 ∥ w ∥ 2 C ∑ i 1 N ξ i − ∑ i 1 N α i ( y i ( w T x i b ) − ( 1 − ξ …...

信息发布平台毕设实战:从零构建高可用内容分发系统

背景痛点&#xff1a;为什么你的毕设平台总感觉“差点意思”&#xff1f; 很多同学在做“信息发布平台”这类毕业设计时&#xff0c;往往只关注功能实现&#xff0c;忽略了背后的架构和性能问题。结果就是&#xff0c;一个看似功能齐全的平台&#xff0c;一旦面临稍微复杂的场景…...

FLUX小红书V2模型版本对比:V1与V2的核心改进与效果差异

FLUX小红书V2模型版本对比&#xff1a;V1与V2的核心改进与效果差异 1. 引言 如果你最近在玩AI图像生成&#xff0c;特别是想做出那种看起来特别真实、特别有小红书风格的照片&#xff0c;那你肯定听说过FLUX小红书模型。这个模型从V1版本开始就挺火的&#xff0c;主要是因为它…...

Cogito-3B量化部署实测:GTX1650/RTX3050/RTX4060不同显卡配置对比

Cogito-3B量化部署实测&#xff1a;GTX1650/RTX3050/RTX4060不同显卡配置对比 1. 测试背景与目标 Cogito-v1-preview-llama-3B作为一款性能出色的3B参数混合推理模型&#xff0c;在实际部署中面临显存占用的挑战。本次测试旨在评估该模型在不同消费级显卡上的量化部署表现&am…...

DanKoe 视频笔记:生产力提升:专注工作的力量 [特殊字符]

在本节课中&#xff0c;我们将要学习如何通过每天仅 4 小时的专注工作&#xff0c;来显著改变你的生活轨迹。我们将探讨注意力的价值、识别高回报机会的方法&#xff0c;并掌握一套进入并保持深度专注状态的实用技巧。 能够有意识地引导你的注意力&#xff0c;不仅能节省时间&a…...

别再死记硬背了!用ChatGPT/Claude帮你理解AIGC面试题(附Prompt)

用AI对话引擎拆解AIGC面试核心&#xff1a;从死记硬背到深度理解的范式转移 在准备AIGC算法面试时&#xff0c;大多数候选人都会陷入"八股文"的泥潭——机械记忆概念定义却难以理解技术本质。这种学习方式不仅效率低下&#xff0c;更无法应对面试官深入的技术追问。本…...

Phi-4-Reasoning-Vision多场景落地:法律合同截图关键条款识别与逻辑校验

Phi-4-Reasoning-Vision多场景落地&#xff1a;法律合同截图关键条款识别与逻辑校验 1. 项目背景与价值 在法律服务领域&#xff0c;合同审核是耗时且容易出错的关键环节。传统人工审核方式面临两大挑战&#xff1a; 效率瓶颈&#xff1a;律师平均需要30分钟审核一份10页合同…...

STEP3-VL-10B轻量级多模态模型:硬件要求与配置建议

STEP3-VL-10B轻量级多模态模型&#xff1a;硬件要求与配置建议 想在自己的电脑或服务器上跑一个能看懂图片、能聊天、还能做推理的AI模型吗&#xff1f;今天要聊的STEP3-VL-10B&#xff0c;就是一个让你用相对亲民的硬件就能玩转的多模态模型。 你可能听说过那些动辄几百亿、…...

ChatTTS角色系统:从技术原理到生产环境部署指南

在语音合成技术日益成熟的今天&#xff0c;多角色、高表现力的TTS系统已成为互动应用的关键组件。ChatTTS的角色系统允许在同一对话流中动态切换不同音色的语音输出&#xff0c;极大地提升了交互的自然度和沉浸感。然而&#xff0c;在实际生产部署中&#xff0c;开发者常面临一…...

HunyuanVideo-Foley惊艳效果:AI生成的赛博朋克城市雨夜环境音效

HunyuanVideo-Foley惊艳效果&#xff1a;AI生成的赛博朋克城市雨夜环境音效 1. 效果展示&#xff1a;赛博朋克音效的沉浸式体验 HunyuanVideo-Foley 私有部署镜像带来的音效生成能力&#xff0c;让AI创作达到了专业音频工程师的水准。我们以"赛博朋克城市雨夜"为场…...

如何高效将LocalSend打包为MSIX:完整Windows商店发布实战指南

如何高效将LocalSend打包为MSIX&#xff1a;完整Windows商店发布实战指南 【免费下载链接】localsend localsend - 一个开源应用程序&#xff0c;允许用户在本地网络中安全地共享文件和消息&#xff0c;无需互联网连接&#xff0c;适合需要离线文件传输和通信的开发人员。 项…...