zoukankan      html  css  js  c++  java
  • 在线修改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
  • 相关阅读:
    设置Centos7会话超时时间
    Shell浮点运算
    Maven 同一依赖多版本共存
    Java根据模板生成word
    Java条形码生成
    arcgis for js 4.x 悬浮显示popup
    tomcat 跨域配置
    Mysql8.0 版本 timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',报错
    volatile
    synchronized
  • 原文地址:https://www.cnblogs.com/mysql-dba/p/9901643.html
Copyright © 2011-2022 走看看