MySQL5.7 开启GTID复制模式终于不用开启log_slave_updates参数了

MySQL5.6的GTID复制模式,必须开启log_slave_updates参数,否则启动就报错,因为需要在binlog找到同步复制的信息(UUID:事务号),如果在密集型写的环境,比如双十一大促在线支付,这无疑增加了从库不必要的磁盘IO开销。

(注:开启log_slave_updates参数,是把relay-log里的日志内容再记录到slave本地的binlog里。)

但在MySQL5.7里,官方终于做了调整,用一张gtid_executed系统表记录同步复制的信息(UUID:事务号),这样就可以不用开启log_slave_updates参数,减少了从库的压力。

如果你玩过MariaDB10的话,可以看到这块MySQL5.7是参考了MariaDB10的GTID,但MySQL5.7还不能做到普通模式和GTID模式在线切换,如果你想切换为普通模式,必须在my.cnf里,同时在master和slave上注销掉以下参数:

gtid_mode = ON
enforce_gtid_consistency = 1

并且重启mysql进程才生效。在易用性上,MySQL5.7 GTID还是美中不足。

参考:

时间: 2024-11-08 17:25:18

MySQL5.7 开启GTID复制模式终于不用开启log_slave_updates参数了的相关文章

MariaDB 10 Slave Crash-Safe需转为GTID复制模式

之前写了一篇<MySQL5.6 crash-safe replication> ,但在Mariadb10.0.X和10.1.X上不支持relay_log_info_repository = TABLE参数,官网建议用GTID复制模式代替传统复制模式,传统复制模式是不支持Slave Crash-Safe的. 在mysql库下,会有一张gtid_slave_pos表(在安装初始化时,就已经是innodb引擎) START TRANSACTION; -- Statement 1 -- ... -- 

MySQL5.7.16 gtid复制

<基础环境准备:> 首先安装两台MySQL5.7.16数据库,安装如下步骤即可: 一.系统环境准备: ①:系统yum源配置: [linux] name=linux hae baseurl=file:///media/ gpgcheck=1 gpgkey=file:///media/RPM-GPG-KEY-redhat-release ②:挂载Linux7.1系统盘安装必要的软件 yum -y install gcc* gcc-c++ ncurses ncurses-devel cmake bi

esxi开启命令行模式以及命令开启虚拟机

在esxi界面按F2登录选择troubleshooting options选择enable esxi shell返回登录时的界面然后按alt+F1 从命令行启动虚拟机:1.用命令列出虚拟机的ID:vim-cmd vmsvc/getallvms |grep <vm name> 此命令输出的第一行为vmid2.用命令查看虚拟机启动状态:vim-cmd vmsvc/power.getstate <vmid> 3.用命令启动虚拟机:vim-cmd vmsvc/power.on <vm

深入MySQL复制(二):基于GTID复制

相比传统的MySQL复制,gtid复制无论是配置还是维护都要轻松的多.本文对gtid复制稍作介绍. MySQL基于GTID复制官方手册:https://dev.mysql.com/doc/refman/5.7/en/replication-gtids.html 1.gtid基本概念 传统的基于binlog position复制的方式有个严重的缺点:如果slave连接master时指定的binlog文件错误或者position错误,会造成遗漏或者重复,很多时候前后数据是有依赖性的,这样就会出错而导

MySQL5.7配置GTID主从---GTID介绍

一.什么是 GTIDGTID (Global Transaction Identifiers)是对于一个已提交事务的编号,事务的唯一编号,并且是一个全局唯一的编号.GTID 和事务会记录到 binlog 中,用来标识事务.GTID 是用来替代以前 classic 复制方法,MySQL-5.6.2 开始支持 GTID,在 MySQL-5.6.10 后完善.有了 GTID,一个事务在集群中就不再孤单,在每一个节点中,都存在具有相同标识符的兄弟们和它作伴,可以避免同一个事务,在同一个节点中出现多次的情

mysql 5.6 的新特性:GTID 复制

mysql 5.6 的新特性: MySQL 5.6 包含了一个复制的新功能,enabling DevOps teams to reliably scale-out their MySQL infrastructure across commodity hardware, rel="nofollow">Global Transaction Identifiers (GTIDs)功能, 为了解决以下问题: -能够无缝的故障恢复和master与slave的切换 -能把slave指向新的

MySQL主从复制&mdash;&mdash;MySQL-5.6基于GTID及多线程的复制

一.Mysql 5.6 新特性 .... 复制功能的改进 ⒈支持多线程复制,(slave-parallel-workers=0     0: 表示禁用多线程功能:)事实上是针对每个database开启相应的独立线程.即每个库有一个单独的(sql thread),如果线上业务中,只有一个database或者绝大多数压力集中在个别database的话,多线程并发复制特性就没有意义了. ⒉支持启用GTID,对运维人员来说应该是一件令人高兴的事情,在配置主从复制,传统的方式里,你需要找到binlog和P

mysql5.7.24 gtid双主复制+atlas+keepalived

一环境介绍: 系统: centos7 [root@mgr01 ~]# cat /etc/hosts 10.0.0.6 pxc01 10.0.0.7 pxc02 [root@pxc02 ~]# cat /etc/hosts 10.0.0.6 pxc01 10.0.0.7 pxc02 关闭selinux:vim /etc/sysconfig/selinuxgetenforce 保证服务器时间同步: ntpdate ntp1.aliyun.com */5 * * * * ntpdate ntp1.al

Mysql5.7基于GTID的半同步复制

一.GTID是什么 GTID是事务的ID,唯一识别号,全局唯一.随事务记录到Binary Log中,用来标识事务.每个事务有一个Gtid_log_event.GTID的构成:UUID + Sequence Number Sequence Number是MySQL服务器内部的一个事务顺序号.一个MySQL服务器上的事务不会有重复的顺序号(保证服务器内唯一).每个MySQL服务器有一个全局唯一的UUID. GTID的目的简化复制的使用过程和降低复制集群维护的难度,不再依赖Master的binlog文