MySQL复制拓扑4

文章目录

主要内容

  1. 预备知识
    MySQL主从复制是MySQL数据库中常用的一种高可用性和数据备份方案,它可以将主数据库的数据同步到从数据库,从而实现数据的备份和读写分离。下面是MySQL主从复制的详细原理及工程实现:
    主从复制的原理:

主从复制的原理是通过在主数据库上记录所有的数据变更操作(如INSERT、UPDATE、DELETE)并将这些操作记录在二进制日志(Binary Log)中,然后从数据库通过读取主数据库的二进制日志来获取这些数据变更操作,并在从数据库上执行相同的操作,从而保持从数据库和主数据库的数据一致性。

一.启用GUID并配置循环复制

二进制日志坐标只适应于简单的复制结构,对于复杂的比如循环、双向和多源复制,二进制日志坐标就不能唯一标识一个事务了,这个时候必须使用GTID(全局事务标识符)来记录产生更改的事务。

1.其中,UUID用来唯一标识每一个服务器,事务的编号记录了在该服务器上执行的事务的顺序。使用SELECT @@server_uuid\G命令可以查看服务器的UUID,sever1的UUID值显示如下:

代码如下(示例):
select @@server_uuid\G

在这里插入图片描述
在复杂复制拓扑中,必须使用GTID才能唯一标识某一个事务。
下面我们将在三个服务器上启用GTID,并构建循环拓扑,也即将server1设置为server3的slave,在这种结构中,每一个服务器既是master,同时又是slave,在任何一个服务器上的修改,都会同步到其余的两个服务器上。

2.在三个节点上分别操作,先关闭mysqld实例,然后修改my.cnf配置文件,去除gtid-mode=ON和enforce-gtid-consistency两个选项的注释,保存。

代码如下(示例):
systemctl stop mysqld
vim /etc/my.cnf
cat /etc/my.cnf

在这里插入图片描述

3.分别启动三个mysqld实例:

代码如下(示例):
systemctl start mysqld
systemctl status mysqld

在这里插入图片描述

4.在server2和server3上执行stop slave命令以停止从属服务器上的I/O 和SQL 线程。

代码如下(示例):
stop slave;

5.在sever1、server2和server3上分别执行reset master命令,该命令会复位现有的二进制日志文件,并将gtid_executed和gtid_purged设置为空字符串,以便日志文件仅包含使用GTID 的事件。

代码如下(示例):
reset master;
select @@server_uuid\G

在这里插入图片描述

6.在server2和server3上分别执行CHANGE MASTER TO MASTER_AUTO_POSITION=1;和START SLAVE USER=‘repl’ PASSWORD=‘oracle’;恢复前面的三层复制结构,注意这次使用的是GTID。

代码如下(示例):
change master to MASTER_TO_POSITION=1;
start slave user='repl' password='oracle';
show slave status\G

在这里插入图片描述

7.验证复制功能,在server1上删除city表ID大于4060的行;在server2和server3上查看到相同的同步结果,复制成功:

代码如下(示例):
delete from world.city where id>4060;select id,name 
from world.city
order by id desc
limit 5;

在这里插入图片描述
在这里插入图片描述

8.在server3,检查从属服务器状态:

在这里插入图片描述
可以看到,server3上执行的事务,其事务初始执行位置是在server1。

9.继续,在server1上执行changemaster to命令,更改server1为server3的master,并启动复制:

代码如下(示例):
change master to MASTER_HOST='server3',MASTER_AUTO_POSITION=1;
start slave user='repl' password='oracle';

在这里插入图片描述

10.在server2上删除city表ID大于4050的行:

代码如下(示例):
delete from world.city where id > 4050;select id,name
from world.city
order by desc
limit 5;

在这里插入图片描述

11.在server1上大于4050的行也被删除,查询server1的gtid_executed变量可以看到该删除操作的初始执行位置是server2(server2的UUID=0469d41c-f7db-11ed-aa03-000c29bd1425):

代码如下(示例):
select id,name from world.city 
order by id desc
limit 5;select @@global.gtid_executed\G

在这里插入图片描述


总结

以上是今天要讲的内容,学到了MySQL复制拓扑的启用GUID并配置循环复制。

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

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

相关文章

区域自动气象站讲解

TH-QC10当我们每天查看天气预报,安排出行计划,或是在户外活动时关注天气变化,很少有人会想到这一切背后默默付出的“英雄”——区域自动气象站。这些看似不起眼的气象监测设备,却在我们日常生活中扮演着至关重要的角色。今天&…

单链表经典oj题 (一) 简单

1.删除指定节点数据(非尾节点),要求时间复杂度为O(1) . - 力扣(LeetCode) 在之前我们将单链表删除指定节点的操作是先遍历找到pos的前一个结点,然后再进行删除,但是现在要求再O(1)时间内完成&am…

Kubernetes有状态任务

有状态任务是指执行期间需要维护一定状态或数据的任务或工作。这些任务通常需要记录并维护数据、状态、上下文或进度信息,并且这些信息在任务执行期间保持持久。有状态任务的解决目标是确保任务在不同的环境、节点或时间点之间维持一致的状态和标识。这种任务通常需…

2-3 AUTOSAR ASW Runable可运行实体

返回总目录->返回总目录<- 目录 一、概述 二、RTE Event 一、概述 运行实体(Runnable Entity,RE)是一段可执行的代码,其包含实际实现的函数(具体的逻辑算法或者操作)。一个软件组件可以包含一个或者多个运行实体。 Runnable就是SWC中的函数,而在AutoSAR架构在被…

Windows Server 2012 R2安装远程桌面服务

文章目录 一、打开【服务器管理器】二、点击【添加角色和功能】三、点击【下一步】四、点击【下一步】五、点击【下一步】![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/05b61a830faf477e81f858ec00bbdfff.png)六、勾选【远程桌面服务】→点击【下一步】七、点击【…

sharo反序列化漏洞

启动docker 服务 sudo service docker start 打开靶场 sudo docker run -d -p 80:8080 medicean/vulapps:s_shiro_1 输入docker虚拟机地址打开靶机sharo框架 如何利用漏洞 打开工具目录在终端中打开 输入靶机地址 打开yaki监听端口可以设置为6666 返回工具填写靶机ip和端口 …

Windows应急响应

1.排查隐藏账号 查看注册表 找到攻击者用户目录文件 排查用户异常 eventvwr.msc 分析用户登录日志 排查可疑端口 排查可疑进程 检查启动项、计划任务和服务 查看系统补丁信息 安装火绒&#xff0c;在安全工具里有火绒剑 计划任务 使用D盾对主机进行检测&#xff0c;发现隐藏账户…

中非绿色能源合作走深走实

近日&#xff0c;第十六届非洲能源大会在南非立法首都开普敦举行&#xff0c;探讨实现非洲能源转型的可持续解决方案。近年来&#xff0c;中国与非洲国家不断加强绿色能源合作&#xff0c;促进双方优势资源互补&#xff0c;逐步探索合作共赢的绿色能源合作方案。 势头良好 近年…

【201】Java8读取JSON树形结构并插入到MySQL数据库表中

我写了一个 maven 项目的 Demo&#xff0c;用来演示 JAVA8 如何读取 JSON 文件树形结构&#xff0c;并将这种树形结构保存到 MySQL 中。 json文件 city.json {"name": "山东省","sub": [{"name": "青岛市","sub"…

什么是SYN攻击,有什么办法防御SYN攻击

自进入数字化互联网时代&#xff0c;网络技术给我们带来了许多服务&#xff0c;为人们的生活增添了许多便利。但同时&#xff0c;网络安全问题也日益凸显&#xff0c;其中DDoS攻击&#xff0c;即分布式拒绝服务攻击&#xff0c;已经成为一种常见的网络威胁。这种攻击方式通过控…

Python爬取公众号封面图(零基础也能看懂)

&#x1f4da;博客主页&#xff1a;knighthood2001 ✨公众号&#xff1a;认知up吧 &#xff08;目前正在带领大家一起提升认知&#xff0c;感兴趣可以来围观一下&#xff09; &#x1f383;知识星球&#xff1a;【认知up吧|成长|副业】介绍 ❤️感谢大家点赞&#x1f44d;&…

文献速递:深度学习胰腺癌诊断--深度学习算法用于从疾病轨迹预测胰腺癌风险

文献速递&#xff1a;深度学习胰腺癌诊断--深度学习算法用于从疾病轨迹预测胰腺癌风险 麦田医学 美好事物中转站 2024-04-02 14:36 Title 题目 A deep learning algorithm to predict risk of pancreatic cancer from disease trajectories 深度学习算法用于从疾病轨迹预测…

Redis 客户端

Redis 客户端 客户端-服务器结构 Redis 同 Mysql 一样&#xff0c;也是一个客户端-服务器结构的程序&#xff0c;结构如下图&#xff1a; 注&#xff1a;Redis 客户端和服务器可以在同一个主机上&#xff0c;也可以在不同主机上 Redis 客户端的多种形态 自带的命令行客户端&…

HTML:表单

案例&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>报名表</title> </head> <body><form action"demo/welcome.php" method"post">名字&#xff1a;<inpu…

【经典算法】LeetCode25:K 个一组翻转链表(Java/C/Python3,Hard)

#算法 目录 题目描述思路及实现方式一&#xff1a;递归思路代码实现Java 版本C 语言版本Python3 版本 复杂度分析 方式二&#xff1a;迭代和原地反转思路代码实现Java 版本C 语言版本Python3 版本 复杂度分析 总结相似题目 标签&#xff1a;链表、递归 题目描述 给你链表的头…

金融企业区域集中库的设计构想和测试验证

导读 本文探讨了金融企业区域集中库的设计构想和测试验证&#xff0c;包括架构设想、数据库整合场景测试及优势和使用设想。作者提出利用 TiDB 数据库产品集中建设区域集中库&#xff0c;解决 MySQL 存量节点的整合问题&#xff0c;实现部署的标准化、按需扩展和统一运维管理。…

阿里云4核8G服务器ECS通用算力型u1实例优惠价格

阿里云4核8G服务器优惠价格955元一年&#xff0c;配置为ECS通用算力型u1实例&#xff08;ecs.u1-c1m2.xlarge&#xff09;4核8G配置、1M到3M带宽可选、ESSD Entry系统盘20G到40G可选&#xff0c;CPU采用Intel(R) Xeon(R) Platinum处理器&#xff0c;阿里云活动链接 aliyunfuwuq…

11 flink-sql 中基于 mysql-cdc 连接 mysql-pxc 集群无法获取增量数据问题

前言 问题是来自于 群友, 2024.03.29, 也是花了一些时间 来排查这个问题 大致的问题是用 mysql-cdc 连接了一个 mysql-pxc 集群, 然后创建了一个 test_user 表 使用 "select * from test_user" 获取数据表的数据, 可以拿到 查询时的快照, 但是 无法获取到后续对…

拾光坞N3 ARM 虚拟主机 i茅台项目

拾光坞N3 在Dcoker部署i茅台案例 OS&#xff1a;Ubuntu 22.04.1 LTS aarch64 cpu&#xff1a;RK3566 ram&#xff1a;2G 部署流程——》mysql——》java8——》redis——》nginx mysql # 依赖 apt update apt install -y net-tools apt install -y libaio* # 下载mysql wg…

CSS设置字体样式

目录 前言&#xff1a; 1.font-family&#xff1a; 2.font-style&#xff1a; 3.font-weight&#xff1a; 4.font-size&#xff1a; 5.font-variant&#xff1a; 6.font&#xff1a; 前言&#xff1a; 在网页中字体是重要的组成部分&#xff0c;使用好字体可以让网页更…