MySQL InnoDB ReplicaSet(副本集)简单介绍
作者:DBA随笔 发布时间:2024-01-20 11:10:45
01 InnoDB ReplicaSet(副本集)介绍
在MySQL8.0引入了InnoDB ReplicaSet,它提供了我们熟悉的复制特性,如果有mongodb副本集的概念,理解InnoDB ReplicaSet会比较容易。
InnoDB ReplicaSet使用了下面的技术:
1、MySQL Shell,一个功能更强大的客户端
2、MySQL Router,一个轻量级别的中间件,可以类比MongoDB中的mongos的角色;
3、MySQL Server,也就是MySQL服务
InnoDB ReplicaSet,下面简称 innodb副本集。它采用了MySQL的复制技术,副本集中拥有一个primary节点,一个或者多个secondary节点,它不像innodb cluster(innodb cluster是另外一种MySQL高可用方案)一样提供故障自愈和多主模式,但是提供手工的方法添加、移除和配置相关节点。
我们通常使用MySQL Shell中的AdminApi来管理innodb副本集,adminapi有js和python两种版本,我们可以很方便的去编写脚本来自动部署MySQL,AdminAPI为MySQL实例集提供了一个有效的现代接口,使您能够从一个中心工具提供、管理和监视部署。
innodb副本集支持MySQL Clone组件,我们可以利用克隆插件很方便的搭建起来一个副本集。
InnoDB ReplicaSet与MySQL Router紧密集成,可以使用AdminAPI与它们一起工作。MySQL Router可以基于InnoDB ReplicaSet自动配置自己,这个过程称为bootstrapping,这样就不需要手动配置路由。
02 InnoDB ReplicaSet的限制
上面介绍了innodb 副本集的一些基本知识和概念,这里我们有必要说一下它的局限性,innodb副本集的局限性,主要是对比innodb cluster来体现出来的,下面我们罗列一下:
1、没有故障自动切换功能。在主库不可用的情况下,需要使用AdminApi手动触发故障转移;
2、无法防止由于意外或者不可用而导致的数据丢失,发生故障时候没有应用的事务可能有丢失现象;
3、无法防止意外退出之后的数据不一致现象;在主节点因为网络问题而短暂失联时候,如果某个从节点提升为主节点,则可能发生脑裂现象;
4、innodb 副本集不支持多主模式,经典的多主写入复制方案无法保证数据一致性;
5、innodb副本集基于异步复制,不能像MGR那样进行流控,因此读的扩展性会一定程度上受限;
6、所有secondary都要从primary复制,因此可能会对源实例产生一定的影响
从上面的描述中不难看出,innodb副本集跟MongoDB的副本集还有很大的差距,但是我们依然有研究的必要,因为它是MySQL官方在高可用之路上迈出的重要一步,后续随着版本的迭代,我相信这些问题会得到关注和解决,有更好的方案进一步满足用户的要求。
03 部署前须知
innodb副本集的运行环境有一定的要求,如下:
1、仅支持MySQL8.0及以上版本;
2、仅支持GTID的复制方法
3、仅支持row格式的binlog,不支持statement格式的binlog
4、不支持复制过滤器
5、不允许建立额外的复制通道
6、副本集primary节点只有一个,secondary节点可以有多个,MySQL Router会对每个节点进行监控
7、副本集必须完全由MySQL Shell管理,不支持在MySQL Shell之外对实例进行配置和更改
下一篇文章我将会从最基本的安装过程说起,详细描述MySQL Shell、MySQL Router的安装以及innodb 副本集的搭建过程。
来源:https://mp.weixin.qq.com/s/VS2HSy36_z9I7uyTTck_-A


猜你喜欢
- python打印当前文件的绝对路径并解决打印为空获取当前文件所在路径主要使用os.path.dirname(os.path.abspath(
- 前言前段时间在一个项目里使用到了分布式锁进行共享资源的访问限制,后来了解到Golang里还能够使用singleflight对共享资源的访问做
- property属性一种用起来像是使用实例属性一样的特殊属性,可以对应于某个方法既要保护类的封装特性,又要让开发者可以使用 对象.属性 的方
- 桥接模式(Bridge Pattern)是什么桥接模式是一种结构型模式,它将抽象部分与实现部分分离开来,使它们可以独立地变化。在桥接模式中,
- 1.我的MySQL中的start_time存储的是2018-03-21 10:55:32格式的时间,我需要按照YYYY-MM-DD格式来查询
- 关于缓存剩下的问题是数据的隐私性以及在级联缓存中数据应该在何处储存的问题。通常用户将会面对两种缓存: 他或她自己的浏览器缓存(私有缓存)以及
- 这篇文章主要介绍了Python socket模块方法实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- 于是写测试程序。。。不行 下载最新的ODBC。。。还是不行 通过sql plus查询。。。咦?竟然也查不到。。。 于是,折腾。。。折腾。。。
- 利用Python OpenCV中的 cv.Resize(源,目标,变换方法)就可以实现变换为想要的尺寸了源文件:就不用说了目标:你可以对图像
- 下载Git安装文件:GIt官网下载地址:Git-2.6.3-64-bit.exe然后就进入了Git的安装界面,如图:Git安装界面和Node
- Book表的数据显示id title price publish_id2 Linux &nb
- 照片尺寸 单位:cm1X1.5 (1寸) 2.6*3.9 一寸2.5*3.5 1.5X2 (2寸) 3.8*
- 概览(循环方式 - 常用)formapforEachfilter声明遍历的数组和异步方法声明一个数组:??const skills = [&
- 1.表结构 2.表数据 3.查询teacher_name字段不能等于空并且也不能等于空字符SELECT * FROM s
- 写在前面Vue Router是Vue团队的研发的一款与Vue.js核心深度集成的一款路由插件,使Vue构建单页面程序变得非常的简单;Vue
- 有没有头疼过百度云盘都要塞满了,可是又没有工具能剔除大量重复无用的文件?这里教你一个简单的方法,通过整理目录的方式来处理我们云盘中无用的文件
- python生成遍历暴力破解密码(这里已遍历暴力破解rar为例,只提供生成密码以及遍历密码)这个也就是提供一个思路,需求是这样的,我XX的闺
- numpy中矩阵选取子集或者以条件选取子集,用mask是一种很好的方法简单来说就是用bool类型的indice矩阵去选择,mask = np
- foreignkey是一种关联字段,将两张表进行关联的方式,我们在dodels.py里写入要生成的两张表:class Usergroup(m
- 下面通过三种方法给大家介绍Pycharm2020.1安装中文语言插件的方法,大家可以参考下:方法一(在搜索不到插件):1.安装好Pychar