博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gtid环境下mysqldump对于set-gtid-purged的取值
阅读量:6610 次
发布时间:2019-06-24

本文共 2523 字,大约阅读时间需要 8 分钟。

gtid环境备份的时候,还在为set-gtid-purged=0|1的选择而烦恼吗,一起来分析一下。

[mysql@lxd-vm1@/home/mysql]$ mysqldump --help | grep 'set-gtid-purged' -A 10  --set-gtid-purged[=name]                       Add 'SET @@GLOBAL.GTID_PURGED' to the output. Possible                      values for this option are ON, OFF and AUTO. If ON is                      used and GTIDs are not enabled on the server, an error is                      generated. If OFF is used, this option does nothing. If                      AUTO is used and GTIDs are enabled on the server, 'SET                      @@GLOBAL.GTID_PURGED' is added to the output. If GTIDs                      are disabled, AUTO does nothing. If no value is supplied                      then the default (AUTO) value will be considered.

从命令提供的注释中可以看出,其实该参数有3种取值:

控制是否在备份文件中添加SET @@GLOBAL.GTID_PURGED语句。

1. set-gtid-purged=0|off 不添加。

2. set-gtid-purged=1|on 如果gtid没有开启,则报错;如果开启gtid,则添加。
3. 如果没有提供set-gtid-purged,默认是auto,如果gtid没有开启,不添加;如果开启gtid,则添加。

mysqldump -h5.5.5.101 -uroot -proot --single-transaction --set-gtid-purged=off lxddb t1 > lxddb_t1.sql[mysql@lxd-vm1@/home/mysql]$ egrep -v '^$|^--|^/' lxddb_t1.sql DROP TABLE IF EXISTS `t1`;CREATE TABLE `t1` (  `i1` int(11) NOT NULL DEFAULT '0',  `i2` int(11) NOT NULL DEFAULT '0',  `d` date DEFAULT NULL,  PRIMARY KEY (`i1`,`i2`),  KEY `k_d` (`d`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;LOCK TABLES `t1` WRITE;INSERT INTO `t1` VALUES (3,1,'1998-01-01'),(3,2,'1999-01-01'),(3,3,'2000-01-01'),(3,4,'2001-01-01'),(3,5,'2002-01-01');UNLOCK TABLES;[mysql@lxd-vm1@/home/mysql]$

 

mysqldump -h5.5.5.101 -uroot -proot --single-transaction --set-gtid-purged=on lxddb t1 > lxddb_t1.sql[mysql@lxd-vm1@/home/mysql]$ egrep -v '^$|^--|^/' lxddb_t1.sql SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN;SET @@SESSION.SQL_LOG_BIN= 0;SET @@GLOBAL.GTID_PURGED='84e06268-dfa5-11e7-b0bc-080027a59108:1-2';DROP TABLE IF EXISTS `t1`;CREATE TABLE `t1` (  `i1` int(11) NOT NULL DEFAULT '0',  `i2` int(11) NOT NULL DEFAULT '0',  `d` date DEFAULT NULL,  PRIMARY KEY (`i1`,`i2`),  KEY `k_d` (`d`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;LOCK TABLES `t1` WRITE;INSERT INTO `t1` VALUES (3,1,'1998-01-01'),(3,2,'1999-01-01'),(3,3,'2000-01-01'),(3,4,'2001-01-01'),(3,5,'2002-01-01');UNLOCK TABLES;SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN;[mysql@lxd-vm1@/home/mysql]$

 

结论:

我们备份,就是可能需要拿来进行恢复,是在master上恢复,还是slave上恢复。

如果是在master上进行恢复,那么就需要生成对应的gtid,所以需要使用set-gtid-purged=off

如果是在slave上进行恢复,那么不需要生成对应的gtid,所以需要使用set-gtid-purged=on

转载于:https://www.cnblogs.com/imdba/p/10120752.html

你可能感兴趣的文章
过虑窗体最小化消息
查看>>
(转) Windows下MySQL免安装版的下载与配置
查看>>
扩展OpenLayers右键菜单
查看>>
iphone-common-codes-ccteam源代码 CCPlayer.h
查看>>
HTML头部
查看>>
如何去掉dede列表推荐时标题被加粗
查看>>
bzoj 1304: [CQOI2009]叶子的染色
查看>>
小程序引入多个e-charts
查看>>
Node.js实现热加载
查看>>
PLSQL_Oracle基本概念总结(汇总)
查看>>
分布式icinga2安装与使用
查看>>
【ASP.NET程序员福利】打造一款人见人爱的ORM(二)
查看>>
video设置视频的宽高
查看>>
C#学习九之WPF应用使用SQLite数据库详解
查看>>
【原创】Mindjet Manager思维导图软件云服务功能的使用方法
查看>>
MVC 防止 CSRF 的方法
查看>>
不使用xib创建iphone window
查看>>
sqlserver 连接查询的问题,a表无重复记录,与b表中的记录为1对N关系,如何在查得a表信息时统计b表记录数...
查看>>
2018.5.7每天一题面试题----面向对象的特征
查看>>
Jquery 弹出框出插件 仿IOS效果
查看>>