MySQL InnoDB集群部署及管理全教程

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 路由器检测到这一点并转发客户端 新主数据库的应用程序。高级用户还可以配置 集群以具有多个主数据库。

下图显示了这些技术的工作原理概述 一起:

MySQL InnoDB集群部署及管理全教程_第1张图片

一、 InnoDB 集群要求

 在安装InnoDB Cluster的生产部署之前,请确保您打算使用的服务器实例满足以下要求。

  • InnoDB集群使用组复制,因此您的服务器实例必须满足相同的要求。请参阅组复制要求。AdminAPI提供dba.checkInstanceConfiguration()方法来验证实例是否满足组复制要求,并提供dba.configureInstance()方法以配置实例以满足要求。
  • 用于Group Replication的数据,以及用于InnoDB Cluster的数据,必须存储在InnoDB事务存储引擎中。使用其他存储引擎(包括临时MEMORY存储引擎)可能会导致组复制出错。在将实例与Group Replication和InnoDB Cluster一起使用之前,请将其他存储引擎中的任何表转换为使用InnoDB。您可以通过在服务器实例上设置disabled_storage_engines系统变量来防止使用其他存储引擎,例如:
    disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
  • 设置群集时,任何服务器实例上都不得有入站复制通道。在正在采用的复制组上允许由组复制自动创建的通道(Group_Replication_applier和Group_replification_recovery)。InnoDB Cluster不支持使用AdminAPI管理的异步复制通道之外的手动配置异步复制通道。如果您正在将现有的复制拓扑迁移到InnoDB Cluster部署,并且在设置过程中需要临时跳过此验证,则可以在创建集群时使用force选项来绕过它。 
  • group_replication_tls_source不能设置为mysql_admin。
  • 必须在任何要与InnoDB Cluster一起使用的实例上启用性能模式。
  • MySQL Shell用于配置InnoDB Cluster中使用的服务器的配置脚本需要访问Python。在Windows上,MySQL Shell包含Python,不需要用户配置。在Unix上,Python必须作为shell环境的一部分找到。要检查您的系统是否正确配置了Python,请执行以下操作:
    $ /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相关的设置不会被额外未识别的选项文件中的选项错误地覆盖。

二、 InnoDB 集群限制


三、 InnoDB 集群的用户帐户


四、 部署生产 InnoDB 集群


五、 配置 InnoDB 集群


六、 保护 InnoDB 集群


七、 监控 InnoDB 集群


八、 还原和重新启动 InnoDB 集群


九、修改或解散 InnoDB 集群


十、升级 InnoDB 集群

文章下方有交流学习区!一起学习进步!也可以前往官网,加入官方微信交流群
首发CSDN博客,创作不易,如果觉得文章不错,可以点赞收藏评论
你的支持和鼓励是我创作的动力❗❗❗ 

你可能感兴趣的:(mysql,java,数据库,服务器)