MySQL purged gtid是如何生成和维护的

目录

  • [1. GTID的基本概念](#1. GTID的基本概念)
  • [2. GTID的生成](#2. GTID的生成)
  • [3. GTID的清除](#3. GTID的清除)
    • [3.1 手动清除二进制日志](#3.1 手动清除二进制日志)
    • [3.2 自动清除二进制日志](#3.2 自动清除二进制日志)
    • [3.3 重置主库](#3.3 重置主库)

在MySQL中,gtid_purged表示已清除的GTID集合。

gtid_purged的生成和维护过程如下:

1. GTID的基本概念

GTID(Global Transaction Identifier)是一个全局唯一的事务标识符,用于标识MySQL中的每个事务。GTID由服务器UUID和事务ID组成,例如:3E11FA47-71CA-11E1-9E33-C80AA9429562:1-5。

2. GTID的生成

当一个事务在主库上提交时,MySQL会生成一个GTID并将其记录在二进制日志中。这个GTID会被复制到从库,从库在执行该事务时也会记录这个GTID。

3. GTID的清除

3.1 手动清除二进制日志

当执行PURGE BINARY LOGS命令时,MySQL会删除指定的二进制日志文件,并将这些文件中包含的GTID添加到gtid_purged中。

sql 复制代码
PURGE BINARY LOGS TO 'binlog.000010';

3.2 自动清除二进制日志

如果配置了expire_logs_days或binlog_expire_logs_seconds,MySQL会定期清除过期的二进制日志,并将这些日志中包含的GTID添加到gtid_purged中。

sql 复制代码
SET GLOBAL expire_logs_days = 7;

3.3 重置主库

当执行RESET MASTER命令时,MySQL会删除所有的二进制日志文件,并将这些文件中包含的GTID添加到gtid_purged中。

sql 复制代码
RESET MASTER;

示例

以下是一个示例,展示如何手动清除二进制日志并查看gtid_purged的更新:

查看当前二进制日志和GTID状态:

sql 复制代码
SHOW BINARY LOGS;
SHOW VARIABLES LIKE 'gtid_purged';

手动清除二进制日志:

sql 复制代码
PURGE BINARY LOGS TO 'binlog.000010';

再次查看gtid_purged的值:

sql 复制代码
SHOW VARIABLES LIKE 'gtid_purged';

通过这些步骤,MySQL能够生成和维护gtid_purged,确保GTID复制的完整性和一致性。

相关推荐
e***19354 小时前
【SqlServer】SQL Server Management Studio (SSMS) 下载、安装、配置使用及卸载——保姆级教程
数据库·sqlserver
6***B484 小时前
存储过程(SQL)
android·数据库·sql
t***31654 小时前
Docker 之mysql从头开始——Docker下mysql安装、启动、配置、进入容器执行(查询)sql
sql·mysql·docker
小马爱打代码4 小时前
避坑指南:MySQL 迁移到 TiDB
数据库·mysql·tidb
一个天蝎座 白勺 程序猿5 小时前
Apache IoTDB(10):数据库操作——从查询到优化的全链路实践指南
数据库·apache·时序数据库·iotdb
q***57745 小时前
MySQL 实验1:Windows 环境下 MySQL5.5 安装与配置
windows·mysql·adb
普普通通的南瓜5 小时前
IP证书在关键信息基础设施安全防护中的实践与挑战
网络·数据库·网络协议·tcp/ip·安全·ssl
合作小小程序员小小店6 小时前
桌面开发,超市管理系统开发,基于C#,winform,sql server数据库
开发语言·数据库·sql·microsoft·sqlserver·c#
quweiie6 小时前
thinkphp8.0链接SQL SERVER2022数据库
数据库·sqlserver·thinkphp
8***84826 小时前
如何在Linux中找到MySQL的安装目录
linux·运维·mysql