加入收藏 | 设为首页 | 会员中心 | 我要投稿 上海站长网 (https://www.021zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MYSQL架构中该怎样主从GTID

发布时间:2022-01-13 14:47:06 所属栏目:MySql教程 来源:互联网
导读:这期内容当中小编将会给大家带来有关MYSQL架构中该怎么主从GTID,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 GTID又叫全局事务ID(Global Transaction ID),是一个已提交事务的编号,并且是一个全局唯一的编号,Mysql
       这期内容当中小编将会给大家带来有关MYSQL架构中该怎么主从GTID,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
 
      GTID又叫全局事务ID(Global Transaction ID),是一个已提交事务的编号,并且是一个全局唯一的编号,Mysql 5.6版本之后在主从复制类型上新增了GTID复制。
 
      GTID是由server_uuid和事务ID组成的。即GUID=server_id:transaction_id.server_uuid是在数据库启动过程中自动生成的。每台机器的server_uuid不一样,同一环境删除重新搭建之后也不一样。
 
工作原理:
 
1.      master更新数据时,会在事务前产生GTID,一同记录到binlog日志中。
 
2.      slave端的I/O线程将变更的binlog,写入到本地的relay log中。
 
3.      sql线程从relay log中获取GTID,然后对比slave端的binlog是否有记录。
 
4.      如果有记录,说明该GTID的事务已经执行,slave会忽略。
 
5.      如果没有记录,slave就会从relay log中执行该GTID的事务,并记录到binlog.
 
环境配置
 
/
 
主服务器
 
从服务器
 
Ip
 
192.168.31.79
 
192.168.31.188
 
hostname
 
mysql
 
mysql2
 
mysql-version
 
5.7.23
 
5.7.23
 
Server-id
 
f99accbf-6690-11ea-a934-080027c1c1ff
 
a535303f-668e-11ea-8be9-080027b0e953
 
1.主库配置
1.1参数配置
 
[root@mysql2 bin]# vi /etc/my.cnf
 
添加内容如下
 
gtid_mode=on
 
enforce_gtid_consistency=on
 
log_bin=on
 
binlog_format=row
 
server-id=79
 
[root@mysql2 bin]# service mysql stop
 
[root@mysql2 bin]# service mysql stop
 
1.2权限配置
 
[root@mysql bin]# mysql -uroot -p
 
mysql> grant replication slave on *.* to 'rep'@'192.168.31.%' identified by 'Oracle123';
 
mysql> flush privileges;
 
2.主库备份数据至从库恢复
注:如果是新搭建的环境,可以不用做迁移步骤。
 
3.从库配置
2.1 从库参数配置
 
[root@mysql2 bin]# vi /etc/my.cnf
 
添加内容如下
 
gtid_mode=on
 
enforce_gtid_consistency=on
 
log_slave_updates=1
 
serve-id=188
 
2.2从库权限配置
 
[root@mysql2 bin]# mysql -uroot -p
 
mysql> change master to master_host='192.168.31.79', master_user='rep',master_password='Oracle123',master_port=3306,master_auto_position=1;
 
mysql> start slave;
 
3.检查主从状态
1)主库
 
mysql> show master status;
  
2)从库
 
mysql> show slave statusG;
  
4.验证
 
1)主库
 
mysql> create database test;
 
2)从库
 
mysql> show databases;
  
注:
 
在mysql 5.7版本之后,gtid_executed数值会被持久化
 
mysql> use mysql
 
mysql> desc gtid_executed;
 
mysql> select * from gtid_executed;
  
在执行reset master中,会清空表内的数据。
 
 mysql> show variables like '%gtid_executed%';
 
该参数用来控制gtid_executed表的压缩。默认值是1000.意味着表压缩在执行1000个
 
事务之后开始。
 
上述就是小编为大家分享的MYSQL架构中该怎么主从GTID了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。

(编辑:上海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读