在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

MySQL如何在线开启/关闭GTID

140次阅读
没有评论

共计 3065 个字符,预计需要花费 8 分钟才能阅读完成。

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

一 前言

MySQL DBA 大都熟悉 MySQL 5.6 版本开始提供基于  GTID 模式的主从复制,该特性简化复制和降低主从复制维护的难度,提高复制的可运维性,不再依赖 binlog 文件名和文件中的位置。但是它有很多限制,5.7 版本 MySQL 支持对 GTID 做了如下改进:

a 不需要重启 MySQL 服务器.

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

c 不需要改变复制拓扑结构.

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

在线修改 GTID 时,必须按照如下顺序  

OFF  -  OFF_PERMISSIVE  -  ON_PERMISSIVE  -  ON

不能跳过其中环节,比如 gtid_mode 从 off 不能直接变为 on,否则 MySQL 会进行提示。

ERROR 1788 (HY000): The value of @@GLOBAL.GTID_MODE can only be changed one step at a time: OFF – OFF_PERMISSIVE – ON_PERMISSIVE – ON. Also note that this value must be stepped up or down simultaneously on all servers. See the Manual for instructions.

在实践 online 升级之前,我们需要了解 MySQL 5.7 版本的 GTID_MODE 的含义:

OFF            : 不产生 GTID,Slave 只接受不带 GTID 的事务 
OFF_PERMISSIVE : 不产生 GTID,Slave 即接受不带 GTID 的事务, 也接受带 GTID 的事务
ON_PERMISSIVE  : 产生 GTID,Slave 即接受不带 GTID 的事务, 也接受带 GTID 的事务
ON             : 产生 GTID,Slave 只能接受带 GTID 的事务。

二 在线开启 GTID

需要说明的是只有数据库版本是 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-socket=/srv/my3316/run/mysql.sock –max-time=600 –num-threads=1 –oltp-test-mode=complex run

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

set global1. 不支持非事务引擎。
2. 不支持 create table … select 语句 (在主库执行时直接报错)。
3. 不允许一个 SQL 同时更新一个事务引擎和非事务引擎的表。
4. 不支持 create temporary table 和 drop temporary 语句。

如果没有任何 warning 出现,则在所有实例上执行:

set global ENFORCE_GTID_CONSISTENCY = ON;

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

set global GTID_MODE = OFF_PERMISSIVE;

让主库不产生 GTID,Slave 实例即接受不带 GTID 的事务, 也接受带 GTID 的事务。确保一定要在所有实例中执行完该命令之后再执行接下来的步骤。

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

set global GTID_MODE = ON_PERMISSIVE;

主库开始产生 GTID,Slave 即接受不带 GTID 的事务, 也接受带 GTID 的事务。

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

在各个实例节点上执行如下命令检查匿名事务是否消耗完毕,最好多检查几次,以便确认该参数的值是 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”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-26发表,共计3065字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 男女交性视频免费播放 | 亚洲精品精华液一区 | 国产精品久久久久高潮 | 国产国语亲子伦亲子 | 国产精品酒店视频 | 欧美人与动欧交视频 | 国产亚洲精品美女久久久久 | 国产精品福利久久2020 | 久青草国产97香蕉在线视频xx | 成年人国产网站 | 国产高清a毛片在线看 | 日本午夜电影网 | 最近免费中文字幕mv在线视频3 | 亚洲网站免费观看 | 亚洲激情成人 | 成人短视频在线观看免费 | 成人在线网站 | 四虎国产精品永久在线看 | 国产精品久久久久久一区二区三区 | 国产欧美亚洲精品第二区首页 | 少妇被爽到高潮喷水久久欧美精品 | 三年片在线观看免费大全电影 | 模特三级在线观看 | 婷婷五月综合色视频 | 四虎影院4hu | 精品国产一区二区在线观看 | 日韩视频一区二区在线观看 | 美女与男人对肌免费网站 | 99热在这里只有免费精品 | 欧美老妇激情bbbwwbbw | 国内外精品影视大全 | 国产麻豆一精品一av一免费 | 亚洲a在线播放 | 精品久久久中文字幕一区 | 妓女爽爽爽爽爽妓女8888 | 校园春色~综合网 | 四川丰满妇女毛片四川话 | 国色天香中文字幕在线视频 | 黄色毛片视频校园交易 | 欧美亚洲日韩国产人成在线播放 | 国产欧美日韩亚洲 |