【MySQL Shell】第 9 章 MySQL InnoDB ReplicaSet
admin
2024-05-14 13:58:44
0

本章目录

9.1 部署 InnoDB ReplicaSet
9.2 配置 InnoDB ReplicaSet 实例
9.3 创建 InnoDB ReplicaSet
9.4 向 ReplicaSet 添加实例
9.5 采用一个现有的复制设置
9.6 更改主实例
9.7 强制(切换)一个新的主实例
9.8 InnoDB ReplicaSet 锁
9.9 标记 ReplicaSets
9.10 检查 InnoDB ReplicaSet 状态
9.11 升级 InnoDB ReplicaSet

AdminAPI 包括对 InnoDB ReplicaSet 的支持,它使您能够管理一组 MySQL 实例,这些实例类似地运行基于异步 GTID 的复制,该复制完全基于事务。 InnoDB ReplicaSet 由单个 主要( Primary ) 副本和多个 次要/辅助( Secondary ) 副本(传统上称为 MySQL 复制源和副本)组成。

您可以使用 ReplicaSet 对象和 AdminAPI 操作来管理 ReplicaSet, 例如,检查 InnoDB ReplicaSet 的状态,并在发生故障时手动故障切换到新的主设备。

与 InnoDB Cluster 类似,MySQL Router 支持针对 InnoDB ReplicaSet 的引导,这意味着您可以自动配置 MySQL Router 以使用您的 InnoDB ReplicaSet, 而无需手动配置。这种自动配置使 InnoDB ReplicaSet 成为一种快速、简便的方式来启动和运行 MySQL 复制和 MySQL Router。 它适合于在不需要 InnoDB Cluster 提供的高可用性的用例中扩展读取并提供手动故障切换功能。

除了使用 AdminAPI 部署 InnoDB ReplicaSet 之外,还可以采用现有的复制设置。 AdminAPI 根据复制设置的拓扑配置 InnoDB ReplicaSet 。 完成复制设置后,您可以像从头开始部署 InnoDB ReplicaSet 一样管理它。您可以利用 AdminAPI 和 MySQL 路由器,而无需创建新的 ReplicaSet。 有关更多信息,请参阅 第 9.5 节 “采用现有复制设置” 。

您可以在广域网( WAN) 上使用 InnoDB ReplicaSet, 而不会影响写入性能,因为服务器实例通过异步复制通道连接,不需要对事务达成共识。然而,WAN 上的复制延迟更大。此延迟导致 InnoDB ReplicaSet 中的辅助服务器进一步落后于主服务器。

InnoDB ReplicaSet 限制。 与 InnoDB Cluster 相比,InnoDB ReplicaSet 有几个限制。建议尽可能部署 InnoDB Cluster。 通常,InnoDB ReplicaSet 本身不提供高可用性。 InnoDB ReplicaSet 的限制包括:

  • 无自动故障切换。在主服务器不可用的情况下,在再次进行任何更改前,需要使用 AdminAPI 手动触发故障切换。但是,辅助实例仍然可用于读取。
  • 由于意外暂停或不可用,无法防止部分数据丢失:在意外暂停时未完成的事务可能会丢失。
  • 意外退出或不可用后,无法防止不一致。如果手动故障切换提升了一个辅助实例,而前一个主实例仍然可用,例如,由于网络分区,则脑裂的情况可能会导致数据不一致。
  • InnoDB ReplicaSet 不支持多主模式。使用允许写入所有成员的经典复制拓扑无法保证数据一致性。
  • 读取扩展受限。 InnoDB ReplicaSet 基于异步复制,因此不可能像 组复制( Group Replication ) 那样调整流控制。
  • 所有辅助成员都从单个源复制。对于某些特定的用例,这可能会影响单个源,例如,许多小(数据量)更新。
  • 仅支持运行 MySQL 8.0 及更高版本的实例。
  • 仅支持基于 GTID 的复制,二进制日志文件位置复制与 InnoDB ReplicaSet 不兼容。
  • 仅支持基于行的复制( RBR), 不支持基于语句的复制( SBR)。
  • 不支持复制筛选器。
  • 任何实例上都不允许使用非托管复制通道。
  • ReplicaSet 最多包含一个主实例。支持一个或多个辅助实例。虽然可以添加到 ReplicaSet 的辅助服务器数量没有限制,但连接到 ReplicaSet 上的每个 MySQL 路由器都必须监视每个实例。因此,添加到 ReplicaSet 的实例越多,监视就越多。
  • ReplicaSet 必须由 MySQL Shell 管理。例如,复制帐户由 MySQL Shell 创建和管理。不支持在 MySQL Shell 外部对实例进行配置更改,例如,直接使用 SQL 语句更改主实例。始终使用 MySQL Shell 与 InnoDB ReplicaSet 一起工作。

使用 InnoDB ReplicaSet 的主要原因是您具有更好的写入性能。使用 InnoDB ReplicaSet 的另一个原因是,它们允许在不稳定或缓慢的网络上部署,而 InnoDB Cluster 则不允许。

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...
IHome主页 - 让你的浏览... 随着互联网的发展,人们越来越离不开浏览器了。每天上班、学习、娱乐,浏览器...
TCP 协议 一、TCP 协议概念 TCP即传输控制协议(Transmission Control ...
营业执照的经营范围有哪些 营业执照的经营范围有哪些 经营范围是指企业可以从事的生产经营与服务项目,是进行公司注册...
C++ 可变体(variant... 一、可变体(variant) 基础用法 Union的问题: 无法知道当前使用的类型是什...
血压计语音芯片,电子医疗设备声... 语音电子血压计是带有语音提示功能的电子血压计,测量前至测量结果全程语音播报࿰...
MySQL OCP888题解0... 文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3...
【2023-Pytorch-检... (肆十二想说的一些话)Yolo这个系列我们已经更新了大概一年的时间,现在基本的流程也走走通了,包含数...
实战项目:保险行业用户分类 这里写目录标题1、项目介绍1.1 行业背景1.2 数据介绍2、代码实现导入数据探索数据处理列标签名异...
记录--我在前端干工地(thr... 这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前段时间接触了Th...
43 openEuler搭建A... 文章目录43 openEuler搭建Apache服务器-配置文件说明和管理模块43.1 配置文件说明...