登录
首页 >  数据库 >  MySQL

MySQL8.0.19的InnoDB ReplicaSet

来源:SegmentFault

时间:2023-01-19 10:46:54 363浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个数据库开发实战,手把手教大家学习《MySQL8.0.19的InnoDB ReplicaSet》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

以下文章来源于MySQL解决方案工程师 ,作者徐轶韬

MySQL8.0.19里面推出了一个新功能,InnoDB ReplicaSet,我暂且管它叫做叫做复制集。那么这个复制集是做什么用的呢?为何要推出这样一款产品呢?它将如何使用呢?这篇文章里我将会简单的介绍一下它。

InnoDB ReplicaSet由一个主节点和多个从节点组成,与传统主从复制的主从节点非常类似,所有的节点必须基于GTID,并且数据复制采用异步的方式。通过使用MySQL Shell的AdminAPI和ReplicaSet对象,用户可以像配置InnoDB Cluster那样非常简单地去搭建一主多从的复制架构。此外,使用复制集还可以接管既有的主从复制,但是需要注意,一旦被接管,只能通过AdminAPI对其进行管理。

为何要推出这样一款产品呢?首先,使用它可以非常容易的配置传统的主从复制,适用于一些对高可用性要求不高的场景,可用性要求高的情况下,还是推荐使用InnoDB Cluster。其次,该操作是集成在AdminAPI里面的,由MySQL Shell提供,如果大家看过我以前说过的InnoDB Cluster的发展路线图,会发现InnoDB Cluster的发展路线图里包括自动扩展数据读取,多个副本从集群中复制出来供应用程序使用,结合InnoDB Cluster的三个组件 MGR、MySQL Router和MySQL Shell来整体考虑,未来,复制集应该是自动读取扩展的一部分。从这一点来看,应该能够解释,为何要推出这样一款采用异步复制的HA较低的产品了。

如何使用呢?使用起来也非常简单,我按照手册上的例子执行了一遍,感兴趣的话,您也可以亲自试一试。

我的实验是在一台主机上做的,配置了两个实例,端口分别为3310和3320。另外需要安装最新的MySQL Shell 8.0.19

初始化两台实例之后,使用shell分别连接两台实例,进行简单的配置。

mysql-js> \connect root@192.168.56.10:3310

连接后执行dba.configureReplicaSetInstance() 对其进行配置,在这里需要设置一个用于全部节点的账户(账户必须在全部节点上一致)

之后,使用dba.createReplicaSet() 创建复制集:

创建好了以后,可以通过ReplicaSet.status()查看复制集的状态:

接下来,在第二个节点上同样执行配置操作,然后执行加入复制集操作。

执行加入复制集操作后,会提示使用哪种方式进行数据恢复(克隆或增量),由于我的两台节点数据不一致,我选用的克隆方式,此方式会将从节点上的数据完全删除。

克隆完毕,重启之后,再次查看复制集状态:

复制集已经搭建好了,接下来就可以按照平时的操作对MySQL进行操作了,数据会从主节点异步复制到从节点上。

关于复制集的介绍就到这里,更为详尽的内容请访问“https://dev.mysql.com/doc/ref...

欢迎大家试用并提出反馈!

理论要掌握,实操不能落!以上关于《MySQL8.0.19的InnoDB ReplicaSet》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>