
关于–set-gtid-purged的疑问??
这个参数主要的作用是啥?
经常看到mysqldump 中有时候 –set-gtid-purged =on 参数,有时候加 –set-gtid-purged=off
不理解其中的适用场景,麻烦通俗的方式,解释下
我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
回答交流
Markdown
请输入正文
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~

这个参数主要的作用是啥?
经常看到mysqldump 中有时候 –set-gtid-purged =on 参数,有时候加 –set-gtid-purged=off
不理解其中的适用场景,麻烦通俗的方式,解释下
首先!用该参数,那么你一定开了gtid
然后该
set-gtid-purged=off:备份出的结果只包含数据内容。
set-gtid-purged=on:备份出的结果会多如下内容
SET @MYSQLDUMP\_TEMP\_LOG\_BIN = @@SESSION.SQL\_LOG\_BIN; SET @@SESSION.SQL\_LOG\_BIN= 0; \-- \-- GTID state at the beginning of the backup \-- SET @@GLOBAL.GTID\_PURGED=/\*!80000 '+'\*/ '5029caee-6240-11ea-a39a-00163e0e18ce:1-40040175617, 805c7edf-5cc6-11e8-860d-00163e1089b9:1-80692653, 8cbe8fb4-8e2f-11ec-8d44-00163e16c857:1-8';
复制
场景一:
已经构建好了主从,此时从某个实例mysqldump数据导入到该主从中。
那么set-gtid-purged=off,因为你导入主从时主库必须记录日志,这样才能同步到下游的从库
场景二:
已经有一个主节点,想mysqldump全量后构建主从
那么set-gtid-purged=on,因为你新的从库必须知道目前全量的数据是在主库的哪个位置点(就是上面提到set @@xxx那些),这样才可以进行后续的增量同步
场景三:
两个不相关实例间同步,例如线上到测试,数据迁移等
set-gtid-purged=off,因为新来的数据和原来的实例没有任何关系,新库需要记录自己的日志。