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

相关推荐
入瘾5 小时前
etcd 显示连接失败
数据库·chrome·etcd
本体智能5 小时前
预制指标、宽表、SQL、本体ABC:真正决定长期成本的,是一次变更会波及多少层
数据库·sql·本体神经网络·uino数据智能引擎
长安11085 小时前
数据库基础知识----数据库大观
数据库·oracle
J超会运6 小时前
OpenEuler系统MySQL故障排查终极指南
mysql
瀚高PG实验室6 小时前
使用hgdbdeveloper开发工具导出数据后在异机恢复时报错
数据库·瀚高数据库
百结2147 小时前
PostgreSQL 初体验
数据库·postgresql
ward RINL8 小时前
Redis 安装及配置教程(Windows)【安装】
数据库·windows·redis
bingHHB8 小时前
金蝶云星空旗舰版 × 赛狐ERP:亚马逊卖家业财一体化的最后一公里
运维·数据库·集成学习
Nontee9 小时前
Redis高可用架构解析
数据库·redis·架构
淼淼爱喝水9 小时前
DVWA SQL 注入(Medium/High 级别)过滤绕过与防范实验(超详细图文版)
数据库·sql·网络安全