首页 > 数据库 >mysql_gtid学习笔记

mysql_gtid学习笔记

时间:2023-02-05 21:12:28浏览次数:49  
标签:slave log 笔记 master gtid mysql table GTID

一、GTID概述

GTID是MYSQL5.6新增的特性,GTID(Global Transaction Identifier)全称为全局事务标示符,用以数据库实例事务唯一标识,其组成主要是source_id和transaction_id 即GTID = source_id:transaction_id。其中source_id是数据库启动自动生成的数据库实例唯一标识,保存在auto.cnf中,而transaction_id则是事务执行的序列号。

二、GTID优缺点

优点:

复制安全性更高,一个事务在每个实例上只执行一次;
    故障切换简单,可通过设置MASTER_AUTO_POSITION=1,而非master_log_file和master_log_pos来建立主从关系;
    可根据GTID确定事务最早提交的实例;

缺点:

组复制中,必须要求统一开启GTID或者关闭GTID;
    不支持复制create table table_name select ... from table_name_xx ;
    不支持create temporary table和drop temporary table;
    不支持sql_slave_skip_counter,可通过set global gtid_next='' 跳过;
    从库和主库都必须设置log_slave_updates

三、GTID工作原理

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。

6、在解析过程中会判断是否有主键,如果没有就用二级索引,如果没有就用全部扫描。

四、GTID开启和关闭

gtid_mode=ON(必选)
  log_bin=ON(必选)
  log-slave-updates=ON(必选)
  enforce-gtid-consistency(必选)
  log-bin = /home/mysql/mysql-bin(必选)
  binlog_format = MIXED(必选mixed或者row)
  ## 
  change master to master_host = 'ipaddr',master_port = 3306,master_user = 'username',master_password='password',master_auto_position = 1;

五、GTID适用场景

1、搭建高可用架构,方便主从切换后,新的从库重新指定主库(例如一主二从的结构,A为mater,B为Slave,C为Slave,A宕机切换到B后,C重新指定主库为B)

2、不经常使用create table table_name select * from table_name/create temporary table/update t1,t2 where ...这种语句的场合

六、GTID相关参数

参数 comment
gtid_executed 执行过的所有GTID,可通过reset master重置
gtid_purged 丢弃掉的GTID,设置后从而导致slave不会再去master请求这些GTIDs,并且Executed_Gtid_Set为空时,才可以设置此值
gtid_mode gtid模式
gtid_next session级别的变量,下一个gtid
gtid_owned 正在运行的gtid
enforce_gtid_consistency 保证GTID安全的参数

标签:slave,log,笔记,master,gtid,mysql,table,GTID
From: https://www.cnblogs.com/haiyoyo/p/17093944.html

相关文章

  • 矩阵笔记1:矩阵分析(第三版)-史荣昌-第一章:线性空间和线性变换
    文章目录​​0笔记说明​​​​1书本内容​​​​1.1线性空间​​​​1.2基与坐标、坐标变换​​​​1.3线性子空间​​​​1.4线性映射​​​​1.5线性映射的值域、......
  • php7 安装mysqli实例讲解
    php7怎么安装Mysqli?Centosphp7安装mysqli扩展心得在新配服务器时发现,php无法连接到mysql。通过phpinfo发现。根本没有显示mysqli的相关配置。经过一系列研究。总结了......
  • ES Monitoring 整理笔记
    Monitoring是elasticstack的监控模块,监控信息存在es索引中,并且可以通过kibana进行可视化的展示。(收集监控数据的方式从6.5版本起由Collectors-Exporters模式逐步迁移到使......
  • RHEL8 命令学习笔记01
    常用命令查看IP信息ipaddr命令ipaddr等价于ipaddress;直接输入ipaddr回车将显示本机上所有网卡的IP信息查看单个网卡的IP输入ipaddressens32回车,表示查看网卡名为e......
  • RocketMQ 学习笔记
    为什么要学习RocketMQ?相信无论是前端还是后端的同学,不管是在平常的自我充电、还是日常的工作中,对RocketMQ、Kafka等主流消息队列多多少少都有一定的了解。现在的服务端......
  • [MySQL] 《数据库系统概念》阅读笔记
    第二章关系数据库在关系模型(relationalmodel)中,关系用来指代表(table),元组用来指代行(row),表中的一行代表了一组值之间的一种联系,行中的每一列(column)代表一个属性,属性允许的......
  • mac-docker安装使用mysql
    参考:https://blog.csdn.net/m0_67402588/article/details/1260751861、下载镜像,注意这里要下载适配了arm架构的镜像源dockerpullmysql/mysql-server2、创建容器dock......
  • FHQ-Treap 学习笔记
    FHQ-Treap学习笔记Treap=Tree+Heap.Treap是一种弱平衡二叉树,可以看作是笛卡尔树:其每个点有一个二元组\((Key,Value)\),\(Key\)满足二叉搜索树的性质,而\(Value\)......
  • Slope trick 学习笔记
    Slopetrick学习笔记概述Slopetrick是一种维护凸函数优化dp的方式。通过记录函数的转折点和最右段的一次函数,就可以表示出一个凸函数。一个转折点\(x\)表示在\(......
  • 《基本子串结构》阅读笔记
    (就是对一些严谨概念的形式化)定义3.1(扩展串):将子串\(t\)左右扩张到最长的\(t'\)使得\(t\)与\(t'\)的出现次数相同,称为扩展串\(ext(t)\)。引理3.1:\(ext(t)\)存......