详解MySQL的GTID_PURGED()函数:获取已经清理过的 GTID

yizhihongxing

GTID_PURGED()函数是MySQL中的一个用于查看或操作GTID(全局事务标识符)集合的函数。GTID是MySQL 5.6及以上版本中默认启用的一个特性,用于跟踪分布式事务中的数据变更,从而实现更快捷的复制、备份和故障恢复。

GTID_PURGED()函数主要用于查询或修改MySQL实例中已经被标识为“已经应用”的GTID集合。当进行主从复制或主主复制时,MySQL会记录所有已经发送的GTID,并在从库上记录已经应用的GTID,以进行数据复制。GTID_PURGED()函数可以查看已经应用的GTID集合,从而帮助我们更好地管理GTID。

GTID_PURGED()函数的使用方法:

1. 查询已经应用的GTID集合

使用下面的命令可以查询当前MySQL实例已经应用的GTID集合:

SELECT @@GLOBAL.gtid_executed;

也可以使用下面的命令查询当前MySQL实例中已经应用的,但是尚未包括在gtid_executed变量中的GTID:

SELECT @@GLOBAL.gtid_purged;

如果当前MySQL实例中没有配置GTID,则会返回NULL值。

2. 修改已经应用的GTID集合

在一些特殊的情况下,我们可能需要手动修改GTID集合,例如从库的数据复制出现问题,需要重新定义GTID集合以解决复制问题。可以通过修改MySQL配置文件/etc/my.cnf来定义gtid_purged变量,配置如下:

[mysqld]
gtid_purged = "GTID集合以逗号分隔的字符串"

其中,“GTID集合以逗号分隔的字符串”表示需要手动定义的GTID集合。在修改后,需要重启MySQL服务才能生效。

实例1:

假设当前MySQL实例已经应用的GTID集合为“e844b7d8-fc44-11eb-bbec-0242ac120005:1-10”,需要手动修改成“e844b7d8-fc44-11eb-bbec-0242ac120005:1-8”:
首先,关闭MySQL服务:

sudo systemctl stop mysql

然后,在/etc/my.cnf中添加下面的内容:

[mysqld]
gtid_purged=e844b7d8-fc44-11eb-bbec-0242ac120005:1-8

保存修改后,启动MySQL服务:

sudo systemctl start mysql

最后,使用如下命令查询修改后的GTID集合:

SELECT @@GLOBAL.gtid_purged;

实例2:

假设我们需要将GTID集合从一个MySQL从库复制到另一个MySQL从库。可以使用如下命令来实现:
在原有MySQL从库中查询已经应用的GTID集合:

SELECT @@GLOBAL.gtid_executed;

使用查询结果,在另一个MySQL从库中执行如下命令:

SET @@GLOBAL.gtid_purged='查询到的GTID集合';

这样就可以将GTID集合从一个MySQL从库复制到另一个MySQL从库了。需要注意的是,被复制的MySQL从库必须先停止服务,修改完GTID集合后再启动服务。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解MySQL的GTID_PURGED()函数:获取已经清理过的 GTID - Python技术站

(1)
上一篇 2023年4月1日
下一篇 2023年4月1日

相关文章

  • 详解MySQL的UNCOMPRESSED_LENGTH()函数:返回压缩过的字符串的解压缩长度

    UNCOMPRESSED_LENGTH()函数是MySQL中用于获取存储在压缩列中的值的未压缩长度的函数。该函数接受一个压缩的二进制字符串作为参数,并返回解压缩后的长度值。这个函数可以用于任何的压缩类型的列,比如 COMPRESSED、COMPACT 和 DYNAMIC 等。 使用方法 UNCOMPRESSED_LENGTH()函数的使用方法很简单,只需要将…

    MySQL函数大全 2023年3月24日
    00
  • 详解MySQL的ROW_COUNT()函数:返回查询影响的行数

    MySQL 的 ROW_COUNT 函数用于获取上一条执行的 INSERT、UPDATE、DELETE 或 REPLACE 语句所影响的行数。具体来说,ROW_COUNT 返回的值是一个整数,表示最近一次操作对应的语句在执行期间所影响的行数。 ROW_COUNT 函数通常与 INSERT、UPDATE、DELETE 或 REPLACE 语句一起使用。例如,如…

    MySQL函数大全 2023年4月1日
    00
  • 详解MySQL的SOUND_EX()函数:返回两个字符串的 Metaphone 算法匹配级别

    MySQL的SOUND_EX()函数可以用来比较两个字符串的音频相似度。它返回一个0到1之间的数字,表示两个字符串的相似程度。这个数字越大,表示两个字符串越相似。它的使用方法如下: SOUND_EX(str1) 其中str1是要比较的字符串,必须是字符串类型。 下面我们来看一个实例: 例1:比较两个相似的字符串 SELECT SOUND_EX('h…

    MySQL函数大全 2023年3月24日
    00
  • 详解MySQL的FOUND_ROWS()函数:返回查询结果的行数

    MySQL的FOUND_ROWS()函数是用于获取上一次查询中实际获取的行数,而不是返回结果集中的行数。它可以帮助用户更好地了解数据库操作的实际结果和一些统计信息,对于一些需要对返回结果进行分页、排序等操作的场景也非常有用。 FOUND_ROWS()函数的使用方法比较简单,只需要在上一次查询语句的末尾添加SQL_CALC_FOUND_ROWS关键字即可,例如…

    MySQL函数大全 2023年4月1日
    00
  • 详解MySQL的DAYOFYEAR()函数:返回日期在一年中的天数

    MySQL的DAYOFYEAR()函数的作用是返回指定日期的年份中的第几天。 DAYOFYEAR()函数的使用方法: 语法:DAYOFYEAR(date) 参数:date是日期格式的值,可以是DATE、DATETIME、TIMESTAMP类型的数据,也可以是字符串、数值或其他可以自动转换为日期格式的数据类型。 返回值:代表指定日期的年份中的第几天的整数值,取…

    MySQL函数大全 2023年4月1日
    00
  • 详解MySQL的TIME_FORMAT()函数:将一个时间格式化为指定的字符串

    MySQL的TIME_FORMAT()函数用于将时间类型的数据以指定格式输出为字符串。它的使用方法如下: TIME_FORMAT(time, format) 其中,time表示要进行格式化的时间数据,可以是时间类型或时间字符串;format则表示输出的格式,它应该是一个格式化字符串,其中包括类似于%c、%H等占位符。 下面给出两个具体的实例,以便更好地理解T…

    MySQL函数大全 2023年3月24日
    00
  • 详解MySQL的STR_TO_DATE()函数:将一个字符串转换为日期

    MySQL的STR_TO_DATE函数是将字符串转换为日期类型的一个函数。其主要作用是将字符串格式的日期类型转换为日期类型,以在MySQL中进行日期操作。 该函数的基本语法: STR_TO_DATE(str,format) 其中,str表示要转换的字符串,format表示要转换的日期字符串的格式,该参数是必须的。 实例1: 假设有一个表格event,其中有一…

    MySQL函数大全 2023年3月24日
    00
  • 详解MySQL的AVG()函数:查询平均值

    MySQL的AVG()函数用于计算指定列的平均值(即所有数值的总和除以行数)。下面是AVG()函数的语法: AVG(column_name) 其中column_name是要计算平均值的列名或列表达式。 例如,假设有一个名为students的表格包含三列,分别是id、name和score,其中score列包含学生的成绩。现在,我们想要计算所有学生的平均成绩。可…

    MySQL函数大全 2023年3月22日
    00
合作推广
合作推广
分享本页
返回顶部