前言
mysql主从架构有4中,本文使用最常用的无损复制模式来搭建。无损复制是基于GTID技术完成,GTID (Global Transaction ID),也就是全局事务ID, 其保证为每一个在master主上提交的事务在复制集群中可以生成一个唯一的ID,首先从服务器会告诉主服务器已经在从服务器执行完了哪些事务的GTID值,然后主库会有把所有没有在从库上执行的事务,发送到从库上进行执行,并且使用GTID的复制可以保证同一个事务只在指定的从库上执行一次,这样可以避免由于偏移量的问题造成数据不一致。
- GTID= source_id:transaction_id
- source_id 就是执行事务的主库的server-uuid值server-uuid值是在mysql服务首次启动生成的,保存在数据库的数据目录中,在数据目录中有一个auto.conf文件
- transaction_id 事务ID则是从1开始自增的序列,表示这个事务是在主库上执行的第几个事务
一、准备环境
准备3台虚拟机服务器 node-1,node-2和node-3,node-1安装master数据库(主库),node-2和node-3安装slave数据库(从库)。
IP | 主机 | 系统 | MySQL | 角色 |
---|---|---|---|---|
192.168.56.131 | node-1 | CentOS7.9 | 5.7.36 | Master node(主库) |
192.168.56.132 | node-2 | CentOS7.9 | 5.7.36 | Slave1 node(从库) |
192.168.56.133 | node-3 | CentOS7.9 | 5.7.36 | Slave2 node(从库) |