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

[mysql@lxd-vm1@/home/mysql]$ mysqldump --help | grep 'set-gtid-purged' -A
--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. -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() NOT NULL DEFAULT '',
`i2` int() NOT NULL DEFAULT '',
`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 (,,'1998-01-01'),(,,'1999-01-01'),(,,'2000-01-01'),(,,'2001-01-01'),(,,'2002-01-01');
UNLOCK TABLES;
[mysql@lxd-vm1@/home/mysql]$
mysqldump -h5.5.5. -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= ;
SET @@GLOBAL.GTID_PURGED='84e06268-dfa5-11e7-b0bc-080027a59108:1-2';
DROP TABLE IF EXISTS `t1`;
CREATE TABLE `t1` (
`i1` int() NOT NULL DEFAULT '',
`i2` int() NOT NULL DEFAULT '',
`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 (,,'1998-01-01'),(,,'1999-01-01'),(,,'2000-01-01'),(,,'2001-01-01'),(,,'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

gtid环境下mysqldump对于set-gtid-purged的取值的更多相关文章

  1. C++下基本类型所占位数和取值范围

    原文:http://hi.baidu.com/magicdemon/blog/item/821b2e22d7df494cad34debd.html C++下基本类型所占位数和取值范围: 符号属性    ...

  2. jquery操作select下拉框的多种方法(选中,取值,赋值等)

    Query获取Select选择的Text和Value: 语法解释: 1. $("#select_id").change(function(){//code...}); //为Sel ...

  3. react 在IE9下input标签使用e.target.value取值失败

    在react项目开发中,input标签使用onChange方法获取输入值改变state: <input type="text" id="redeemNum" ...

  4. CentOS下Yum的$releasever和$basearch的取值

    CentOS下Yum源配置文件中如CentOS-Base.repo的$releasever和$basearch的取值 $releasever的值,这个表示当前系统的发行版本,可以通过如下命令查看: r ...

  5. MySQL5.7(5.6)GTID环境下恢复从库思(qi)路(yin)方(ji)法(qiao)

      要讨论如何恢复从库,我们得先来了解如下一些概念: GTID_EXECUTED:它是一组包含已经记录在二进制日志文件中的事务集合 GTID_PURGED:它是一组包含已经从二进制日志删除掉的事务集合 ...

  6. MySQL5.7(5.6)GTID环境下恢复从库思路方法(转发)

    要讨论如何恢复从库,我们得先来了解如下一些概念: GTID_EXECUTED:它是一组包含已经记录在二进制日志文件中的事务集合 GTID_PURGED:它是一组包含已经从二进制日志删除掉的事务集合. ...

  7. mysql 在gtid环境下缺少一部分binlog部署从库

    我的环境: 有两台linux服务器 一台是192.168.1.1  mysql  端口3301 一台是192.168.1.2   mysql 端口3303 要讨论如何恢复从库,我们得先来了解如下一些概 ...

  8. angular select2 下拉单选和多选的取值赋值

    官网:http://select2.github.io/examples.html 兼容性: 引入文件 /select2.min.js /select2.min.css html <select ...

  9. (转载)linux下Yum的$releasever和$basearch的取值

    https://blog.csdn.net/whatday/article/details/51097456

随机推荐

  1. np.vstack与np.hstack

    转自:https://zhuanlan.zhihu.com/p/82996332   留作备忘

  2. java开发学生信息管理系统 源码

    开发环境:    Windows操作系统开发工具: Eclipse+Jdk+Tomcat+MYSQL数据库 运行效果图 源码及原文链接:https://javadao.xyz/forum.php?mo ...

  3. 复杂系统架构设计<1>

    这两天开始读由Edward Crawley(爱德华 克劳利).Bruce Cameron(布鲁斯 卡梅隆).Daniel Selva(丹尼尔 塞尔瓦)著作的系统架构,一开始看目录以为是介绍系统软件架构 ...

  4. Linux部署MongoDB

    下载安装包 打开网站 https://www.mongodb.com/download-center/community查找与Linux版本一致的MongoDB安装包.我这里选择安装包格式为tgz压缩 ...

  5. kubernetes监控

    总体设计思想 总体设计架构图Kubernetes monitoring architecture 设计介绍 监控分成两个部分 核心指标流程 包括的组件有 kubelet.resource estima ...

  6. 有哪些「看似复杂,实则简单」的 PS 技巧?

    Mac版ps2019哪里有?本次主要以组合键为主,PS中隐藏功能都是通过这些“组合技”启动的,据统计熟练地使用一系列组合技会让你的效率提升30%(纯属虚构).其中一些比较难理解的我都制作了GIF动态图 ...

  7. HTML基础标签图片文本超链接列表表格介绍

    1.HTML基础标签图片常见代码形式<img src="图片路径地址" alt="属性名" title="占位符">常见的图片格 ...

  8. JAVA中级开发应该掌握的小知识点

    一.悲观锁.乐观锁的区别: 悲观锁:一段执行逻辑加上悲观锁,不同线程同时执行,只有一个线程可以执行,其他线程在入口处等待,直到锁被释放.乐观锁:一段执行逻辑加上乐观锁,不同线程同时执行,可以同时进入执 ...

  9. .net Core3.0 +Nlog+Sqlserver

    1.下载Nlog.Nlog.Web.AspNetCore包 2.添加NLog.config  xml文件 资料https://github.com/NLog/NLog/wiki/Database-ta ...

  10. 如何利用 WPS Office 进行 IIS Log 分析

    找到 IIS Log 打开 Internet Information Service (IIS) Manager 点击左侧 Connections > Sites,在右侧 Sites 列表中定位 ...