zoukankan      html  css  js  c++  java
  • GTID复制之二

    在线启用GTID,这样就不会对生产造成影响。

    1.在每个Server上,执行 SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY=WARN;确保在ErrorLog中没有WARN【警告】,若有请修复后再进行下一下。

    2.在每个Server上,执行SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY=ON;

    3.在每个Server上,执行SET @@GLOABL.GTID_MODE=OFF_PERMISSIVE;该步在Server间的执行先后无关,一定要在所有Server都执行守我后在进行下一下。

    4.在每个Server上,执行SET @@GLOABL.GTID_MODE=ON_PERMISSIVE;

    5.等待直到所有Server上的ONGOING_ANONYMOUS_TRANSACTION_COUNT都为0.可用下面检测:
      SHOW STATUS LIKE 'ONGOING_ANONYMOUS_TRANSACTION_COUNT';

    6.确保每个slave上的anonymous transactions都复制完成,用于在线切换复制模式:先在Master上 SHOW MASTER STATUS;再在每个Slave上执行以确定要等待的时间:SELECT MASTER_POS_WAIT(file,position);

     7.在每个Server上,执行 SET @@GLOBAL.GTID_MODE=ON;

    8.修改每个Server上的配置文件,添加gtid_mode=ON;为了在启动时自动Fail-over,可以执行下面的,若为多源复制,则要为每个channel执行。

      STOP SLAVE[FOR CHANNEL 'channel'];

      CHANGE MASTER TO MASTER_AUTO_POSITION=1 [FOR CHANNEL 'channel'];

      START SLAVE [FOR CHANNEL 'channel'];

    在线取消 GTID事务,改为BinLog:

    1.为每个Slave执行下面的:

    STOP SLAVE [FOR CHANNEL 'channel'];
    CHANGE MASTER TO MASTER_AUTO_POSITION = 0, MASTER_LOG_FILE = file, 
    MASTER_LOG_POS = position [FOR CHANNEL 'channel'];
    START SLAVE [FOR CHANNEL 'channel'];
    2.在每个Server上:SET @@GLOBAL.GTID_MODE = ON_PERMISSIVE;

    3.在每个Server上:SET @@GLOBAL.GTID_MODE = OFF_PERMISSIVE;

    4.在每个server上,Check 直到@@GLOBAL.GTID_OWNED为空。

    5.等待所有事务都被复制到所有Slave上。确认方法同上。

    6.在每个Server上,执行SET @@GLOBAL.GTID_MODE=OFF;

    7.在每个Server上,配置 gtid_mode=OFF,

    如果想设enforce_gtid_consistency=OFF,也要在配置中加上。

     

  • 相关阅读:
    22、Flyweight 享元模式
    js随机点名器(简单)
    js随机点名器(简单)
    PHP
    PHP
    Laravel框架实现利用监听器进行sql语句记录功能
    Laravel框架实现利用监听器进行sql语句记录功能
    PhpStorm常用的一些快捷键
    PhpStorm常用的一些快捷键
    HTTP状态码汇总
  • 原文地址:https://www.cnblogs.com/itdev/p/6021598.html
Copyright © 2011-2022 走看看