当前场景:
某些业务场景还未开启GTID服务组,在最新版本中,BINLOG组提交也基于GTID方式,因此如何检测是否符合开启GTID条件,在线切换使用GTID,以及如何快速回滚:
gtid_mode参数新选项:MySQL提供两个额外的选项off_permissive和on_permissive
gtid-mode的几种状态说明:off :不产生gtid,基于binlog+position,slave也不能接受gtid的日志;off_permissive:不产生gtid,但做为slave可以识别gtid事务也可以识别非gtid事务;on_permissive:产生gtid事务,slave可以处理gtid事务和非gtid事务;on:产生gtid事务,slave只接受gtid事务
GTID三个限制
enforce-gtid-consistency=ON时,以下三类语句时不支持的CREATE TABLE ... SELECT statements
CREATE TEMPORARY TABLE or DROP TEMPORARY TABLE statements inside transactions
Transactions or statements that update both transactional and nontransactional tables. There is an exception that nontransactional DML is allowed in the same transaction or in the same statement as transactional DML, if all nontransactional tables are temporary.
而实际上这个限制没有必要这么严格