背景
MySQL5.6 支持slave crash safe特性,根据之前对slave crash safe特性的认识,在配置了以下参数的情况下,可以保证slave crash后保证数据的一致性。
relay_log_info_repository = TABLE
relay_log_recovery = ON
但是,用MySQL5.6(Percona Server 5.6.31) 配置基于GTID的主从复制(MASTER_AUTO_POSITION=1)后,进行slave宕机测试时,发现slave恢复后,复制正常但数据不一致(注意没有报错,主备的GTID也是一致的!!!)。
MySQL参数
log_bin = /data/mysql/binlog
sync_binlog = 1
innodb_flush_log_at_trx_commit = 2
log_slave_updates = true
gtid_mode = on
enforce_gtid_consistency = true
master_info_repository = TABLE
relay_log_info_repository = TABLE
relay_log_recovery = ON
测试方法
搭建主从复制
使用上面的参数搭建主从复制
创建测试表
mysql> show create table test.test1;
+-------+--------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------+
| test1 | CREATE TABLE `test1` (
`id` int(11) NOT NULL,
`num` int(11) DEFAULT NULL,