import os

script_file = "./skip_file.sql"

def write_script(script_content):
file_handle = open(script_file, 'a+')
file_handle.writelines(script_content + "\n")
file_handle.close() def delete_script_file():
if os.path.exists(script_file):
os.remove(script_file) def get_skip_script_list(master_uuid, start_tran_id, end_tran_id):
script_list = []
current_tran_id = start_tran_id
while current_tran_id <= end_tran_id:
current_script = """
SET @@SESSION.GTID_NEXT= '{master_uuid}:{tran_id}';
BEGIN; COMMIT;
""".format(
master_uuid=master_uuid,
tran_id=current_tran_id
)
current_tran_id = current_tran_id + 1
script_list.append(current_script)
script_list.append("SET SESSION GTID_NEXT = AUTOMATIC;")
return script_list def main():
master_uuid = "0275e614-b4b1-11e7-8f24-b8ca3a6fcb25"
start_tran_id = 1
end_tran_id = 177
script_list = get_skip_script_list(master_uuid, start_tran_id, end_tran_id)
write_script("\n".join(script_list)) if __name__ == '__main__':
main()

当从库误执行一些SQL时或其他原因导致主从上的gtid集合不一致时,可以通过这种方式生成一些空事务,避免主从切换后发生从库无法获取新主库已purge掉的binlog而中断。

MySQL--Skip GTID CAP的更多相关文章

  1. Mysql基于GTID复制模式-运维小结 (完整篇)

    先来看mysql5.6主从同步操作时遇到的一个报错:mysql> change master to master_host='192.168.10.59',master_user='repli' ...

  2. mysql开启GTID跳过错误的方法【转】

    1.数据库版本 MySQL> select version()    -> ;+-------------------------------------------+| version( ...

  3. 解决mysql开启GTID主从同步出现1236错误问题【转】

    最近遇到mysql开启gtid做复制时,从库出现1236错误,导致同步无法进行,本文就这问题记录下处理步骤,有关gtid知识在这里不做介绍,mysql版本为5.7.16. 一.错误原因分析 错误信息如 ...

  4. 解决mysql开启GTID主从同步出现1236错误问题

    解决mysql开启GTID主从同步出现1236错误问题     最近遇到mysql开启gtid做复制时,从库出现1236错误,导致同步无法进行,本文就这问题记录下处理步骤,有关gtid知识在这里不做介 ...

  5. MySQL 基于 GTID 主从架构添加新 Slave 的过程

    内容全部来自: How to create/restore a slave using GTID replication in MySQL 5.6 需求说明 需求: 对于已经存在的 MySQL 主从架 ...

  6. MySQL的GTID复制与传统复制的相互切换

    MySQL的GTID复制与传统复制的相互转换 1. GTID复制转换成传统复制 1.1 环境准备 1.2 停止slave 1.3 查看当前主从状态 1.4 change master 1.5 启动主从 ...

  7. MySQL 使用GTID进行复制

    MySQL 使用GTID进行复制 1. GTID的格式和存储 1.1 GTID 集 1.2 mysql.gtid_executed 表 1.3 mysql.gtid_executed 表压缩 2. G ...

  8. Linux下MySQL主从复制(GTID)+读写分离(ProxySQL)-实施笔记

    GTID概念: GTID( Global Transaction Identifier)全局事务标识.GTID 是 5.6 版本引入的一个有关于主从复制的重大改进,相对于之前版本基于 Binlog 文 ...

  9. Mysql基于GTID主从复制

    Mysql5.6基于GTID全局事务的复制 什么是GTID?   GTID(Global Transaction Identifiers)是全局事务标识 当使用GTIDS时,在主上提交的每一个事务都会 ...

  10. 解决mysql使用GTID主从复制错误问题

    做MySQL主从的话肯定会遇到很多同步上的问题,大多数都是由于机器宕机,重启,或者是主键冲突等引起的从服务器停止工作,这里专门收集类似问题并提供整理解决方案,仅供参考. 1.主从网络中断,或主服务器重 ...

随机推荐

  1. java基础 -- 经典排序

    ----  冒泡排序 方法: 1.每次比较相邻的两个数 2. 小的交换在前面 3.每轮结束后最大的数交换到最后 代码实现: /* * 冒泡排序 * */ public class SortNum { ...

  2. node.js中对 mysql 进行增删改查等操作和async,await处理

    要对mysql进行操作,我们需要安装一个mysql的库. 一.安装mysql库 npm install mysql --save 二.对mysql进行简单查询操作 const mysql = requ ...

  3. Mapbox Studio Classic 闪退问题解决方案

    之前安装过Mapbox Studio Classic 0.38,好久没有用了,今天用的时候发现不停的闪退,经过一番折腾,发现删除 %USERPROFILE%\.mapbox-studio 目录下所有文 ...

  4. CentOS开机提示kernel panic - not syncing: Attempted to kill init! 解决方法

    1.重新启动linux 系统,看见如图见面迅速按E键 2.看见如图界面在按E键编辑 3.如图界面使用上下键选择第二个在按E键 4.在最后一行后面添加  enforcing=0 按回车保存退出 5.在此 ...

  5. weex h5开发区别-实践初级篇

    html标签 weex中没有标签的概念,html中标签对应于weex中的Components weex 无<span> .<p> ,用<text>替代.但是< ...

  6. nuget安装本地nupkg文件

    打开visual studio,菜单选择‘工具’->‘选项’ 然后 接下来,选择‘程序包源’,把‘包括预发行版’打钩,然后安装需要的包到工程即可,如下图:

  7. python脚本执行报错整理

    people = [ {'name':'alex','age':1000}, {'name':'wuxie','age':100}, {'name':'wangcanghai','age':9000} ...

  8. ClassLoader的工作机制

    本文中主要介绍类加载器的工作机制 一:首先什么是类加载器? 类加载器就是用来加载java类到java虚拟机中.java源程序经过编译之后形成字节码文件,类加载器将字节码文件加载到内存中,并转换成jav ...

  9. 处理 NCBI taxonomy tree

    1. etetoolkit : github 官网:https://github.com/etetoolkit/ete 官网:http://etetoolkit.org/ 2. taxonkit gi ...

  10. java8 先groupingBy 后map

    Map<Integer,List<String>> mapBanJI_UserNameList=list.stream().collect(Collectors.groupin ...