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复制的完整性和一致性。

相关推荐
freejackman7 分钟前
【架构篇】双遍历 + 多栈协同:手撸 SQL 血缘引擎的架构思考
java·大数据·数据库·hive·sql·架构·spark
杨云龙UP9 分钟前
TDengine 社区版磁盘空间不足故障处理 SOP:历史日志清理、日志保留策略及数据保留 200 天
数据库·时序数据库·tdengine·tsdb·历史日志清理·trim database·logkeepdays
企业数字化笔记14 分钟前
业务单据怎样接入流程中心?启动条件、实例关联与失败回退
java·spring boot·mysql
betazhou19 分钟前
MySQL Oracle官方备份工具
数据库·mysql·oracle
一万年太久。36 分钟前
mysql主从复制
数据库·mysql
车载中间件通信1 小时前
[TC8测试]TCP_FLAGS_PROCESSING_06
数据库·网络协议·tcp/ip·中间件·tc8
呆萌很1 小时前
达梦数据库(DM)和MySQL核心区别
数据库
l1t1 小时前
DeepSeek总结的pgrust以光速编程:构建 Gravity 查询引擎
数据库·人工智能·postgresql
木木_Q4057733491 小时前
Oracle 增量同步配置指南:只搬变了的数据,不重复也不漏数
数据库·oracle·数据同步·数据库同步·增量同步
升鲜宝供应链及收银系统源代码服务2 小时前
Java Spring Boot 商业版 升鲜宝供应链管理系统--商品模块表与字段分析(商品管理页面业务逻辑与数据表关系分析)
数据库·生鲜配送系统排名·生鲜配送系统架构设计·b2b订货商城解决方案·生鲜配送系统源代码出售·生鲜配送系统设计源代码