17.9.4 数据定义语句

在 Group Replication 拓扑中,执行数据定义语句(通常称为数据定义语言 (DDL))时需要小心。鉴于 MySQL 不支持原子或事务 DDL,因此不能乐观地执行 DDL 语句并在需要时回滚。因此,缺乏原子性并不直接适合组复制所基于的乐观复制范例。

因此,在复制数据定义语句时需要更加小心。模式更改和对象包含的数据的更改需要通过同一台服务器处理,而模式操作尚未完成并复制到各处。否则可能会导致数据不一致。

笔记

如果该组以单主模式部署,那么这不是问题,因为所有更改都是通过同一台服务器(主服务器)执行的。

警告

MySQL DDL 执行不是原子的或事务性的。服务器在未首先确保组协议的情况下执行和提交。因此,您必须通过同一台服务器为同一对象路由 DDL 和 DML,同时 DDL 正在执行并且尚未在任何地方复制。