返回顶部
首页 > 资讯 > 数据库 >说GTID - GTID-based复制中的限制
  • 285
分享到

说GTID - GTID-based复制中的限制

2024-04-02 19:04:59 285人浏览 独家记忆
摘要

同一个事务(语句)中,不能同时涉及事务和非事务数据表的变更,这会导致一个事务对应多个GTID,违反了事务与GTID的一对一对应原则。[root@Mysql.sock][db1]> show creat

  • 同一个事务(语句)中,不能同时涉及事务和非事务数据表的变更,这会导致一个事务对应多个GTID,违反了事务与GTID的一对一对应原则。


[root@Mysql.sock][db1]> show create table t2 \G

*************************** 1. row ***************************

       Table: t2

Create Table: CREATE TABLE `t2` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4

1 row in set (0.00 sec)


[root@mysql.sock][db1]> start transaction;

Query OK, 0 rows affected (0.00 sec)


[root@mysql.sock][db1]> insert into t1 select null;

Query OK, 1 row affected (0.00 sec)

Records: 1  Duplicates: 0  Warnings: 0


[root@mysql.sock][db1]> insert into t2 select null;

ERROR 1785 (HY000): Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.

[root@mysql.sock][db1]> commit;

Query OK, 0 rows affected (0.01 sec)



  • 不能使用CREATE TABLE ... SELECT语句。


[root@mysql.sock][db1]> create table t2 select * from t2;

ERROR 1786 (HY000): Statement violates GTID consistency: CREATE TABLE ... SELECT.




  • 在事务,存储过程,函数和触发器中,不能使用CREATE TEMPORARY TABLE,和DROP TEMPORARY TABLE语句。


[root@mysql.sock][db1]> start transaction;

Query OK, 0 rows affected (0.00 sec)


[root@mysql.sock][db1]> create temporary table t4 (id int auto_increment primary key);

ERROR 1787 (HY000): Statement violates GTID consistency: CREATE TEMPORARY TABLE and DROP TEMPORARY TABLE can only be executed outside transactional context.  These statements are also not allowed in a function or trigger because functions and triggers are also considered to be multi-statement transactions.

[root@mysql.sock][db1]> rollback;

Query OK, 0 rows affected (0.00 sec)


[root@mysql.sock][db1]> create temporary table t4 (id int auto_increment primary key);

Query OK, 0 rows affected (0.01 sec)


[root@mysql.sock][db1]> desc t4;

+-------+---------+------+-----+---------+----------------+

| Field | Type    | Null | Key | Default | Extra          |

+-------+---------+------+-----+---------+----------------+

| id    | int(11) | NO   | PRI | NULL    | auto_increment |

+-------+---------+------+-----+---------+----------------+

1 row in set (0.00 sec)


[root@mysql.sock][db1]> drop temporary table t4;

Query OK, 0 rows affected (0.00 sec)


[root@mysql.sock][db1]> desc t4;

ERROR 1146 (42S02): Table 'db1.t4' doesn't exist



  • 开启--enforce-gtid-consistency参数,阻止执行违反GTID-based复制原则的语句。



  • 跳过事务的执行,参数sql_slave_skip_counter不再起作用,需要使用如下注入空事务的方式跳过。


SET GTID_NEXT='aaa-bbb-ccc-DDD:N';


BEGIN;

COMMIT;


SET GTID_NEXT='AUTOMATIC';



CHANGE MASTER TO语句中的IGNORE_SERVER_IDS不在起作用,已经回放过的事务会自动跳过。



  • 在开启GTID的实例上使用mysqldump导出数据时,在备份文件中会设置@@SESSION.SQL_LOG_BIN= 0,当使用该备份文件向目标实例导入数据时,不记录二进制日志



  • 在开启GTID的实例上使用mysql_upgrade原地升级MySQL版本时,要不写二进制日志(这也是mysql_upgrade的默认行为,没开启--write-binlog)。


您可能感兴趣的文档:

--结束END--

本文标题: 说GTID - GTID-based复制中的限制

本文链接: https://lsjlt.com/news/35006.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 说GTID - GTID-based复制中的限制
    同一个事务(语句)中,不能同时涉及事务和非事务数据表的变更,这会导致一个事务对应多个GTID,违反了事务与GTID的一对一对应原则。[root@mysql.sock][db1]> show creat...
    99+
    2024-04-02
  • MySQL5.7.16 gtid复制
    《基础环境准备:》首先安装两台MySQL5.7.16数据库,安装如下步骤即可:一、系统环境准备:①:系统yum源配置:[linux]name=linux haebaseurl=file:///media/g...
    99+
    2024-04-02
  • MySQL5.7中GTID复制的改进
    1、支持创建临时表 MySQL5.7版本可以支持create temporary table、drop temporary table命令。 2、开启GTID复制模式,不用开启log_slave_upda...
    99+
    2024-04-02
  • Mysql 主从复制GTID
    --------------------------------------------安装准备配置/etc/my.cnf主master grant 分配复制帐号从slave ...
    99+
    2024-04-02
  • myql 5.7.21 GTID 组复制
    hostname IP 角色 node13 1.1.1.13 master1 node14 1.1.1.14 master2 node15 1.1.1.15 master3 [m...
    99+
    2024-04-02
  • MariaDB基于GTID的复制
    1、配置主从节点的服务配置文件1.1、配置master节点:#binlog_format=mixedbinlog-format=ROW# required unique id between 1 and 2...
    99+
    2024-04-02
  • MySQL5.7主从复制-GTID复制搭建
     两台服务器,系统是Redhat6.5,MySQL版本是5.7.18。 1、在主库上,创建复制使用的用户,并授予replication slave权限。这里创建用户repl,可以从IP为1...
    99+
    2024-04-02
  • MySQL GTID复制中断修复过程
    slave中出现错误: 2020-04-09T07:40:18.719203Z 16 [ERROR] Slave SQL for channel '': Could not execute ...
    99+
    2024-04-02
  • 浅析mysql主从复制中的gtid
    gtid(Global Transaction ID)是对于一个已提交事务的编号,并且是一个全局唯一的编号。它的官方定义如下:gtid= source_id :transaction_id 每一个 gtid...
    99+
    2024-04-02
  • MySQL复制之GTID复制的具体使用
    目录GTID是什么GTID改进有哪些GTID的工作原理一主一从GTID复制的搭建master的配置slave的配置遇到的问题从MySQL 5.6.5开始新增了一种基于GTID的复制方...
    99+
    2024-04-02
  • GTID的复制的搭建过程
    1.什么是GTIDGTID(Global Transaction ID)是对于一个已提交事务的编号,并且是一个全局唯一的编号;GTID实际上是由UUID+TID组成的。其中UUID是一个MySQL实例的唯一...
    99+
    2024-04-02
  • 怎么理解MySQL的GTID复制
    这篇文章主要介绍“怎么理解MySQL的GTID复制”,在日常操作中,相信很多人在怎么理解MySQL的GTID复制问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解MySQ...
    99+
    2024-04-02
  • MySQL的GTID复制怎么应用
    这篇文章主要介绍“MySQL的GTID复制怎么应用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL的GTID复制怎么应用”文章能帮助大家解决问题。从MySQ...
    99+
    2024-04-02
  • 5:使用GTID进行复制
    服务器 192.168.1.1(master) 192.168.1.2(slave) 同步服务器,只有当已经在复制但不使用gtid的服务器时才需要此步骤,,对于新服务器,请继续执行步骤5。将每个服务器上...
    99+
    2024-04-02
  • 基于GTID的主从复制搭建
    前置检查server-id = 10,master/slave不允许重复log-bingtid-mode = ONenforce-gtid-consistency = ON1,利用mysqlpump复制ma...
    99+
    2024-04-02
  • MySQL之GTID复制怎么使用
    本篇内容主要讲解“MySQL之GTID复制怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL之GTID复制怎么使用”吧!从MySQL 5.6.5开始新增了一种基于GTID的复制方式...
    99+
    2023-06-30
  • MySQL5.7的AB复制以及 GTID多线程复制 配置
    mysql AB复制: 三台主机:MASTER IP:172.25.35.21          ...
    99+
    2024-04-02
  • Mysql 主从复制之半同步复制(基于gtid)
    Mysql主从复制mysql主从复制原理:从库有两个线程IO线程和SQL线程1.从库的IO线程向主库的主进程发送请求,主库验证从库,交给主库IO线程负责数据传输;2.主库IO线程对比从库发送过来的maste...
    99+
    2024-04-02
  • MySQL5.7 基于GTID的多源复制实践
    环境说明:主机IPMySQL版本 端口复制帐号复制密码Master1192.168.1.2255.7.253306repl123456Master2192.168.1.1005.7.253306repl12...
    99+
    2024-04-02
  • MySQL基于GTID复制的设置方法
    下文给大家带来有关MySQL基于GTID复制的设置方法内容,相信大家一定看过类似的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完MySQL基于GTID复制的设置方法你一定会有所收获。GTI...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作