复制意味着数据从主(主)MySQL 服务器复制到一个或多个辅助(从)MySQL 服务器,而不是仅存储在一台服务器中。可以使用辅助服务器进行读取或管理任务
主从复制
MySQL 服务器异步复制,一个主服务器和一个或多个辅助服务器。
收到事务,主
- 执行事务
- 把修改的数据写入binary log
- 主服务器上进行提交之前,binary log发送到辅助服务器的relay logs
- 提交
- 响应clinet
从
- 重新执行(基于语句的复制)或应用(基于行的复制)事务
- 把修改的数据写入binary log
- 提交
半同步复制
主会等待从节点的确认
组复制 Group Replication
https://dev.mysql.com/doc/refman/5.7/en/group-replication.html
在 Group Replication 中,服务器通过消息传递保持强协调,以构建容错系统。
在一个组中,每个服务器都可以独立执行事务。
- 任何读写 (RW) 事务只有在组成员批准时才会提交。
- 只读 (RO) 事务没有限制,可以立即提交。
- 服务器会执行事务,并将具有唯一标识符的行发送到其他服务器。
- 所有服务器都接收到,就会应用这次修改
如果发生冲突(如果多个服务器上的并发事务更新同一行),认证过程会检测到它,并且该组遵循第一个提交获胜规则。