MySQL InnoDB 集群提供完整的高可用性 MySQL 的解决方案。通过使用MySQL Shell附带的AdminAPI,您可以轻松 配置和管理至少三个MySQL服务器的组 实例以充当 InnoDB 集群。
InnoDB 集群中的每个 MySQL 服务器实例都运行 MySQL 组复制,提供复制机制 InnoDB 集群中的数据,具有内置故障转移功能。管理接口 无需在 InnoDB 集群,但有关更多信息,请参阅组复制,其中解释了详细信息。从 MySQL 8.0.27,你也可以设置 InnoDB ClusterSet(参见第 8 章 MySQL InnoDB ClusterSet)来提供灾难 通过链接主数据库对 InnoDB 集群部署的容忍度 InnoDB 集群,其自身的一个或多个副本交替存在 位置,例如不同的数据中心。
MySQL 路由器可以自动 根据您部署的群集进行自我配置,连接客户端 应用程序对服务器实例透明。如果发生以下情况 群集重新配置的服务器实例意外故障 自然而然。在默认的单主模式下,一个 InnoDB 集群具有单个读写服务器实例 - 主要。多个辅助服务器实例是 主要。如果主数据库发生故障,则会自动升级辅助数据库 到主要角色。MySQL 路由器检测到这一点并转发客户端 新主数据库的应用程序。高级用户还可以配置 集群以具有多个主数据库。
下图显示了这些技术的工作原理概述 一起:
在安装InnoDB Cluster的生产部署之前,请确保您打算使用的服务器实例满足以下要求。
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
$ /usr/bin/env python
如果启动Python解释器,则不需要执行进一步的操作。如果上一个命令失败,请在/usr/bin/python和您选择的python二进制文件之间创建一个软链接。
从版本8.0.17开始,实例必须在InnoDB集群中使用唯一的server_id。当您使用Cluster.addInstance(实例)操作时,如果集群中的实例已经使用了实例的server_id,则该操作将失败并出现错误。
从版本8.0.23开始,应该将实例配置为使用并行复制应用程序。请参阅第7.5.6节“配置并行复制应用程序”。
在为InnoDB Cluster配置实例的过程中,配置了使用实例所需的大部分系统变量。但是AdminAPI没有配置transaction_instance系统变量,这意味着它默认为REPEATABLE READ。这不会影响单个主集群,但如果您使用的是多主集群,那么除非您在应用程序中依赖可重复的READ语义,否则我们建议使用READ COMMITTED隔离级别。
实例的相关配置选项,特别是组复制配置选项,必须位于单个选项文件中。InnoDB Cluster只支持服务器实例的单个选项文件,不支持使用--defaults extra file选项来指定额外的选项文件。对于使用实例的选项文件的任何AdminAPI操作,必须指定主文件。如果您想为与InnoDB Cluster无关的配置选项使用多个选项文件,则必须手动配置这些文件,确保根据使用多个选择文件的优先规则正确更新这些文件,并确保与InnoDB Cluster相关的设置不会被额外未识别的选项文件中的选项错误地覆盖。
文章下方有交流学习区!一起学习进步!也可以前往官网,加入官方微信交流群
首发CSDN博客,创作不易,如果觉得文章不错,可以点赞收藏评论
你的支持和鼓励是我创作的动力❗❗❗