GTID全称global transaction identifier
原理:
是在整个复制环境中对一个事物的唯一表示
全局唯一、一个事物对应一个GTID
优势:再恢复的时候,以前做过事物的不再执行,可以节约时间
实验
项目名称:构建一个简单的MySQL主从复制集群
项目环境:2c/4G的服务器(虚拟机),CentOS Linux release 7.9.2009 (Core)、MySQL5.7.34
项目描述:为了提升MySQL的并发能力构建一个简单的MySQL集群,实现读写分离,大大提高MySQL集群的业务处理能力,同时深入学习MySQL的整体部署和对集群架构的理解。
项目步骤:
1.准备好两台安装好的机器,使用脚本一键部署好二进制的MySQL
2.在master服务器上开启二进制日志和配置
socket=/data/mysql/mysql.sock
log_bin
server_id = 1
auto-increment-offset=1
auto-increment-increment=2
gtid-mode=on
log_slave_updates=on
enforce-gtid-consistency=on
port = 3306
open_files_limit = 8192
innodb_buffer_pool_size = 512M
character-set-server=utf8在slave服务器上配置
[mysqld]
socket=/data/mysql/mysql.sock
log_bin
server_id = 2
auto-increment-offset=2
auto-increment-increment=2
gtid-mode=on
log_slave_updates=on
enforce-gtid-consistency=on
port = 3306
open_files_limit = 8192
innodb_buffer_pool_size = 512M
character-set-server=utf83.在master服务器上创建复制二进制的用户并授权
grant replication slave on *.* to 'gtid'@'%' identified by '123456';
4.在master上做一个全备,导出数据,导入到slave上,
保持master和slave上数据的一致
[root@sc-mysql backup]# mysqldump -uroot -p'Sanchuang123#' --all-databases > /backup/all_db.sql
[root@sc-mysql backup]# scp /backup/all_db.sql root@192.168.2.204:/root
[root@slave_mysql ~]# mysql -uroot -p'Sanchuang123#' < all_db.sql
5.在slave上配置去master拉取二进制日志的用户信息和日志文件的名称和位置号
CHANGE MASTER TO MASTER_HOST='192.168.2.129',
MASTER_USER='gtid',
MASTER_PASSWORD='123456',
MASTER_PORT=3306,
MASTER_AUTO_POSITION = 1;
6.在master和slave上都关闭防火墙和selinux
7.在slave服务器上启动slave服务,查看I/O线程和SQL线程是否正常启动
root@(none) 16:28 mysql>show slave status\G; 查询slave
8.验证主从复制的效果