SET GLOBAL gtid_purged = 'xxx';
从参数介绍可以看出, 不管是mysqldump还是mysqlpump在使用--set-gtid-purged=OFF参数时都会将设置gtid的语句SET @@GLOBAL.GTID_PURGED和SET @@SESSION.SQL_LOG_BIN取消掉 ,所以加上--set-gtid-purged=OFF参数可以解决两个问题:
解决的问题一:如果导入的主库实例已经存在了gtid全局事务标识符,那么导出开启gtid的实例时就必须加上--set-gtid-purged=OFF,因为不加的话直接导出的SQL文件中会有设置SET @@GLOBAL.GTID_PURGED这行,就会导致报错:GTID_PURGED can only be set when GTID_EXECUTED is empty。
解决的问题二:导入的主库实例下面还挂有从库,那么导出开启gtid的实例时就必须加上--set-gtid-purged=OFF,因为不加的话直接导出的SQL文件中会有设置SET @@SESSION.SQL_LOG_BIN=0这行,就会导致导入的数据不写二进制日志,没有二进制日志从库也就没有数据了。
-
GTID的执行和记录:
- 当
gtid_mode
被设置为ON
时,MySQL会为每个事务生成一个GTID,并在事务日志中记录这个GTID。gtid_purged
变量用于记录那些已经执行过但不再需要保留日志的GTID。
- 当
-
清除二进制日志:
- 二进制日志的清除通常是由
PURGE BINARY LOGS
命令或者通过配置参数(如expire_logs_days
)自动管理的。gtid_purged
变量允许MySQL在没有物理日志文件的情况下,仍然知道哪些GTID已经被执行过。
- 二进制日志的清除通常是由
-
复制和恢复:
- 在复制和恢复操作中,
gtid_purged
变量确保了即使某些事务的日志已经被清除,MySQL也能正确地识别和同步这些事务,特别是在主从复制和故障转移场景中。
- 在复制和恢复操作中,
时来天地皆同力,运去英雄不自由
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2018-12-24 ES06--elasticsearch
2017-12-24 python第四周迭代器生成器序列化面向过程递归