加载中...
GTID 是为复制拓扑中每个已提交事务分配的全局唯一标识。它由源服务器标识与事务序号组成,使从库能精确记录已回放的事务集合,极大简化了主从切换与故障恢复时的复制定位。

| 全称 | Global Transaction Identifier |
| 组成 | 服务器标识 + 事务序号 |
| 作用 | 唯一标识复制事务 |
| 代表实现 | MySQL、MariaDB |
GTID(Global Transaction Identifier,全局事务标识符)是在复制体系中为每一个提交的事务分配的全局唯一编号。它通常由生成该事务的服务器唯一标识与一个单调递增的事务序号组成,使得整个复制拓扑中的任一事务都能被唯一指代。
在传统复制中,从库需要通过二进制日志文件名与偏移量来记录复制进度,一旦主库切换,重新计算新主库上的对应位点非常繁琐且易错。GTID 用逻辑事务标识取代了物理位点:从库维护一个已执行事务集合,连接新主库时只需比对差集,即可自动定位应从何处继续,显著降低了切换复杂度。
GTID 广泛用于自动化的主从故障切换、多源复制、以及复杂的复制拓扑管理。高可用编排组件借助 GTID 可以快速判断候选从库谁的数据最新,并让其余从库重新指向新主库而不必人工计算位点。
问:GTID 会带来额外开销吗?答:每个事务需分配并记录标识,开销很小,但在大量小事务场景下需注意标识集合可能膨胀,应保持复制链路健康以便及时清理。
问:能否混用 GTID 与传统位点复制?答:同一拓扑内应统一使用一种模式,混用容易导致定位混乱和一致性问题,升级时需按规范逐步启用。

| 全称 | Global Transaction Identifier |
| 组成 | 服务器标识 + 事务序号 |
| 作用 | 唯一标识复制事务 |
| 代表实现 | MySQL、MariaDB |
登录 后参与讨论
暂无讨论,来发表第一条评论吧