mysqldump --set-gtid-purged=OFF参数

泄露秘密 提交于 2020-04-04 18:43:41
使用mysqldump导出数据的时候收到选项 set-gtid-purged=AUTO的影响和非GTID下导出不同。如果在GTID开启情况下使用如下语句导出数据:
    mysqldump --single-transaction --master-data=2 -R -E --triggers --all-databases
在GTID开启的情况下会多如下设置:
    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='b660b07e-7d26-11e9-92f1-005056ae9ab5:1-226';
    设置原因:    因为如果我们使用这个备份做主从,是否生成binary log Event就意味着在导入数据的时候是否基于本地数据库生成新的GTID,如果生成了本地GTID显然是不对的,所以将SQL_LOG_BIN设置为0是必须的。
    接着需要进行gtid_purged变量的设置,gtid_purged变量的设置会修改下面几个地方:
        1.mysql.gtid_executed表
        2.gtid_purged变量
        3.gtid_executed变量
    当然也可以使用 --set-gtid-purged=OFF 选项来告诉mysqldump我不需要设置SQL_LOG_BIN = 0和gtid_purged变量,但是初始化搭建主从的时候一定不要设置为OFF。
      --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.
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!