GTID在mysqldump中的作用

port=3000;dbname=gas;/home/mysql/mysql_KaTeX parse error: Expected group after '_' at position 55: …ome/mysql/mysql_̲{port}/etc/user.root.cnf --single-transaction -q --set-gtid-purged=OFF --default-character-set=utf8 KaTeX parse error: Expected group after '_' at position 29: …ome/mysql/mysql_̲{port}/mysql_KaTeX parse error: Expected group after '_' at position 7: {port}_̲{dbname}_date +%Y%m%d%H%M%S.sql

关于GTID是5.6以后,加入了全局事务 ID (GTID) 来强化数据库的主备一致性,故障恢复,以及容错能力。
官方给的:A global transaction identifier (GTID) is a unique identifier created and associated with each transaction committed on the server of origin (master).
所以可能是因为在一个数据库里面唯一,但是当导入其他的库就有可能重复。所有会有一个提醒。

可以通过添加–set-gtid-purged=off 或者–gtid-mode=OFF这两个参数设置。
个人认为是在导入库中重新生产GTID,而不用原来的。

gtid :

MySQL5.6 新特性之GTID

MySQL 5.6 引入了 GTID 特性,因此随 5.6 版本分发的 mysqldump 工具增加了 –set-gtid-purged 选项。
选项名:set-gtid-purged
默认值:AUTO
可选值:ON,OFF,AUTO
作用:是否输出 SET@@GLOBAL.GTID_PURGED 子句
ON:在 mysqldump 输出中包含 SET@@GLOBAL.GTID_PURGED 语句
OFF:在 mysqldump 输出中不包含 SET@@GLOBAL.GTID_PURGED 语句
AUTO:默认值,对于启用 GTID 实例,会输出 SET@@GLOBAL.GTID_PURGED 语句;对于没有启动或者不支持 GTID 的实例,不输出任何 GTID 相关信息。
背景:

 MySQL5.6在5.5的基础上增加了一些改进,本文章先对其中一个一个比较大的改进"GTID"进行说明。

概念:

  GTID即全局事务ID(global transaction identifier),GTID实际上是由UUID+TID组成的。其中UUID是一个MySQL实例的唯一标识。TID代表了该实例上已经提交的事务数量,并且随着事务提交单调递增,所以GTID能够保证每个MySQL实例事务的执行(不会重复执行同一个事务,并且会补全没有执行的事务)。下面是一个GTID的具体形式:

4e659069-3cd8-11e5-9a49-001c4270714e:1-77

更具体的说明见官方说明。

GTID意义:

  引入GTID的意义是什么?

  1)因为清楚了GTID的格式,所以通过UUID可以知道这个事务在哪个实例上提交的。

  2)通过GTID可以极方便的进行复制结构上的故障转移,新主设置。很好的解决了下面这个图(图来自高性能MySQL第10章)的问题。

UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写。

此外:

一般主从架构的数据库,通常相关导入操作只需要在master(主库)端进行即可,但是正如代码中红色部分所示,禁掉了session级别的sql_log_bin,所以在目标端导入t1.sql时,并不会产生对应的bin log日志,

所以该表及其数据并不会被同步到slave端。这是在数据库测试时发现这点是需要注意的。

经过测试发现,当数据库开启GTID模式时才出现综上所述,因此如果数据库用GTID模式,在mysqldump数据时,应该如warning提示加上参数–set-gtid-purged=OFF,此时导出的sql文件(没有了红色部分所标记的)。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值