Skip to content

组复制降级 - 导出的sql文件中关闭 binlog 。

导出 sql 内容如下

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 '+'*/ '3fe37f9c-77f2-11f0-b048-ce130ea7b404:1-10,
8e97d6a3-77f2-11f0-b506-ce130ea7b404:1-1636922:1950241-1950310,
8e97e79d-77f2-11f0-b506-ce130ea7b404:1-20,
cabb3e3c-c8fe-11f0-9d27-12b6dcb5af12:1-55487';

分析

在使用 mysqldump 或 DataGrap 等间接使用 mysqldump 备份数据的时候 默认会加入 SESSION.SQL_LOG_BIN= 0。 导致主从数据库数据不一致。

mysqldump -u xxx  -pxxx -h xxxx --single-transaction --routines --triggers --events  --hex-blob     --default-character-set=utf8mb4     --max-allowed-packet=1073741824   --all-databases > /tmp/all_backup.sql

解决

mysqldump 备份的时候加入 参数 --set-gtid-purged=OFF