• 在线修改GTID模式


    在线修改GTID模式

    1、 在每一台机器上执行命令

    SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = WARN;
    
    这是很重要的一步,必须确保服务器上没有违反GTID规范的SQL,否则当设置为GTID模式后,
    这些业务SQL会被拒绝执行,建议设置上面变量值间隔一天后errorLog没有警告,才可进行下一步。
    

    2、 在每一台服务器上执行

    SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = ON;
    
    上面参数表示GTID模式下一些SQL会被拒绝执行,有:create table ...select ....,CREATE TEMPORARY TABLE or DROP TEMPORARY TABLE,在一个事务中更新事务表和非事务表。
    

    3、 在每一台服务器上执行

    SET @@GLOBAL.GTID_MODE = OFF_PERMISSIVE;
    
    表示采用匿名事务记录binlog,slave可以兼容GTID事务和匿名事务,执行该命令没有顺序可言,但是必须每个机器都要执行。
    

    4、在每一台服务器上执行

    SET @@GLOBAL.GTID_MODE = ON_PERMISSIVE;
    
    表示采用GTID事务记录binlog,slave可以兼容GTID事务和匿名事务,执行该命令没有顺序可言,但是必须每个机器都要执行。
    

    5、等待步骤5前产生的事务(匿名事务)全部在slave都已应用完成

    6.1)在master上执行:show master status;记录file和pos
    6.2) 在所有slave执行:SELECT MASTER_POS_WAIT('file', pos);如果执行结果都为0表示都已经应用完成,可以进行下一步,否则需要一直等待完成。
    
    方法二:在每一台slave上都执行show master status;查看Executed_Gtid_Set是否有值,如果不为空了,说明已经开始使用GTID复制了
    

    6、在每一台服务器上执行

    SET @@GLOBAL.GTID_MODE = ON;
    

    7、在所有slave上执行

     stop slave;
     CHANGE MASTER TO MASTER_AUTO_POSITION = 1;
     START SLAVE;
    

    8、在每一台服务器上修改my.cnf

     gtid_mode = on
     enforce_gtid_consistency = 1
  • 相关阅读:
    linux安装python3
    web模拟终端 --使用shellinabox
    linux防火墙和xshell的链接
    Linux安装在虚拟机上
    DRF(django-rest_framework)框架
    Pycharm常用快捷键
    普通脚本调用django程序
    Pycharm安装模块提示module 'pip' has no attribute 'main'的问题
    Django的ModelForm
    面向对象(常用和特殊的创建类)
  • 原文地址:https://www.cnblogs.com/mysql-dba/p/9901643.html
Copyright © 2020-2023  润新知