我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL组复制的要求和限制

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL组复制的要求和限制

本篇内容主要讲解“MySQL组复制的要求和限制”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL组复制的要求和限制”吧!

组复制的要求:

1).InnoDB存储引擎:数据必须存储在事务型的InnoDB存储引擎中。事务以乐观形式执行,然后在提交前会检测冲突问题。如果有冲突,为了维护组中一致性,有些事务必须回滚。这意味着需要事务型的存储引擎。此外,InnoDB 存储引擎提供了一些额外的功能,它们结合组复制时能更好地管理和处理冲突。

2).Primary Keys:每张需要被组复制的表都必须显式定义一个主键。主键在判断事务是否冲突扮演极其重要的角色:通过主键来准确识别每个事务中修改了表中的哪些行。(实际上是将主机hash成写集,然后由certifier来并发事务之间的检测冲突性)

3).使用IPv4 地址:MySQL组复制使用的组通信引擎组件只支持 IPv4。因此,必须使用IPv4的网络。

4).良好的网络性能:组复制设计的初衷是部署在集群环境中,集群中的节点相互之间都非常近,因此除了网络延迟,网络带宽也会影响组复制。

组复制的限制:

1).Replication Event Checksums:由于对复制事件校验的设计缺陷,目前组复制不能使用它们。因此,需要设置--binlog-checksum=NONE。

2).Gap Locks:在验证阶段中(certification process),不会考虑 Gap Locks,因此在 InnoDB 的外部无法获取任何关于Gap 锁的信息。

注意:除非你的应用程序或业务需求依赖于REPEATABLE READ(MySQL默认该隔离级别),否则建议在组复制中使用READ COMMITTED隔离级别。在READ COMMITTED隔离级别中,InnoDB基本上不会使用Gap Locks,这将使得InnoDB自带的冲突探测能和组复制的冲突探测相互对齐从而保持一致。

3).Table Locks and Named Locks:验证阶段(certification process)中不考虑表锁和命名锁(见get_lock())。

4).不支持 SERIALIZABLE 隔离级别:在多主模型下,默认不支持该隔离级别。如果在多主模型下设置了该隔离级别,将拒绝提交事务。

5).不支持并发的 DDL 和 DML 操作:不支持在多主模型下不同节点上同时执行DDL和DML修改同一对象。在某节点上对某对象执行DDL语句时,如果在其他节点同时执行DML修改该对象,将有一定风险探测到冲突。(译注:是 DDL+DML 的并发,DDL+DDL 的并发也不允许。这是因为MySQL中没有DDL事务,不能保证DDL的原子性,当DDL和DML同时操作某一个对象,可能DDL修改后,DML将因为对象结构的改变而无法执行,继而回滚)

6).不支持级联的外键约束:多主模型的组(所有节点都配置了group_replication_single_primary_mode=OFF)不支持多级外键依赖,特别是表上定义了级联的外键约束(CASCADING foreign key constraints)。这是因为多主模型下执行外键约束的级联操作可能会出现未检测到的冲突,从而导致组内成员间数据不一致。因此,我们推荐在使用多主模型时,在每个节点上都设置group_replication_enforce_update_everywhere_checks=ON以避免出现未检测到的冲突。在单主模型下没有这种问题,因为没有并发写操作,从而不可能会出现未被探测到的冲突。

7).大事务可能会错误:如果一个事务非常大,导致GTID的内容非常多,以至于无法在 5 秒内通过网络传输完成,这时组成员间的通信将失败。要避免该问题,可以尽可能地限制事务的大小。例如,将LOAD DATA INFILE的文件切割为多个小块。

8).多主模型可能出现死锁:在多主模型下,SELECT ... FOR UPDATE语句可能会导致死锁。这是因为组内成员之间不会共享锁资源(译注:share nothing),因此这样的语句可能达不到预期的结果。

到此,相信大家对“MySQL组复制的要求和限制”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL组复制的要求和限制

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL视图的优势和限制

MySQL视图的优势和限制在MySQL数据库中,视图是一种虚拟的表,由一个查询语句定义,可以简化复杂的查询操作,提高代码的可读性和可维护性。本文将介绍MySQL视图的优势和限制,并提供具体的代码示例。一、优势简化复杂查询:视图可以将复杂
MySQL视图的优势和限制
2024-03-15

Java 限制前端重复请求的实例代码

这篇文章主要介绍了Java 限制前端重复请求,文中给大家提到了JAVA利用自定义本地锁解决重复提交的问题,通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
2022-11-13

mysql组复制的原理是什么

MySQL组复制是一种MySQL数据库服务器集群技术,它允许多个MySQL数据库服务器之间共享相同的数据,并保持数据的一致性。组复制使用基于Paxos算法的一致性协议来确保数据更新的顺序一致性,以及数据在所有服务器上的复制。组复制的原理可以
mysql组复制的原理是什么
2024-03-13

云主机有什么特殊的技术要求或限制

云主机有什么特殊的技术要求或限制?云主机是基于云计算技术的一种虚拟化解决方案,它为用户提供了弹性、可扩展的计算资源。然而,与传统的物理服务器相比,云主机也存在一些特殊的技术要求或限制。在本文中将探讨这些限制和要求,并解释为什么它们在云主机环境中是重要的。
云主机有什么特殊的技术要求或限制
2024-01-24

MySQL数据库中外键的定义和限制

标题:MySQL数据库中外键的定义和限制在MySQL数据库中,外键是一种用于建立表与表之间关系的约束。外键可以确保在一个表中的数据与另一个表中的数据具有一定的关联性。通过定义外键,我们可以实现数据之间的参照完整性,从而保证数据的一致性和可
MySQL数据库中外键的定义和限制
2024-03-15

MySQL 主从复制的原理和配置

工作原理图:主从复制的原理:分为同步复制和异步复制,实际复制架构中大部分为异步复制。 复制的基本过程如下:1).Slave上面的IO进程连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;2).Maste
2022-05-26

MySQL复制的原理和作用是什么

本篇内容主要讲解“MySQL复制的原理和作用是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL复制的原理和作用是什么”吧!目录一、MySQL复制相关概念二、简单的一主一从架构实现1、
2023-06-20

mysql如何复制表的结构和数据

要复制一个表的结构和数据,可以使用MySQL的CREATE TABLE和INSERT INTO语句来完成。以下是一种常用的方法:复制表结构:CREATE TABLE new_table LIKE original_table;这将创建一个新
mysql如何复制表的结构和数据
2024-05-21

软考高级报名限制专业吗?参加高级的要求是什么

软考(计算机技术与软件专业技术资格考试)的高级资格考试是针对那些希望在IT领域取得高级专业资格的考生设立的。软考高级报名限制专业吗?参加高级的要求是什么?具体请见下文。
软考高级报名限制专业吗?参加高级的要求是什么
2024-08-07

编程热搜

目录