一、主从介绍
主从复制:主服务器可以读写,从服务器可以读,主服务器写的时候,从服务器也同步
双主复制:两个服务器都是主服务器,都可以读写,互相同步,只要有一个写,另一个就会同步,但必须指定相同主键,初始状态需要相同。
组复制:多个sever(半)同步复制
GTID:不再依赖binlog文件名和文件中的位置,前几种都需要依赖,且极容易出错,需要flush logs,但需要5.7之后的版本才支持。
二、GTID
GTID的限制
- 不支持非事务引擎
- 不支持create table ... select 语句复制(主库直接报错)
原理:( 会生成两个sql,一个是DDL创建表SQL,一个是insert into 插入数据的sql。由于DDL会导致自动提交,所以这个sql至少需要两个GTID,但是GTID模式下,只能给这个sql生成一个GTID ) - 不允许一个SQL同时更新一个事务引擎表和非事务引擎表
- 在一个复制组中,必须要求统一开启GTID或者是关闭GTID
- 开启GTID需要重启(5.7除