MySQL如何在线开启/关闭GTID

技术MySQL如何在线开启/关闭GTID小编给大家分享一下MySQL如何在线开启/关闭GTID,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一

边肖将与大家分享MySQL如何在线开启/关闭GTID。相信大部分人还不太了解,所以分享这篇文章给大家参考。希望你看完这篇文章后收获多多。让我们一起来发现吧!

一 前言

MySQL DBA大多熟悉MySQL 5.6,开始提供基于GTID模式的主从复制。该功能简化了复制,降低了主从复制维护的难度,提高了复制的可操作性,不再依赖binlog文件名和文件中的位置。然而,它有许多局限性。5.7版MySQL支持对GTID的以下改进:

答:不需要重启MySQL服务器。

b配置过程在线,整个复制集群仍然对外提供读写服务。

不需要改变复制拓扑。

可以在任何结构的复制集群中在线启用D GTID功能。

在线修改GTID时,必须遵循以下顺序。

off-off _ permission-on _ permission-on不能跳过链接。比如gtid_mode不能直接从off改成on,否则MySQL会提示你。

错误1788(HY000): @ @ GLOBAL的值。一次只能改变一个步骤。还要注意,该值必须在所有服务器上同时递增或递减。有关说明,请参阅手册。

在练习在线升级之前,我们需要了解一下在MySQL 5.7 :版本中GTID_MODE的含义。

OFF :不生成GTID,GTID,Slave只接受没有GTID的交易。

OFF_PERMISSIVE :不生成GTID,GTID,Slave接受没有GTID的事务和有GTID的事务。

On _ permission:生成GTID和GTID,Slave接受没有GTID的事务和有GTID的事务。

ON :生成GTID,GTID,Slave只能接受带有GTID的交易。00-1010需要注意的是,只有数据库版本为5.7.6以及之后版本才能支持GTID的在线开通。测试GTID开启时模拟主库读写压力测试:

sysbench-test=OLTP . Lua-OLTP-tables-count=1-OLTP-table-size=500000-MySQL-db=sysbench-MySQL-user=sysbench-MySQL-password=sysbench-MySQL-SOC ket=/SRV/my 3316/run/MySQL . sock-max-time=600-num-threads=1-OLTP-test-mode=complex run

00-1010 setglobal1。不支持非事务引擎。

2.创建表格.不支持select语句(主库执行时直接报告错误)。

3.一个SQL不允许同时更新事务引擎和非事务引擎的表。

4.不支持创建临时表和删除临时语句。

如果没有警告,请在所有实例上执行:

设置全局ENFORCE _ GTID _ CONSISTENCY=ON

二 在线开启GTID

设置全局GTID _ MODE=OFF _ PERMISSIVE

如果主库没有生成GTID,GTID,从属实例接受没有GTID的事务和有GTID的事务。在执行下一步之前,请确保在所有实例中执行该命令。

2.1 在主从复制结构中所有的实例中执行

设置全局GTID _ MODE=ON _ PERMISSIVE

主库开始生成GTID,GTID,Slave接受没有GTID的事务和有GTID的事务。

00-1010在每个实例节点上执行以下命令,以检查匿名事务是否被使用

好多检查几次,以便确认该参数的值是0.

[RW][TEST:3316]>SHOW STATUS LIKE 'ONGOING_ANONYMOUS_TRANSACTION_COUNT';
+-------------------------------------+-------+
| Variable_name                       | Value |
+-------------------------------------+-------+
| Ongoing_anonymous_transaction_count | 0     |
+-------------------------------------+-------+
1 row in set (0.00 sec)

如果在从库上检查只需要一次满足为0 即可。

2.5 确保第四步之前的binlog全部为应用。

确保操作之前的所有binlog都已经被其他服务器应用了,因为匿名的GTID必须确保已经复制应用成功,才可以进行下一步操作。如何检查呢? 其实最简单的方式是在从库库执行show slave status检查应用位点的情况。如果追上了,则可以继续。否则需要等待从库应用完binlog之后在进行下一步。

2.5 在主从复制结构中所有的实例中执行:

set global GTID_MODE = ON;

该参数的功能是让系统产生GTID ,Slave只能接受带GTID的事务。

2.6 在从库上执行:

设置slave 复制中MASTER_AUTO_POSITION=1。

[RO][TEST:3316]>stop slave;
[RO][TEST:3316]>CHANGE MASTER TO MASTER_AUTO_POSITION = 1;
[RO][TEST:3316]>[RW][TEST:3316]>start slave;

至此,将基于位点的复制关系升级为GTID模式。结束了吗?还没呢,记得修改my.cnf 添加

gtid_mode = on
enforce_gtid_consistency = on

三 在线关闭GTID

关闭GTID的步骤其实和开启的步骤相反:

3.1 关闭slave 复制中的 MASTERAUTOPOSITION
[RO][TEST:3316]>stop slave;
[RO][TEST:3316]>CHANGE MASTER TO MASTER_LOG_FILE = file,
MASTER_LOG_POS = position  MASTER_AUTO_POSITION = 0;
[RO][TEST:3316]>[RW][TEST:3316]>start slave;
3.2 在所有的实例上执行:

set global GTID_MODE = ON_PERMISSIVE;

3.3 在所有的实例上执行:

set global GTID_MODE = OFF_PERMISSIVE;

3.4 等待 @@GLOBAL.GTID_OWNED 的值是一个空字符串为止。

SELECT @@GLOBAL.GTID_OWNED;

3.5 检查master上的binlog中的日志都已经被slave应用完毕
3.6 在所有实例上设置GTID_MODE 为off

set global GTID_MODE = OFF;

3.7 在所有实例上执行:

SET global GTID_MODE = OFF;

SET global ENFORCE_GTID_CONSISTENCY = OFF;

以上是“MySQL如何在线开启/关闭GTID”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/73746.html

(0)

相关推荐

  • 分析数据库都做了哪些操作

    技术分析数据库都做了哪些操作这篇文章主要介绍“分析数据库都做了哪些操作”,在日常操作中,相信很多人在分析数据库都做了哪些操作问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”分析数据库都做了哪

    攻略 2021年11月4日
  • C++ 调试问题:对象包含与成员函数不兼容的类型限定符

    技术C++ 调试问题:对象包含与成员函数不兼容的类型限定符 C++ 调试问题:对象包含与成员函数不兼容的类型限定符今天调试C++自定义String代码的时候,碰到一个问题,编译期报错:对象包含与成员函数

    礼包 2021年11月13日
  • 医保跨省转移,如何异地转移社保和医保

    技术医保跨省转移,如何异地转移社保和医保医保跨省转移手续:首先要在原参保地办理医疗保险关系注销手续,然后由本人向市社保中心提出医疗保险关系转移申请医保跨省转移;凭转出地经办机构出具的《参保(合)凭证》以及原参保地医疗保险

    生活 2021年10月31日
  • 黑曼巴英文,用英文介绍科比的黑曼巴精神

    技术黑曼巴英文,用英文介绍科比的黑曼巴精神曼巴精神focused on being in the momentMamba mentality is aconstantquest
    to find answers
    曼巴精神是

    生活 2021年10月28日
  • PostgreSQL中ExecInsert函数的实现逻辑是什么

    技术PostgreSQL中ExecInsert函数的实现逻辑是什么这篇文章主要介绍“PostgreSQL中ExecInsert函数的实现逻辑是什么”,在日常操作中,相信很多人在PostgreSQL中ExecInsert函

    攻略 2021年11月11日
  • 如何提高pip安装速度

    技术如何提高pip安装速度这篇文章主要介绍了如何提高pip安装速度,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 pip 安装普通方法:pip insta

    攻略 2021年11月25日