故障现象
Master-slave+GTID架构下,从master导入5.6的备份,发现数据没有同步到从库,通过查看备份文件内容,发现sql_log_bin被设置为0从而在导入时禁用了binlog引起。
/*!40101 SET@OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET@OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
SET@MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN;
SET@@SESSION.SQL_LOG_BIN= 0;
-- GTID state atthe beginning of the backup
原因分析
Mysqldump版本要求:5.6对应的mysqldump
那么很奇怪,mysqldump为何会莫名其妙地加上这几句命令呢,通过测试我发现
场景1
mysqldump -hXXXXXX -P3306 -uucloudbackup -pXXXXX--all-databases >/tmp/xx.sql
head -20/tmp/xx.sql
-- MySQL dump10.13.ucloudrel1 Distrib5.6.20-ucloudrel1, for Linux (x86_64)
--
-- Host: 10.9.160.127 Database:
--------------------------------------------------------
-- Serverversion 5.6.20-ucloudrel1-log
/*!40101 SET@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET@OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET@OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SETNAMES utf8 */;
/*!40103 SET@OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SETTIME_ZONE