zoukankan      html  css  js  c++  java
  • MySQL Replication--GTID基础

    ======================================

    TID(Trasaction ID)
    TID代表实例上已经提交的事务数量,并随着事务提交递增

    UUID代表MYSQL实例的唯一表示

    GTID(Global Trasaction ID)
    GTID由MYSQL实例的UUID+已提交事务的TID组成,代表一个全局唯一的编号。

    GTID的出现用来解决复制中一个事务在多个节点的binlog文件和位置不一样的问题,当主库发生故障切换后,复制的备库需要与新主库进行关联,使用master_log_file和master_log_pos来重新配置从库变得复杂困难,而基于GTID复制,备库无需关心GTID的位置,直接使用下面语句即可用轻松完成主库切换后的从库配置。:

    CHANGE MASTER TO MASTER_HOST='xxx', MASTER_AUTO_POSITION

    在MySQL 5.6版本中引入GTID,使用gtid_mode参数来开启或关闭GTID特性,但在MySQL 5.7版本中引入 Anonymous_Gtid的二进制日志event类型,即使在MySQL 5.7版本中停用GTID特性,也会在事务开始前创建一个Anonymous_Gtid。

    ======================================

    使用GTID限制

    1、无法使用SQL_SKIP_SLAVE_COUNTER命令跳过错误

    2、无法搭建GTID模式实例和非GTID模式实例之间的复制。

    3、不支持非事务型存储引擎如MYISAM

    4、不支持CREATE TABLE SELECT 语句

    5、不支持CREATE/DROP TEMPORARY TEBALE 操作

    在MySQL 5.6版本中,gtid_mode参数全局只读,修改该参数需要重启实例。

    在MySQL 5.7版本中,可以在线开启GTID模式,直达连接:http://dev.mysql.com/doc/refman/5.7/en/replication-mode-change-online-enable-gtids.html。

    ======================================

    多线程复制:

    1>exec_master_log_pos对复制不在有效,可以使用executed_gtid_set来查看复制进度

    2>SQL_SLAVE_SKIP_COUNTER 无法使用

    3>不支持START SLAVE UNTIL命令

    4>slave_transaction_retries 参数被当做0来处理

    ======================================

    GTID复制延迟监控

    只有当网络正常且Master端随时有数据更新的的情况下,才可以使用seconds_behind_master来评估主从库之间的复制延迟。

    ======================================

  • 相关阅读:
    分时区查询问题解决
    .htaccess伪静态实例分享
    net mvc 小目标
    PHP中钩子函数的实现与认识
    session
    修改net基本三层 动软生产
    格式化问题
    数据字典
    关联数据和formatter问题-easyui+微型持久化工具
    说说JSON和JSONP,也许你会豁然开朗
  • 原文地址:https://www.cnblogs.com/gaogao67/p/10633415.html
Copyright © 2011-2022 走看看