浅谈GTID及简单测试

简单介绍一下GTID,并有部分相关实验,技术有限介绍的比较浅显,文中有问题欢迎指正。

GTID相信大家都不陌生,GTID的英文全称为Global Transaction Identifier,在MySQL主从架构中应用广泛。

GTID是由“UUID:事务号“组成的,GTID是基于事务的,在主从架构中,在主库每提交一个事务都会对应生成一个GTID号,GTID支持语句和行格式的复制,而且在主库提交的事务只会在从库应用一次,保证了一致性。

一、下面说一下GTID的优缺点:

1、GTID优点:

①复制安全性高,搭建主从相比与传统的(基于binlog和position号)复制要简单;

②GTID在主库是连续的,保证了数据的一致性;

③故障切换时间更短,降低服务故障时间等。

2、GTID缺点:

①主从表存储引擎必须一致,不能一个innodb一个myisam,这样会导致主备数据不一致,因为GTID是和事务之间一一对应的;

②不允许一个sql同时更新事务引擎表和非事务引擎表;

③在主从模式下,需要主库从库同时开启和关闭gtid;

④不支持create table .... as select 语句,在主库会直接报错的;

⑤不支持create/drop temporary table语句;

⑥不支持传统的复制模式,跳过错误的语句(sql_slave_skip_counter)。

二、GTID部分相关参数介绍(参考官方文档,以及自己总结):