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. python包的一些问题

    1查看python包的版本 2 卸载包的方法 3指定python包的安装版本 参考网址 https://blog.csdn.net/colourful_sky/article/details/8018 ...

  2. Flask 单元测试 unittest

    import unittest 单元测试 app = Flask(__name__) -------------------------------------------- import unite ...

  3. class 关键字

    class Ninja 表示创建一个名为Ninja的函数.constructor(...)指明Ninja函数的签名和函数体内容. class Ninja{ constructor(name){ thi ...

  4. spring 406 (Not Acceptable)错误

    @Controller @RequestMapping("/login") public class LoginController { @ResponseBody @Reques ...

  5. ci框架nginx访问

    url:http://localhost:20082/index.php/welcome/index 问题:apache环境下可以访问,nginx环境下不可以

  6. android shape 怎么在底部画横线

    使用layer-list可以,画了两层 1 2 3 4 5 6 7 8 9         <layer-list>             <!-- This is the lin ...

  7. java GUI的效果图

    import java.awt.*;import javax.swing.*; public class GridBagDemo extends JFrame {    public static v ...

  8. Python3创建项目时创建了一个叫做“keyword"的包,运行项目时报ImportError: cannot import name 'iskeyword'错误

    导致该问题的原因为在Python3中keyword是python的关键字包,所以在给包命名时应避免使用关键字进行命名.解决方法,将keword包名称修改为'keywords'就可以了.

  9. 2019.03.28 bzoj3597: [Scoi2014]方伯伯运椰子(01分数规划)

    传送门 题意咕咕咕有点麻烦不想写 思路: 考虑加了多少一定要压缩多少,这样可以改造边. 于是可以通过分数规划+spfaspfaspfa解决. 代码: #include<bits/stdc++.h ...

  10. 解决.Net Core跨域问题

    什么是跨域?浏览器从一个域名的网页去请求另一个域名的资源时,域名.端口.协议任一不同,都是跨域 跨域的几种情况 1.端口和协议的不同,只能通过后台来解决 2.localhost和127.0.0.1虽然 ...