首页 > 数据库 >mysql 5.7在线开启/关闭GTID【转】

mysql 5.7在线开启/关闭GTID【转】

时间:2023-09-22 10:22:36浏览次数:64  
标签:OFF 5.7 GTID CONSISTENCY master MODE mysql gtid

一、在线开启gtid步骤
步骤1到步骤5在每个mysql节点都执行,不可以单独某个库独立做完所有步骤再去操作其他节点;尤其注意不能先将主库打开gtid,从库任何参数不设置,这样将导致同步中断。

1、检查数据库中是否有不支持gtid的操作
设置ENFORCE_GTID_CONSISTENCY = WARN,运行一段时间,最好包含一天负载最高的时间段,有条件建议观察2~3天,检查日志是否有告警产生

SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = WARN;

2、如果步骤1没有告警产生,设置ENFORCE_GTID_CONSISTENCY为ON
SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = ON;

3、设置GTID_MODE = OFF_PERMISSIVE,所有服务器必须执行完这一步之后才能执行下一步:
SET @@GLOBAL.GTID_MODE = OFF_PERMISSIVE;

该命令的效果:服务器不产生GTID,但是能够接受不带GTID的事务,也能够接受带GTID的事务

4、设置GTID_MODE = OFF_PERMISSIVE
SET @@GLOBAL.GTID_MODE = ON_PERMISSIVE;

该命令的效果:服务器产生GTID,但是能够接受不带GTID的事务,也能够接受带GTID的事务

5、确保在线的匿名事务数为0,设置GTID_MODE=ON
SHOW STATUS LIKE ‘ONGOING_ANONYMOUS_TRANSACTION_COUNT’;

SET @@GLOBAL.GTID_MODE = ON;

6、重启slave,设置为GTID模式
STOP SLAVE [FOR CHANNEL ‘channel’];

CHANGE MASTER TO MASTER_AUTO_POSITION = 1 [FOR CHANNEL ‘channel’];

START SLAVE [FOR CHANNEL ‘channel’];

7、将gtid参数配置到参数文件中
ENFORCE_GTID_CONSISTENCY = ON

GTID_MODE=ON

以上可以写入查看binlog验证,binlog可体现是否开启gtid

二、在线关闭GTID模式操作步骤
1、关闭复制,找到复制位置,切换到传统模式
stop slave;

change master to master_host=‘xxx’,master_port=3306,master_user=‘repl’,master_password=‘root’,master_log_file=‘3306-bin.000056’,master_log_pos=897553222,MASTER_AUTO_POSITION = 0;

##以从库的Relay_Master_Log_File和Exec_Master_Log_Pos 作为MASTER_LOG_FILE和MASTER_LOG_POS 来指定复制开始位置。

##必须要指定MASTER_AUTO_POSITION = 0,否则会有如下报错:

start slave;

2、主备依次设置GTID_MODE为ON_PERMISSIVE、OFF_PERMISSIVE
set @@global.gtid_mode=ON_PERMISSIVE;

set @@global.gtid_mode=OFF_PERMISSIVE;

3、检查global.gtid_owned变量字符串已经为空
select @@global.gtid_owned;

4、主备库关闭GTID
SET @@GLOBAL.GTID_MODE = OFF;

enforce_gtid_consistency=OFF

5、将gtid参数配置到参数文件中
ENFORCE_GTID_CONSISTENCY = OFF

GTID_MODE=OFF
————————————————

转自

mysql 5.7在线开启/关闭GTID_mysql 关闭gtid_程序员小软的博客-CSDN博客
https://blog.csdn.net/hellomrp/article/details/128183983

标签:OFF,5.7,GTID,CONSISTENCY,master,MODE,mysql,gtid
From: https://www.cnblogs.com/paul8339/p/17721690.html

相关文章

  • MySQL备份与恢复
    数据库备份的分类数据备份的重要性备份的主要目的是灾难恢复在生产环境中,数据的安全性至关重要任何数据的丢失都可能产生严重的后果任何数据丢失的原因程序错误人为操作错误运算错误磁盘故障灾难(如火宅、地震)个盗窃从物理与逻辑的角度,备份可分为物理备份:对......
  • MySQL数据库管理
    目录数据库的基本概念数据库的发展主流的数据库介绍MySQL安装方法操作MySQL查看数据库结构SQL语句创建及删除数据库和表修改表名和表结构数据表高级操作数据库用户管理数据库用户授权数据库的基本概念数据描述事物的符号记录包括数字,文字、图形、图像、声音、档案记录等以......
  • 操作mysql
    importpymysqlimportpandasaspdconnection=pymysql.connect( host='127.0.0.1', #服务器ip地址 port=3306, #mysql默认端口号 user="root", #用户名 password="123456", #密码 charset="utf8",#字符集 db="new_dev......
  • Mysql忘记密码后如何重置密码
    长时间不使用本机的Mysql后把密码忘记了咋整?直接上干货:第一步(Mysql部署的位置,若自己能找到就忽略这一步):任务管理器中也可以找到第二步:修改配置文件在my.ini末尾加上 skip-grant-tables=1(这一句是为了忽略数据库密码)第三步:重启数据库服务并重置数据库密码(先用管理员模式......
  • MySQL主从原理及常见架构介绍
    主从概述MySQL主从复制也可以称为MySQL主从同步,它是构建数据库高可用集群架构的基础。它通过将一台主机的数据复制到其他一台或者多台主机上,并重新应用日志(relaylog)中的SQL语句来实现复制功能。MySQL支持单向、双向、链式级联、异步复制,5.5版本之后加入的半同步复制,5.6版本之后......
  • 关于mysql安装过程中的密码设置问题
    在使用setpassword=password("0000000000");更改密码时出现的ERROR1064(42000):YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'password("0000000000")......
  • MySQL锁知识点扫盲大全
     1.为什么需要加锁 在日常生活中,如果你心情不好想静静,不想被比别人打扰,你就可以把自己关进房间里,并且反锁。这就是生活中的加锁。 同理,对于MySQL数据库来说的话,一般的对象都是一个事务一个事务来说的。所以,如果一个事务内,一个SQL正在更新......
  • linux中安装mysql过程中出现的某某包需要被依赖问题
    问题—— 原因,顺序错误 使用rpm安装MySQL,需要严格按照如下的执行顺序进行安装,如果顺序不对,会提示某某包需要被依赖。rpm-ivhmysql-community-common-8.0.34-1.el7.x86_64.rpmrpm-ivhmysql-community-client-plugins-8.0.34-1.el7.x86_64.rpmrpm-ivhmysql-communit......
  • mysql查找data数据路径
    直接在MySQL运行代码showglobalvariableslike"%datadir%"; TRANSLATEwithxEnglishArabicHebrewPolishBulgarianHindiPortugueseCatalanHmongDawRomanianChineseSimplifiedHungarianRussianChineseTraditionalIndonesia......
  • Mysql日志管理
    MySQL的日志默认保存在数据库文件的存储目录(一般为/usr/local/mysql/data/)。也可以修改配置文件,自定义日志文件的保存位置。我这里在编译安装时,数据库文件存储目录设置的是/home/mysql。1.四种日志格式1.1错误日志错误日志,用来记录当MySQL启动、停止或运行时发生的错误信息,默......