热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysqldump中参数setgtidpurged控制SET@@GLOBAL.GTID_PURGED和SET@@SESSION.SQL_LOG_BIN

mysqldump--master-data=1--single-transaction--databasestest没有加set-gtid-purged时出现警告

mysqldump --master-data=1 --single-transaction --databases test
没有加set-gtid-purged时出现警告提示:

scutech@scutech:/tmp$ mysqldump --master-data=1--single-transaction --databases test >aa.sql
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. To make a complete dump, pass --all-databases --triggers --routines --events.

导出的文件中:

......
SET @@SESSION.SQL_LOG_BIN= 0;
SET @@GLOBAL.GTID_PURGED=/*!80000 '+'*/ '60a5b8ff-95c7-11ea-a28f-fa163e0ec694:1-4';
......

结合警告和导出文件可以解读为GLOBAL.GTID_PURGED设置为源库里面所有的GTID,也就是gtid_executed,即使是部分导出。SESSION.SQL_LOG_BIN= 0 就不写binlog,这样也不会传到备库。
这种情况等于设置–set-gtid-purged=on 和auto。on和auto的区别是当gtid没有激活时,on会报错,auto不会。
如果有–set-gtid-purged=off ,这两项消失。
在MySQL 5.6 和 5.7,可以替换gtid_purged ,在8里面是加到现有的gtid_purged后面。注意看前面的 /!80000 ‘+’/ 部分。

文章下方是我的微信,欢迎加我。👇


推荐阅读
author-avatar
张宏顺Lingling
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有