MySQL GTID (二)
MySQL GTID 系列之二
三.在线将GTID转化为传统模式
环境见上篇系列文章
关闭GTID,不用停止服务,不影响线上业务
3.1 关闭GTID复制,调整为传统复制
#SLVAE实例上停止复制
STOP SLAVE
#SLVAE实例上查看复制的位置
SHOW SLAVE STATUS \G
# 查看 Master_Log_File 和 Read_Master_Log_Pos对应的值
binlog.000012:1821
#重新 CHANGE MASTER
CHANGE MASTER TO MASTER_AUTO_POSITION=0,
MASTER_LOG_FILE='binlog.000012',
MASTER_LOG_POS=1821;
#开启SLAVE
START SLAVE;
3.2 所有服务器上设置GTID模式为 ON_PERMISSIVE
SET @@GLOBAL.GTID_MODE=ON_PERMISSIVE;
3.3 所有服务器上设置GTID模式为 OFF_PERMISSIVE
SET @@GLOBAL.GTID_MODE=OFF_PERMISSIVE;
3.4 等待所有服务器上的变量@@GLOBAL.GTID_OWNED为空,它表示正在由线程执行的全局GTID集合
mysql> SELECT @@GLOBAL.GTID_OWNED;
+---------------------+
| @@GLOBAL.GTID_OWNED |
+---------------------+
| |
+---------------------+
1 row in set (0.00 sec)
3.5 等待所有SLAVE上都复制完成匿名事务。
3.6 所有服务器上关闭GTID.
SET @@GLOBAL.GTID_MODE=OFF;
3.7 修改配置文件,以便下次重启,配置也是生效的。
gtid_mode=OFF
enforce_gtid_consistency=OFF
四. 传统模式转换为GTID模式
MySQL5.7.6版本以后,支持在线修改GTID模式
4.1 所有服务器上设置ENFORCE_GTID_CONSISTENCY=WARN,使得所有事务允许违反GTID的一致性
SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY=WARN;
4.2 所有服务器上设置ENFORCE_GTID_CONSISTENCY=ON.确保所有事务不能违反GTID的一致性
SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY=ON;
4.3 所有服务器上设置GTID_MODE=OFF_PERMISSIVE
SET @@GLOBAL.GTID_MODE=OFF_PERMISSIVE;
4.4 所有服务器上设置GTID_MODE=ON_PERMISSIVE
SET @@GLOBAL.GTID_MODE=ON_PERMISSIVE;
4.5 等待所有从库 ONGOING_ANONYMOUS_TRANSACTION_COUNT为0
SHOW STATUS LIKE 'ONGOING_ANONYMOUS_TRANSACTION_COUNT';
4.6 所有服务器上设置 GTID_MODE=ON,开启GTID
SET @@GLOBAL.GTID_MODE=ON;
4.7 修改配置文件,以便下次重启,配置也是生效的。
gtid_mode=ON
enforce_gtid_consistency=1
MySQL GTID (二)的更多相关文章
- MySQL GTID 错误处理汇总
MySQL GTID是在传统的mysql主从复制的基础之上演化而来的产物,即通过UUID加上事务ID的方式来确保每一个事物的唯一性.这样的操作方式使得我们不再需要关心所谓的log_file和log_P ...
- MySQL GTID (一)
MySQL GTID 系列之一 一.GTID相关概念 GTID:全局事务标识符,MySQL5.6版本开始在主从复制中推出的重量级特性. 每提交一个事务,当前执行线程都会拿到一个给定复制环境中唯一的GT ...
- MySQL优化二(连接优化和缓存优化)
body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10 ...
- 从零开始搭建框架SSM+Redis+Mysql(二)之MAVEN项目搭建
从零开始搭建框架SSM+Redis+Mysql(二)之MAVEN项目搭建 废话不说,直接撸步骤!!! 1.创建主项目:ncc-parent 选择maven创建项目,注意在创建项目中,packing选择 ...
- python/MySQL练习题(二)
python/MySQL练习题(二) 查询各科成绩前三名的记录:(不考虑成绩并列情况) select score.sid,score.course_id,score.num,T.first_num,T ...
- Python/MySQL(二、表操作以及连接)
Python/MySQL(二.表操作以及连接) mysql表操作: 主键:一个表只能有一个主键.主键可以由多列组成. 外键 :可以进行联合外键,操作. mysql> create table y ...
- mysql进阶(二十九)常用函数
mysql进阶(二十九)常用函数 一.数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP ...
- mysql进阶(二十八)MySQL GRANT REVOKE用法
mysql进阶(二十八)MySQL GRANT REVOKE用法 MySQL的权限系统围绕着两个概念: 认证->确定用户是否允许连接数据库服务器: 授权->确定用户是否拥有足够的权限执 ...
- mysql进阶(二十七)数据库索引原理
mysql进阶(二十七)数据库索引原理 前言 本文主要是阐述MySQL索引机制,主要是说明存储引擎Innodb. 第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础. ...
随机推荐
- UVALive-4452 The Ministers' Major Mess (2-SAT)
题目大意:有n个问题,m个人来投票,没人最多投4票,问该怎样决定才能使每个人都有超过一半的票数被认可? 题目分析:2-SAT问题.如果某个人投的票数少于2,则这两票军被采纳,如果票数至少三票,则最多有 ...
- js数字进制转换
其他进制转十进制: 使用 parseInt()函数,parseInt解析一个字符串参数,并返回一个指定基数的整数 ,用法如下: parseInt(string, radix); 以二进制为例,用法如下 ...
- Codeforces Round #279 (Div. 2) 题解集合
终于有场正常时间的比赛了...毛子换冬令时还正是好啊233 做了ABCD,E WA了3次最后没搞定,F不会= = 那就来说说做的题目吧= = A. Team Olympiad 水题嘛= = 就是个贪心 ...
- Mysql5.7的gtid主从半同步复制和组复制
(一)gtid主从半同步复制 一.半同步复制原理 mysql默认的复制是异步的,主库在执行完客户端提交的事务后会立即将结果返回给客户端,并不关心从库是否已经接收并处理,这样就会有一个问题,主库如果cr ...
- 关于yo3 所遇到的问题
关于去哪儿开发的yo3 库,实在不敢恭维 ,没有最坑,只有更坑. 官方文档写的实在是 ,有element,iview,ant-design等等一半也可以 ,个人观点. 在使用Scroller中, 自动 ...
- Buildroot MariaDB替代MySQL
/********************************************************************************* * Buildroot Maria ...
- 每天一个linux命令(网络):【转载】route命令
Linux系统的route命令用于显示和操作IP路由表(show / manipulate the IP routing table).要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或 ...
- 浅谈一致性Hash原理及应用
在讲一致性Hash之前我们先来讨论一个问题. 问题:现在有亿级用户,每日产生千万级订单,如何将订单进行分片分表? 小A:我们可以按照手机号的尾数进行分片,同一个尾数的手机号写入同一片/同一表中. 大佬 ...
- 《DSP using MATLAB》Problem 2.6
1.代码 %% ------------------------------------------------------------------------ %% Output Info abou ...
- prisma graphql 工具基本使用
项目使用docker-compose mysql 运行 安装 npm insatll -g prisma or yarn global add prisma 创建代码 项目结构 ├── README. ...