MySQL 基于 GTID 主从复制

GTID

定义

GTID 是 MySQL 事务标识,为每一个提交的事务都生成一个标识,并且是全局唯一的,这个特性是从 MySQL5.6 引进的。

组成

GTID 是由 UUID + TID,UUID 是MySQL的唯一标识,每个MySQL实例之间都是不同的。TID是代表了该实例上已经提交的事务数量,并且随着 事务提交 单调递增

优点

MySQL 主从 基于 GTID 复制,不同于传统复制基于 binlog 日志位点。当主从切换时,MySQL从节点 自动根据事务 在新主库上找到复制位点。GTID复制时,会跳过已经执行过的事务。加强了数据库主备数据一致性。

搭建主从

主库数据备份
mysqldump -uroot -p123456 -h127.0.0.1 -P3307 --single-transaction --master-data=2 --triggers --routines  --all-databases > /backup/all.sql
主从开启GTID

主从库 配置文件添加

gtid_mode = on   #开启gtid模式
enforce_gtid_consistency = on  #强制gtid一致性,开启后对特定的create table不被支持

之后重启 主从 数据库

GTID验证

登录主从验证

mysql> show variables like '%gtid%';
+---------------------------------------------------+-----------+
| Variable_name                                     | Value     |
+---------------------------------------------------+-----------+
| binlog_gtid_simple_recovery                       | ON        |
| enforce_gtid_consistency                          | ON        |
| group_replication_allow_local_disjoint_gtids_join | OFF       |
| group_replication_gtid_assignment_block_size      | 1000000   |
| gtid_executed_compression_period                  | 1000      |
| gtid_mode                                         | ON        |
| gtid_next                                         | AUTOMATIC |
| gtid_owned                                        |           |
| gtid_purged                                       |           |
| session_track_gtids                               | OFF       |
+---------------------------------------------------+-----------+
10 rows in set (0.01 sec)


mysql> show master status\G
*************************** 1. row ***************************
             File: binlog.000016
         Position: 1658
     Binlog_Do_DB:
 Binlog_Ignore_DB:
Executed_Gtid_Set: aadaaaaa-adda-adda-aaaa-aaaaaaddaaaa:1-52,
b9193c37-89a7-11ee-8978-00155d68e7c7:1-9
1 row in set (0.00 sec)

可以看到,GTID 开启后 执行 查看当前数据库状态。会多一个 Executed_Gtid_Set 指标

从库还原主库数据
root@LAPTOP-FPIQJ438:/usr/local/mysql-slave# mysql -uroot -p123456 -h127.0.0.1 -P3309
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.38-log MySQL Community Server (GPL)


Copyright (c) 2000, 2023, Oracle and/or its affiliates.


Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql>
mysql>
mysql>
mysql>
mysql> source /backup/all.sql

主库创建复制用户
mysql> create user 'fz'@'%' identified by "123456";
Query OK, 0 rows affected (0.01 sec)


mysql> grant replication slave on *.* to 'fz'@'%';
Query OK, 0 rows affected (0.00 sec)


mysql>
mysql>
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

从库开启复制
mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)


mysql>
mysql>
mysql>
mysql>
mysql> reset slave ;
Query OK, 0 rows affected (0.01 sec)
mysql>
mysql>
mysql>
mysql> change master to master_host='127.0.0.1',master_user='fz',MASTER_PORT=3307,master_password='123456',master_auto_position=1;
Query OK, 0 rows affected, 1 warning (0.03 sec)


mysql>
mysql>
mysql>
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)

可以看到 GTID 复制 不像 传统的基于binlog复制。不需要 binlog文件pos位置位点

从库验证

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 127.0.0.1
                  Master_User: fz
                  Master_Port: 3307
                Connect_Retry: 60
              Master_Log_File: binlog.000016
          Read_Master_Log_Pos: 1658
               Relay_Log_File: LAPTOP-FPIQJ438-relay-bin.000002
                Relay_Log_Pos: 1777
        Relay_Master_Log_File: binlog.000016
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 1658
              Relay_Log_Space: 1986
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 2
                  Master_UUID: b9193c37-89a7-11ee-8978-00155d68e7c7
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp:
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set: b9193c37-89a7-11ee-8978-00155d68e7c7:2-9
            Executed_Gtid_Set: 1d48af6d-89a9-11ee-a07d-00155d68e7c7:1-2,
aadaaaaa-adda-adda-aaaa-aaaaaaddaaaa:1-52,
b9193c37-89a7-11ee-8978-00155d68e7c7:1-9
                Auto_Position: 1
         Replicate_Rewrite_DB:
                 Channel_Name:
           Master_TLS_Version:
1 row in set (0.00 sec)

可以看到 Slave_IO_Running Slave_SQL_Running 均为 YES,搭建成功

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

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

相关文章

Servlet-执行流程生命周期

一、思考 在上一篇文章Servlet基本概念中,我们抛出了一个问题:我们定义一个类实现了Servlet接口后,是谁创建了这个类的对象呢,又是谁调用了类中的service方法呢?本篇我们将介绍Servlet的执行流程。 二、执行流程 根…

Dreamweaver CS 操作

服务器 在Windows 10中添加IIS 可以将自己的电脑设置为服务器,在Windows 10中添加IIS的步骤如下: 在开始按钮上点击右键,选择“控制面板”。从控制面板选择“程序”。然后选择“启用或关闭Windows功能”。在弹出的对话框中,找到…

【华为OD机试真题2023CD卷 JAVAJS】查找一个有向网络的头节点和尾节点

华为OD2023(C&D卷)机试题库全覆盖,刷题指南点这里 查找一个有向网络的头节点和尾节点 知识点图DFS搜索 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 给定一个有向图,图中可能包含有环,图使用二维矩阵表示,每一行的第一列表示起始节点,第二列表示终止节…

Error: Failed to download template from registry: fetch failed

第一次构建Nuxt项目时,出现在这样的错误!!! 如果你也是这样得错误,修改hosts也没用。我试了 是因为你的npm安装了其他镜像源, 这个时候你就需要手动下载了: web端访问: https://ra…

x-cmd pkg | csview - 美观且高性能的 csv 数据查看工具

目录 介绍首次用户功能特点类似工具与竞品进一步阅读 介绍 csview 是一个用于在命令行中查看 CSV 文件的工具,采用 Rust 语言编写的,支持中日韩/表情符号。它允许用户在终端中以表格形式查看 CSV 数据,可以对数据进行排序、过滤、搜索等操作…

牛仔行头目标检测竞赛 李沐老师Kaggle(有代码有注释)

一、比赛地址 CowBoy Outfits Detection | Kaggle 二、数据介绍 这次比赛的数据集一共有4879个image,需要自己划分训练集和验证集。annotation的格式是json,因此如果用yolo系列的算法会涉及到json2txt这一步。当然如果不用yolo系列的就不要这段代码了。…

PyTorch Tutorial

本文作为博客“Transformer - Attention is all you need 论文阅读”的补充内容,阅读的内容来自于 https://pytorch.org/tutorials/intermediate/char_rnn_classification_tutorial.html#recommended-preparation 建议的准备流程。 Deep Learning with PyTorch: …

java实现局域网内视频投屏播放(五)视频搜索和投屏自动切换下一个

代码链接 这次对ui做了一些调整,整体分成了5个类别分别为 搜索设备播放任务已下载视频列表视频搜索下载任务列表 视频搜索 搜索 点击搜索后,会从执行所有VideoResolver实现类的search方法,将搜索到的结果汇总到一起,根据视频的…

Python爬虫---scrapy shell 调试

Scrapy shell是Scrapy提供的一个交互式shell工具,它可以帮助我们进行爬虫的开发和调试。可以使用它来测试xpath或css表达式,查看它们是如何工作的,以及它们从你试图抓取的网页中提取的数据。它允许你在编写spider时交互地测试表达式&#xff…

set -e的作用

今天看人家代码看到一个很有意思的命令 后面我搜索了一下,感觉还是很好用的 set -e 是一个调试用的好东西 比如test.sh echo "执行第一个命令" cd /aaa/bbb echo "执行第二个命令"结果如下 可以看到第二个命令是执行了,虽然我的第…

stm32学习笔记:DMA

每个DMA通道硬件触发源是不一样的,要使用某个外设的硬件触发源,就必须使用它连接的那个通道 12个独立可配置的通道:DMA1(7个通道),DMA2(5个通道) 每个通道都支持软件触发和特定的硬件触发 C8T6 DMA资源:DMA1 &#xff…

陶瓷碗口缺口检测-图像形态学

图像形态学 对得到的灰度图像,需要进行二值化处理和区域填充。二值化涉及两个步骤,第一,对图像行图像分割,将图像分割成目标和和背景;第二,对分割后图像进行区域填充。本例中的背景为黑色,可以…

前端工程化相关

工具方法: 知道软件包名,拿到源码或者路径的方法 在浏览器输入以下内容,就可以找到你想要的。。。 unpkg.com/输入包名 一、模块化 ESM特性清单: 自动采取严格模式,忽略“use strict”每个ESM模块都是单独的私有作用…

x-cmd pkg | csvkit - csv 实用工具集

目录 介绍首次用户功能特点类似工具与竞品进一步阅读 介绍 csvkit 是一个用Python编写的工具包,用于处理CSV文件。该工具包提供了一组命令行工具,可用于转换、查询和分析CSV文件。csvkit的主要命令包括csvcut(用于选择特定列)、c…

又涨了:net的域名铁定涨价

关注卢松松,会经常给你分享一些我的经验和观点。 又要涨价了,又要涨价了,又要涨价了!继.com域名涨价后,.net的域名也逐步涨价。最近一年来域名疯狂涨价,几个月内已经几乎翻番。 阿里云2月1日起上调.net英文域名价格…

allegro PCB设计心得笔记(二) PCB板框设计心得

Cadence Allegro软件设计PCB板框时,使用Add -> line,在Option选择Board Geometry/Outline,根据PCB需要输入对应坐标,设计好板框。 使用Z-Copy命令设计Route Keepin和Package Keepin时,需要先使用使用Shape -> Co…

仿真验证方法(3)——物理验证

目录 一、物理验证的分类 二、DRC 2.1 设计规则 2.2 规则示例 2.3 线宽违例 2.4 间距违例 2.5 交叠违例 三、金属覆盖图形密度检查 四、天线比率检查 4.1 起因 4.2 计算 4.3 改进 五、LVS检查 六、物理验证常用的EDA工具 七、总结 一、物理验证的分类 对于物理验…

哪里能找到好用的PPT模板?12个免费模板网站让你畅快办公!

你是否有过这样的经历,在准备重要会议或者演讲的时候,为找不到合适的PPT模板而困扰?或是在网上漫无目的地搜寻,结果收获的是设计平淡无奇的PPT模板? 如果你有同样的疑问,那么你来对地方了!在这…

什么是有机搜索引擎优化以及如何入门

什么是有机搜索引擎优化? 有机搜索引擎优化,简称 SEO,是指从搜索引擎的无偿搜索结果中增加网站流量的做法。 未付费搜索结果是获得的列表,而不是付费的。 这样做的目的是让您的网页在与您业务相关的未付费搜索结果中排名靠前。…

高级路由技术案例

文章目录 案例项目一:1、静态ECMP和浮动静态路由配置实验2、浮动静态路由配置 案例项目二:使用filter-policy过滤路由案例项目三:IS-IS基本配置案例项目四:OSPF基本配置案例任务一:OSPF单区域配置案例任务二&#xff1…