当前位置:   article > 正文

mysqldump --set-gtid-purged参数详解_gtid_purged

gtid_purged

 在开启了GTID模式的数据库,使用mysqldump进行部分数据备份的时候,经常会遇到如下警告

Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. 

该警告的意思为:

在开启了GTID模式的数据库,如果你对数据库的部分数据进行了备份,如果不加参数--set-gtid-purged=OFF,该备份中也会包含该数据库的所有GTID。

不添加--set-gtid-purged=OFF命令行参数 ,备份文件的头部会包含以下内容:

 

系统变量( gtid_purged) 的全局值 @@GLOBAL.gtid_purged是一个 GTID 集合,包含已提交但不存在于binlog中的所有 GTID 组成。 gtid_purged是 gtid_executed的子集 。GTID 的以下类别位于 ​​​​​​​gtid_purged:

  • 未开启binlog的从库提交过事务的GTID
  • 写入二进制日志文件(现已被清除)的事务的 GTID。
  • 由语句SET @@GLOBAL.gtid_purged 显式添加到集合中的 GTID .

发出 RESET MASTER 会导致gtid_purged 的值重置为空字符串。

什么时候需要手动设置 gtid_purged变量?

可以手动设置 gtid_purged 的值,以便在服务器上记录某个 GTID 集中的事务已被应用,尽管它们不存在于服务器上的任何二进制日志中。此操作的一个示例是当正在恢复服务器上一个或多个数据库的备份,但您没有包含服务器上事务的相关二进制日志时。

在 MySQL 5.7 中,仅当 gtid_executed 为空字符串时才可以更新 gtid_purged 的值 。因此gtid_purged为空字符串。当复制之前尚未开始,或者复制之前未使用 GTID 时,就会出现这种情况

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/490375
推荐阅读
相关标签
  

闽ICP备14008679号