【MySQL Shell】8.1 InnoDB ClusterSet 的要求

InnoDB ClusterSet 部署的基础是 MySQL 8.0.27 或更高版本的现有 InnoDB 集群(Cluster ),以及许多独立的 MySQL Server 实例,这些实例可以形成副本集群(Replica Cluster),为该主集群提供容灾能力。如果您想试用 InnoDB ClusterSet, 可以使用 MySQL Shell 8.0.27 或更高版本在本地机器上搭建沙盒部署。您需要安装 MySQL Server 8.0.27 或更高版本以及 MySQL Router 8.0.27 或者更高版本。使用 MySQLShell 中的 AdminAPI 命令,您可以创建沙盒 MySQL Server 实例,使用其中一些实例设置 InnoDB 集群,然后按照本节中的说明使用其他实例作为副本集群设置 InnoDB ClusterSet 部署。有关部署和管理沙盒实例的说明,请参阅 第 6.8 节 “ AdminAPI MySQL 沙盒”

重点
建议您始终使用最新版本的 MySQL Shell 。MySQL Shell 的最新版本可以与 MySQL 5.7 或 8.0 的任何 GA 版本一起使用。

要设置InnoDB ClusterSet的生产部署,请确保您有以下组件:

  • 软件组件
  • InnoDB Cluster
  • MySQL Server 实例
  • MySQL Router 实例

软件组件

设置 InnoDB ClusterSet 部署需要 MySQL Server 8.0.27 或更高版本、 MySQL Shell 8.0.27 和 MySQL Router 8.0.27 或者更高版本。这些是 AdminAPI 所需的软件组件。请参阅 第 6.2 节 “安装 AdminAPI 软件组件”

始终使用最新版本的 MySQL Shell 和 MySQL Router, 并确保其版本与 MySQL Server 版本相同或更高。这两种产品都可以管理较旧的 MySQL Server 版本,但较旧的版本无法管理较新的 MySQL Server 发行版中的功能。

InnoDB Cluster

要作为主集群的现有 InnoDB Cluster 。这是 InnoDB ClusterSet 部署提供容灾能力的集群。可以采用 Group Replication 组作为 InnoDB Cluster 。有关设置 InnoDB Cluster 或采用 Group Replication 组的说明,请参阅 第 7.4 节 “部署生产 InnoDB Cluster”

作为主集群的 InnoDB Cluster 必须满足以下要求:

  • 集群不能已经是 InnoDB ClusterSet 部署的一部分。InnoDB Cluster 只能参与一个 InnoDB ClusterSet 部署。

  • 集群中的所有成员服务器实例必须为 MySQL 8.0.27 或更高版本。

  • InnoDB Cluster 元数据版本必须为 2.1.0 或更高。当您对集群执行任何操作(例如 dba.getCluster() 命令)时,AdminAPI 会警告您集群的元数据是否需要更新。通过在 MySQLShell 8.0.27 或更高版本中发出 dba.upgradeMetadata() 命令,您可以将元数据更新为 InnoDB ClusterSet 操作的适当版本。请注意,升级集群的元数据后,它不能由旧的 MySQL Shell 版本管理。有关详细信息,请参阅 第 6.11 节 “升级元数据模式”

  • 集群必须处于单主模式。InnoDB Cluster 可以是单主模式或多主模式,但 InnoDB ClusterSet 不支持多主模式。您可以在 MySQLShell 中使用 cluster.switchToSinglePrimaryMode() 命令将多主模式下的集群转换为单主模式,并选择一个实例作为主服务器。

  • 对于 8.0.27 版及更高版本的 MySQL Server 实例,对于 InnoDB ClusterSet 中的 InnoDB Cluster ,必须在集群中的所有成员服务器上使用相同的值设置 group_replication_view_change_uuid 系统变量,以便为视图更改事件提供可选 UUID 。 在 MySQL 8.0.27 之后,使用 dba.createCluster() 命令创建的 InnoDB Cluster 获取为所有成员服务器上的系统变量生成和设置的值。在 MySQL 8.0.27 之前创建的 InnoDB Cluster 可能没有设置这些系统变量,但 InnoDB ClusterSet 创建过程会对此进行检查,如果没有,则会失败并显示警告。
    Cluster.rescan() 命令可用于在 InnoDB Cluster 中的所有成员服务器上生成和设置 group_replication_view_change_uuid 的值。在 MySQLShell 8.0.29 之前,该命令在扫描集群时自动执行此操作,之后必须重新启动集群以实现更改。在 MySQL Shell 8.0.29 之后,该命令返回一条警告消息,告诉您必须为系统变量设置值,或者您可以启用选项 updateViewChangeUuid ,以便在扫描期间自动生成和设置值。重新启动集群后,可以重试 InnoDB ClusterSet 创建过程。

  • 任何成员服务器上都不能有来自组外服务器的入站复制通道。允许使用组复制自动创建的通道( group_replication_appliergroup_replication_recovery ) 。

  • 您需要知道集群的 InnoDB Cluster 服务器配置帐户用户名和密码(请参阅 第 8.3 节 “InnoDB ClusterSet 的用户帐户” )。这是在 InnoDB Cluster 的成员服务器上使用 dba.configureInstance 设置的帐户。您需要在将组成副本集群的 MySQL Server 实例上创建此帐户,并使用它来设置它们。

    注意
    您不能使用 InnoDB Cluster 管理员帐户(使用 cluster.setupAdminAccount() 设置)为副本群集设置独立的 MySQL Server 实例。cluster.setupAdminAccount() 在独立实例上不可用,如果您使用 dba.configureInstance 或手动在独立实例中创建其中一个帐户,则随后将从主集群复制该帐户,导致复制停止并出现错误。

  • 在创建 InnoDB ClusterSet 部署时,InnoDB Cluster 必须在线且运行正常,其主成员服务器必须可以使用 MySQL Shell 访问。

MySQL Server 实例

您可以将多个独立的 MySQL Server 实例创建为一个或多个副本集群。尽管 InnoDB ClusterSet 部署可以包括由单个服务器实例组成的副本集群,但建议每个副本集群中至少有三个成员服务器用于容错。在用于容灾的生产部署中,每个副本集群将位于另一个位置,例如不同的数据中心。

副本集群中使用的每个 MySQL Server 实例必须满足以下要求:

  • 该服务器还不是 InnoDB ClusterSet 部署、 InnoDB ClusterSet 或 InnoDB ReplicaSet 的一部分。

  • 您不需要服务器上的数据。如果服务器以前用于处理事务,则当数据成为副本集群的成员时,数据将被覆盖(除非事务恰好是主集群上事务的子集)。

  • 该服务器不是当前运行的组复制组的一部分(即使单个服务器已离开该组)。您不能将现有组复制组或其当前成员或前成员作为副本群集。如果要使用当前在复制组中的服务器实例,请对该组的所有成员执行 STOP GROUP_REPLICATION 命令,使该组完全脱机。然后可以使用 AdminAPI 将单独的服务器实例制作成副本集群。

    重点
    在使用以前的 Group Replication 组成员作为 InnoDB ClusterSet 副本集群的成员时要谨慎,特别是如果您对 Group Replication 配置选项进行了大量更改,或者如果该组是在更早的版本中创建的,并且您根据该版本中的情况进行了配置更改。
    InnoDB ClusterSet 副本群集创建过程将覆盖您在命令中指定新设置的任何现有持久化 Group Replication 配置选项。它还始终覆盖以下系统变量,即使您没有在命令中指定它们: group_replication_group_namegroup_replication_group_seedsgroup_replication_local_addressgroup_replication_view_change_uuid ,和 group_replication_enforce_update_everywhere_checks 。 但是,您更改的其他组复制配置选项仍保持原样。这些自定义设置可能会干扰 InnoDB ClusterSet 的运行或性能,InnoDB ClusterSet 希望 MySQL 8.0.27 默认值用于 Group Replication( 组复制)配置选项,这些选项在 InnoDB ClusterSet 副本群集创建过程中不会更改。
    如果确实要使用已配置的组复制服务器,请检查并删除所有自定义项(如果可能),特别是检查 group_replication_single_primary_mode 系统变量是否设置为默认值 ON 。 在这种情况下,对于前组复制组成员最安全的选择是重新安装 MySQL Server , 而不是将安装升级到 MySQL 8.0.27。

  • 服务器为 MySQL 8.0.27 或更高版本。如果要通过克隆为副本集群配置更多成员服务器,则所有服务器必须处于同一版本,并且位于同一操作系统上。

  • 服务器具有在整个 InnoDB ClusterSet 中唯一的服务器 ID( server_id 系统变量 )和服务器 UUID( server_uuid 系统变量 ),包括任何脱机或无法访问的成员服务器。

  • 服务器上未配置入站(inbound)复制通道。仅允许组复制通道( group_replication_appliergroup_replication_recovery )。

  • 服务器可以连接到 InnoDB ClusterSet 中的主集群,并且主集群可以连接到它。

  • 在创建 InnoDB ClusterSet 部署时,服务器必须在线且健康,并且可以使用 MySQL Shell 访问。

所需的用户帐户凭据、 InnoDB ClusterSet 元数据和 Group Replication 配置将在 InnoDB ClusterSet 副本集群创建过程中设置。

MySQL Router 实例

一个或多个 MySQL 路由器实例,用于将客户端应用程序流量路由到 InnoDB ClusterSet 部署中的适当集群。建议将 MySQL Router 部署在与客户端应用程序相同的主机上。

重点
如果您正在使用现有的 InnoDB Cluster 作为 InnoDB ClusterSet 部署中的主集群,并且您已经针对该集群启动了 MySQL Router , 请针对 InnoDB ClusterSet 使用 --force 选项再次启动它,然后停止并重新启动 MySQL Router 。 需要为 InnoDB ClusterSet 更新 MySQL Router 实例的静态配置文件中的设置。按照 第 8.5 节 “将 MySQL Router 与 InnoDB ClusterSet 集成” 中描述的步骤进行操作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MySQL engine=innodb是指MySQL数据库的一种存储引擎,它是MySQL默认的事务型存储引擎之一。相较于其他存储引擎,InnoDB支持行级锁、外键约束、事务等高级功能,能够提供更好的数据一致性和可靠性,因此在大多数应用场景下都是推荐使用的存储引擎。是的,您所引用的问题是关于MySQL数据库中的InnoDB存储引擎的。MySQL是一种关系型数据库管理系统,它支持多种存储引擎,而InnoDB是其中一个最流行的存储引擎之一。InnoDB存储引擎具有事务支持、行级锁、外键约束等高级功能,这些功能可以提供更好的数据一致性和可靠性。因此,对于大多数应用场景,推荐使用InnoDB作为MySQL的存储引擎。是的,您的理解是正确的。MySQL是一种关系型数据库管理系统,支持多种存储引擎。而InnoDBMySQL默认的事务型存储引擎之一,也是其中一个最流行的存储引擎,具有许多高级功能,例如事务支持、行级锁、外键约束等,可以提供更好的数据一致性和可靠性。因此,在大多数应用场景下,使用InnoDB作为MySQL的存储引擎是推荐的。是的,您的理解是正确的。MySQL是一种关系型数据库管理系统,支持多种存储引擎。而InnoDBMySQL默认的事务型存储引擎之一,也是其中一个最流行的存储引擎,具有许多高级功能,例如事务支持、行级锁、外键约束等,可以提供更好的数据一致性和可靠性。因此,在大多数应用场景下,使用InnoDB作为MySQL的存储引擎是推荐的。是的,您引用的问题涉及到MySQL数据库中的InnoDB存储引擎。MySQL是一种关系型数据库管理系统,它支持多种存储引擎,而InnoDB是其中一个最流行的存储引擎之一。InnoDB存储引擎具有事务支持、行级锁、外键约束等高级功能,这些功能可以提供更好的数据一致性和可靠性。因此,对于大多数应用场景,推荐使用InnoDB作为MySQL的存储引擎。是的,这些回答都是关于MySQL数据库中的InnoDB存储引擎的描述,强调了它的一些高级功能,例如事务支持、行级锁、外键约束等,以及在大多数应用场景下推荐使用它作为MySQL的存储引擎。InnoDB存储引擎的特性和优点使其成为MySQL数据库管理系统中广泛使用的默认存储引擎之一。MySQL中的InnoDB是一种支持事务处理和行级锁定的存储引擎。它是MySQL的默认存储引擎,它提供了数据完整性、高效性和可靠性。相比于MyISAM存储引擎,InnoDB存储引擎在并发性能、事务支持和崩溃恢复方面都有很大优势,因此在需要处理高并发、高可用性和数据一致性要求较高的应用场景中广泛使用。MySQL中的engine参数是用来指定表的存储引擎的,其中InnoDBMySQL的一种常用的存储引擎之一。它支持ACID事务,提供了高度的数据完整性和并发性,并且具有良好的性能表现。InnoDB引擎适合用于需要高并发、高可靠性和事务支持的应用程序。MySQLInnoDB是一种数据库引擎,它支持事务处理和外键约束,是MySQL默认的存储引擎。它使用了行级锁定和多版本并发控制(MVCC)来提高并发性能和数据的一致性。InnoDB还提供了高可用性和可靠性,支持崩溃恢复和自动故障转移。由于它的特性,InnoDB适用于大型高并发的应用程序,如电子商务网站和金融系统。MySQL是一种流行的关系型数据库管理系统,而InnoDBMySQL的一种存储引擎,用于管理MySQL中的数据存储和检索。它支持事务、行级锁、外键等功能,并且在处理高并发、大容量数据时表现良好。InnoDB还具有自动崩溃恢复和数据恢复功能,能够有效保障数据的完整性和可靠性。相比于MySQL的其他存储引擎,InnoDB更加适合于大型企业级应用和高性能的Web应用程序。MySQLInnoDB是一种关系型数据库引擎,它是MySQL默认的存储引擎之一。InnoDB支持事务处理和外键约束,可以提供更高的数据完整性和并发性能。相比于其他MySQL存储引擎,InnoDB具有更好的性能和可靠性,并且在高并发读写的情况下表现更出色。同时,InnoDB也支持行级锁定,允许多个用户同时访问同一张表而不会出现数据混乱的情况。MySQL Engine=InnoDBMySQL数据库管理系统中的一种存储引擎。InnoDB存储引擎支持事务、行级锁定和外键等功能,这使得它成为处理高并发读写操作的理想选择。此外,InnoDB还支持自动恢复功能,能够保护数据库的完整性和可靠性。因此,在处理高负载事务型应用程序方面,InnoDB是一种被广泛采用的存储引擎。 MySQL 引擎= InnoDB 是一种关系型数据库管理系统,用来存储、管理和访问数据。它可以处理大量数据,并具有良好的安全性和可靠性。MySQL的存储引擎InnoDB是一种可靠性高、事务处理能力强的存储引擎。它支持ACID事务模型,并提供行级锁定,可有效地减少锁定竞争,提高并发性能。InnoDB还支持外键约束、多版本并发控制(MVCC)和崩溃恢复等功能,使得它成为了MySQL中最常用的存储引擎之一。MySQL是一种常用的关系型数据库管理系统,而InnoDB则是MySQL的一种存储引擎,它是MySQL默认的事务型存储引擎。InnoDB存储引擎支持ACID事务,可以提供高并发的读写性能和数据安全性,同时也支持行级锁和外键等高级特性。因此,在MySQL中使用InnoDB存储引擎可以提高数据库的性能和可靠性。MySQL中的InnoDB是一种存储引擎,用于处理数据存储和检索。它支持事务、行级锁定和外键约束等高级功能,是MySQL中最流行的存储引擎之一。使用InnoDB可以提高MySQL数据库的性能和可靠性。MySQL Engine=InnoDBMySQL的一种存储引擎,它支持事务、行级锁定、外键约束等功能。与其他存储引擎相比,InnoDB具有更好的数据完整性和可靠性。同时,它还支持较高的并发性和性能。在MySQL中,InnoDB是默认的存储引擎。MySQL Engine=InnoDBMySQL 数据库的一种存储引擎,它支持事务、行级锁定和外键约束等特性。InnoDB 存储引擎被广泛应用于 MySQL 数据库中,特别是对于要求高并发、高可用性和数据完整性的应用程序。它也是 MySQL 默认的存储引擎。 我可以为您提供关于MySQL InnoDB引擎的帮助。 我们使用InnoDB作为MySQL引擎。 您可以使用InnoDB引擎来运行MySQL数据库MySQL中的InnoDB是一种存储引擎,它提供了事务处理、并发控制和崩溃恢复功能。相比于MySQL的其他存储引擎,如MyISAM,InnoDB支持更高级的事务处理,更好的并发性和更高的容错性。InnoDB还支持外键约束,可以保证数据的完整性和一致性。由于InnoDB具有这些优点,因此在大多数情况下,它被认为是MySQL的首选存储引擎。MySQLInnoDB引擎是一种事务性存储引擎,具有高度的数据完整性和并发性能。它支持行级锁定和外键约束,可提供更高的并发性和更好的数据保护。InnoDB还支持ACID(原子性,一致性,隔离性和持久性)事务,使其非常适合应用程序处理事务性数据。MySQL中的InnoDB是一种存储引擎,它是MySQL默认的事务型存储引擎。与其他存储引擎相比,InnoDB支持ACID事务处理,具有更好的并发性能和更好的数据完整性保障,还提供了行级锁定机制,可以提高数据库的并发性能。InnoDB还支持外键约束,可以保证数据的完整性。因此,如果需要保证数据的一致性和完整性,并需要支持并发访问,使用InnoDB存储引擎是一个不错的选择。MySQLInnoDB是一种常见的存储引擎,它支持ACID事务,并且具有良好的并发性能和数据完整性。相对于MySQL的另一种存储引擎MyISAM,InnoDB支持更好的并发性和更好的数据一致性,但在处理大量只读查询时可能会稍微慢一些。InnoDB还支持行级锁定,这使得多个并发事务可以在同一时间修改不同的行,从而提高了数据库的并发性能。MySQLInnoDB是一种关系型数据库引擎,它是MySQL的默认引擎。InnoDB提供了事务处理、行级锁定、外键约束等功能,适用于需要高性能、高可靠性的应用程序。与其他引擎相比,InnoDB可以更好地处理高并发环境下的读写操作,并且支持更大的数据量。MySQL引擎InnoDBMySQL的一种关系型数据库存储引擎,它支持ACID事务处理,具有高并发性和稳定性,同时还支持行级锁定和外键约束等高级功能。因此,InnoDBMySQL数据库中被广泛使用,尤其适合处理大量数据的高负载应用程序。MySQL的存储引擎(storage engine)之一是InnoDB。它是MySQL数据库管理系统的一个标准引擎,支持事务处理和外键约束等高级功能。相对于其他存储引擎,InnoDB的优点包括:支持事务处理,具有较好的数据完整性和稳定性,可以在高并发环境下提供更好的性能。MySQL引擎InnoDB是一种流行的关系型数据库管理系统(RDBMS)的存储引擎。它是MySQL的默认存储引擎,它支持事务、行级锁、外键等特性。InnoDB引擎还使用缓冲池(也称为缓存)来提高数据检索性能,并提供了高可靠性和容错能力。InnoDB还支持对大量数据进行处理和管理,使其成为处理复杂应用程序的理想选择。MySQLInnoDB是一种常用的存储引擎。它支持事务处理和外键约束,提供高效的读写性能和可靠性,被广泛用于各种规模的应用程序中,包括Web应用程序和企业级系统。与MySQL的其他存储引擎相比,InnoDB可以更好地处理高并发和大量数据的情况,因此在需要处理复杂查询和大量数据的应用程序中使用InnoDB是比较常见的选择。InnoDBMySQL 数据库的一种存储引擎,它是一种事务性、支持行锁定和外键约束的存储引擎。与 MyISAM 引擎相比,InnoDB 引擎具有更好的事务处理能力和并发性能。同时,InnoDB 引擎还支持多版本并发控制(MVCC)和缓冲池等高级特性,使其在高并发环境下表现更加出色。因此,对于需要进行事务处理或者需要更好的并发性能的应用程序,建议使用 InnoDB 引擎作为 MySQL 的存储引擎。MySQL中的InnoDB是一种数据库存储引擎,它是MySQL的默认存储引擎。InnoDB支持事务处理和行级锁定等高级功能,这使得它非常适合用于大型或高并发的应用程序。与MyISAM存储引擎相比,InnoDB存储引擎更加健壮、可靠,并提供更多的安全性和完整性控制。MySQLInnoDB是一种支持事务处理的存储引擎。相比于MyISAM存储引擎,InnoDB支持行级锁定和外键约束等高级特性。在高并发的数据库应用中,InnoDB常常比MyISAM表现更出色,尤其是当需要处理大量的INSERT和UPDATE操作时。因此,在选择MySQL存储引擎时,InnoDB是一个非常好的选择。MySQL引擎InnoDB是一种关系型数据库管理系统的存储引擎,它支持事务处理、行级锁定以及外键约束等高级特性,同时还具有高可靠性、高可用性和高性能的特点,因此被广泛应用于企业级应用中。相比其他存储引擎,InnoDB对于大量并发访问和数据更新的场景下表现更为优异。MySQL中的InnoDB是一种存储引擎,它是MySQL的默认存储引擎。InnoDB是一个支持事务处理和行级锁定的存储引擎,它提供了高度可靠性和性能。InnoDB使用了多版本并发控制(MVCC)来实现行级锁定,这允许多个事务同时读取同一表而不会相互干扰,同时提供了强大的数据完整性和一致性。此外,InnoDB还支持外键约束、提交、回滚和崩溃恢复等重要功能,这些功能使其成为了一个非常受欢迎的存储引擎。MySQLInnoDB是一种常见的数据库引擎,它支持事务处理和行级锁定。InnoDB使用聚簇索引,这使得它在处理大量数据时非常高效,并且在并发访问情况下具有很好的性能表现。此外,它还支持外键约束和其他高级特性,这使得它成为许多应用程序的首选引擎之一。"mysql engine=innodb" 是 MySQL 数据库中指定 InnoDB 存储引擎的命令。InnoDBMySQL 的一种事务性存储引擎,它支持行锁定、外键约束等高级特性,可以提高数据库的可靠性、安全性和性能。在创建表时,可以使用这个命令指定使用 InnoDB 存储引擎,例如: ``` CREATE TABLE my_table ( id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB; ``` 以上命令将创建一个名为 my_table 的表,并指定使用 InnoDB 存储引擎。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独上西楼影三人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值