Mysql 8.0 集群简介【官方文档5种方式】

Mysql官方介绍几种集群架构:

Replication【主从复制】
Group Replication 【组复制】
InnoDB Cluster
InnoDB ReplicaSet
MySQL NDB Cluster 8.0

网上比较全的介绍比较少,本文机翻了Mysql官网对Mysql 8.0 几种集群方式的简介。
之后会一一研究并实际部署。

Replication【主从复制】

https://dev.mysql.com/doc/refman/8.0/en/replication.html
复制使数据从一个MySQL数据库服务器(称为源)复制到一个或多个MySQL数据库服务器(称为副本)。默认情况下,复制是异步的;副本不需要永久连接就可以从源接收更新。根据配置的不同,可以在数据库中复制所有数据库、选定的数据库,甚至选定的表。

MySQL中复制的优势包括:

扩展解决方案——在多个副本之间分散负载,以提高性能。在这种环境中,所有写操作和更新都必须在源服务器上进行。然而,读取可能发生在一个或多个副本上。这个模型可以提高写的性能(因为源代码是专门用于更新的),同时在不断增加的副本数量上显著提高读速度。

数据安全——因为副本可以暂停复制过程,所以可以在副本上运行备份服务,而不会破坏相应的源数据。

分析——实时数据可以在源上创建,而信息分析可以在副本上进行,而不会影响源的性能。

远程数据分布—您可以使用复制创建数据的本地副本,供远程站点使用,而无需对源进行永久访问。

有关如何在这种情况下使用复制的信息,请参阅17.4节“复制解决方案”。

MySQL 8.0支持不同的复制方法。传统的方法基于从源的二进制日志中复制事件,并要求在源和副本之间同步日志文件和其中的位置。基于全局事务标识符(gtid)的新方法是事务性的,因此不需要处理日志文件或这些文件中的位置,这极大地简化了许多常见的复制任务。只要在源上提交的所有事务也应用到副本上,使用gtid的复制就能保证源和副本之间的一致性。关于gtid和基于gtid的MySQL复制的更多信息,请参见17.1.3小节,“使用全局事务标识符的复制”。有关使用基于二进制日志文件位置的复制的信息,请参阅17.1节“配置复制”。
MySQL中的复制支持不同类型的同步。原始的同步类型是单向异步复制,其中一个服务器作为源,而一个或多个其他服务器作为副本。这与同步复制形成了鲜明的对比,同步复制是NDB集群的一个特征(见第23章,MySQL NDB集群8.0)。在MySQL 8.0中,除了内置的异步复制外,还支持半异步复制。对于半同步复制,在返回到执行事务的会话之前,在源块上执行的提交,直到至少有一个副本承认它已经接收并记录事务的事件;请参见17.4.10节“半同步复制”。MySQL 8.0还支持延迟复制,这样副本就会故意滞后于源文件至少一段时间;参见17.4.11节“延迟复制”。对于需要同步复制的场景,请使用NDB集群(参见第23章,MySQL NDB集群8.0)。

Group Replication【组复制】

https://dev.mysql.com/doc/refman/8.0/en/group-replication.html
介绍MySQL组复制的背景信息。
创建容错系统的最常见方法是使组件冗余,换句话说,可以删除组件,系统应继续按预期运行。这就产生了一系列挑战,将这些系统的复杂性提升到一个完全不同的水平。具体来说,复制的数据库必须处理这样一个事实,即它们需要维护和管理多个服务器,而不仅仅是一个服务器。此外,由于服务器共同协作创建组,需要处理其他几个经典的分布式系统问题,如网络分区或大脑分裂场景。
因此,最终的挑战是将数据库和数据复制的逻辑与以一致和简单的方式协调多个服务器的逻辑融合在一起。换句话说,让多个服务器对系统的状态和系统所经历的每次更改的数据达成一致。这可以总结为让服务器在每个数据库状态转换上达成一致,这样它们都作为一个单一的数据库前进,或者最终收敛到相同的状态。这意味着它们需要作为(分布式)状态机进行操作。
MySQL组复制提供分布式状态机复制,在服务器之间具有很强的协调性。当服务器属于同一组时,它们会自动协调自己。该组可以在具有自动主选择的单主模式下运行,在这种模式下,每次只有一台服务器接受更新。另外,对于更高级的用户,可以以多主模式部署组,其中所有服务器都可以接受更新,即使更新是并发发布的。这种能力是以应用程序必须绕过此类部署所施加的限制为代价的。
有一个内置的组成员服务,可以保持组视图的一致性,并且在任何给定的时间点对所有服务器都可用。服务器可以离开并加入组,视图也相应更新。有时,服务器可能会意外地离开组,在这种情况下,故障检测机制会检测到这一点,并通知组视图已经更改。这都是自动的。
要提交事务,组中的大多数成员必须同意全局事务序列中给定事务的顺序。决定提交或中止事务是由每个服务器单独完成的,但所有服务器都做出相同的决定。如果出现网络分区,导致成员无法达成一致意见,则系统不会继续运行,直到该问题得到解决。因此,大脑也有一个内置的、自动的、裂脑保护机制。
所有这些都是由提供的组通信系统(GCS)协议驱动的。它们提供了故障检测机制、组成员服务以及安全且完全有序的消息传递。所有这些属性都是创建系统的关键,该系统可以确保数据在一组服务器之间一致复制。该技术的核心是Paxos算法的实现。它充当组通信引擎。

InnoDB Cluster简介:

https://dev.mysql.com/doc/refman/8.0/en/mysql-innodb-cluster-introduction.html
MySQL InnoDB集群为MySQL提供了一个完整的高可用性解决方案。通过使用AdminAPI,它包含在MySQL Shell中,你可以很容易地配置和管理一组至少三个MySQL服务器实例作为InnoDB集群。

InnoDB集群中的每个MySQL服务器实例都运行MySQL组复制,它提供了在InnoDB集群中复制数据的机制,并带有内置的故障转移功能。AdminAPI消除了在InnoDB集群中直接使用组复制的需要,但更多信息请参见组复制,它解释了详细信息。从MySQL 8.0.27开始,你也可以设置InnoDB ClusterSet(见第八章,InnoDB ClusterSet)来为InnoDB集群的部署提供容灾能力,通过连接一个主InnoDB集群和它自己的一个或多个副本在不同的位置,比如不同的数据中心。

MySQL路由器可以根据部署的集群自动配置自己,透明地连接客户机应用程序到服务器实例。如果服务器实例出现意外故障,集群将自动重新配置。在默认的单主模式下,一个InnoDB集群有一个读写服务器实例——主服务器。多个辅助服务器实例是主服务器的副本。如果主服务器出现故障,则从服务器自动升级为主服务器。MySQL路由器检测到这一点,并将客户端应用程序转发到新的主服务器。高级用户还可以将集群配置为拥有多个主节点。

在这里插入图片描述

InnoDB ReplicaSet

https://dev.mysql.com/doc/refman/8.0/en/mysql-innodb-replicaset-introduction.html
AdminAPI支持InnoDB ReplicaSet,允许你管理一组运行基于异步gtid的复制的MySQL实例,就像InnoDB集群一样。一个InnoDB ReplicaSet由一个主服务器和多个从服务器组成(传统上称为MySQL复制源和副本)。您可以使用ReplicaSet对象和AdminAPI操作来管理ReplicaSet,例如检查InnoDB ReplicaSet的状态,并在故障发生时手动切换到一个新的主节点。

类似于InnoDB集群,MySQL路由器支持针对InnoDB ReplicaSet的引导,这意味着你可以自动配置MySQL路由器来使用你的InnoDB ReplicaSet,而不需要手动配置。这使得InnoDB ReplicaSet成为一种快速和简单的方式来启动和运行MySQL复制和MySQL路由器,使它非常适合扩展读取,并在不需要InnoDB集群提供高可用性的用例中提供手动故障转移功能。

除了使用AdminAPI部署InnoDB ReplicaSet,你还可以采用现有的复制设置。AdminAPI根据复制设置的拓扑结构配置InnoDB ReplicaSet。一旦采用了复制设置,您就可以像从头部署InnoDB ReplicaSet一样管理它。这使您能够利用AdminAPI和MySQL路由器,而不需要创建一个新的复制集。要了解更多信息,请参见9.3节“采用现有的复制设置”。

InnoDB ReplicaSet可以在广域网中使用,对写性能没有影响,因为服务器实例是通过异步复制通道连接的,不需要在事务上达成一致。然而,在广域网上,复制延迟会更大,导致InnoDB ReplicaSet中的辅助服务器进一步落后于主服务器。

InnoDB ReplicaSet局限性。与InnoDB集群相比,InnoDB复制集有几个限制,所以建议尽可能地部署InnoDB集群。通常,一个InnoDB ReplicaSet本身并不能提供高可用性。InnoDB ReplicaSet的限制如下:

没有自动故障转移。在主服务器变为不可用的事件中,需要使用AdminAPI手动触发故障转移,然后才能再次进行任何更改。但是,次要实例仍然可用于读取。

由于意外停止或不可用,无法防止部分数据丢失。在暂停之前尚未申请的交易可能会丢失。

在意外退出或不可用之后,没有针对不一致的保护。如果故障转移在前主服务器仍然可用(例如,由于网络分区)的情况下促进了备用服务器,则可能会由于大脑分裂而引入不一致性。

InnoDB ReplicaSet不支持多主模式。允许在所有成员中写入数据的经典复制拓扑不能保证数据一致性。

因为InnoDB ReplicaSet是基于异步复制的,所以不可能像组复制那样对流量控制进行调优。

所有次要成员都从一个源进行复制。对于某些特定的场景或用例,这可能会对源代码产生影响。例如,许多非常小的更新正在进行。

MySQL NDB Cluster 8.0

https://dev.mysql.com/doc/refman/8.0/en/mysql-cluster.html
本章提供了MySQL NDB集群的信息,这是一种适用于分布式计算环境的MySQL高可用、高冗余版本。最新的NDB集群版本系列使用了NDB存储引擎(也被称为NDBCLUSTER)的版本8来支持在集群中运行多台带有MySQL服务器和其他软件的计算机。NDB集群8.0,现在作为通用可用性(GA)版本(从8.0.19版本开始)发布,包含了NDB存储引擎的8.0版本。NDB Cluster 7.6和NDB Cluster 7.5,仍然可以作为GA版本使用,分别使用NDB 7.6和7.5版本。以前的GA版本仍然可以在生产环境中使用,NDB Cluster 7.4和NDB Cluster 7.3,分别包含了NDB 7.4和NDB 7.3版本。不再支持或维护NDB 7.2和更早的版本系列。

本章包含关于NDB Cluster 8.0到8.0.29版本的信息。NDB Cluster 8.0现在作为通用可用性发布(从NDB 8.0.19开始),推荐用于新部署;最新可用的版本是NDB 8.0.28。NDB Cluster 7.6和7.5是以前的GA版本,在生产中仍然支持;有关NDB集群7.6的信息,请参见NDB集群7.6新增内容。关于NDB集群7.5的类似信息,请参见NDB集群7.5新增内容。NDB Cluster 7.4和7.3是以前的GA版本,在生产环境中仍然支持,尽管我们建议新的部署使用NDB Cluster 8.0;请参考MySQL NDB集群7.3和NDB集群7.4。

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL官方文档MySQL数据库管理系统的官方参考指南,提供了全面而详细的文档资源,旨在帮助用户了解和使用MySQL数据库MySQL 8.0官方文档中也提供了中文版,方便中国用户阅读和查找所需的信息。 MySQL 8.0官方文档中文版内容包括了MySQL数据库的各个方面,涵盖了安装、配置、使用、维护和开发等各个方面的知识。文档以清晰的结构组织,使用简单明了的语言描述概念和操作步骤,易于理解和学习。 该中文版文档包括了以下主要内容: 1. 概述:介绍MySQL数据库和其特点,以及MySQL 8.0的新功能和改进。 2. 安装和配置:讲解了如何下载、安装和配置MySQL数据库的步骤和指南。 3. 使用MySQL:包括了数据库的基本操作,如创建和管理表、插入和查询数据、更新和删除数据等。 4. 数据库管理:介绍了如何管理MySQL数据库,包括用户和权限管理、备份和还原数据库、性能优化等。 5. 高级主题:涵盖了高级技术主题,如存储过程、触发器、视图、复制和集群等。 6. 开发者指南:提供了MySQL数据库的开发者指南,包括了MySQL语法、数据类型和连接器等。 通过阅读MySQL 8.0官方文档中文版,用户可以轻松学习和掌握MySQL数据库,从基础操作到高级技术都可以找到相应的信息。并且,文档还提供了示例代码和实用的技巧,帮助用户更好地使用和优化MySQL数据库。 总的来说,MySQL 8.0官方文档中文版是MySQL数据库的权威参考,对于想要学习和使用MySQL的用户来说,是不可或缺的宝贵资源。 ### 回答2: MySQL官方文档MySQL数据库管理系统的官方技术文档,提供了全面的关于MySQL 8.0版本的信息和指导。 MySQL 8.0官方文档中文版主要包括以下内容: 1. 介绍和安装:文档提供了MySQL 8.0简介,包括其特性和优势。同时也提供了安装MySQL数据库的详细步骤和注意事项。 2. 数据类型和操作:文档详细介绍了MySQL 8.0支持的各数据类型,以及这些数据类型的操作和限制。无论是整型、浮点型、日期时间型还是字符串类型,都有详细的解释和示例。 3. 查询语言和操作:文档详细介绍了MySQL 8.0的查询语言(SQL)的语法和用法,包括各查询语句的编写和执行。同时也介绍了常用的数据操作语句,如插入、更新、删除等。 4. 数据库管理和安全:文档提供了关于MySQL 8.0数据库管理的指南,包括创建和管理数据库、用户和权限的操作。此外,还介绍了如何保护数据库的安全,如使用SSL加密、访问控制等。 5. 性能优化和高可用性:文档提供了关于MySQL 8.0性能优化和高可用性的指导,包括查询优化、索引设计、存储引擎选择等方面的内容。同时也介绍了MySQL复制和集群等高可用性解决方案。 6. 开发接口和工具:文档提供了关于MySQL 8.0的开发接口和工具的介绍和用法,如MySQL Connector、MySQL Workbench等。此外,也提供了一些常用的开发示例和最佳实践。 总之,MySQL 8.0官方文档中文版是MySQL数据库管理系统的权威指南,提供了全面的相关信息和指导。无论是初学者还是有经验的开发者,都可以通过阅读该文档来了解和使用MySQL 8.0。 ### 回答3: MySQL 8.0官方文档已经提供了中文版。它是MySQL数据库的权威参考文档,提供了完整的MySQL 8.0版本的文档信息。中文版官方文档的发布使得中文用户能够更方便地了解和使用MySQL 8.0MySQL 8.0官方文档中文版涵盖了广泛的主题,包括基本概念、安装和升级、配置和管理、备份和恢复、性能优化等。该文档提供了详细的指南和示例,使用户能够更好地理解和使用MySQL 8.0的各功能和工具。 MySQL 8.0官方文档中的中文翻译准确而清晰,使用简洁明了的语言,使读者能够轻松掌握MySQL 8.0的各个方面。无论是初学者还是有经验的用户,都能够通过这份文档更好地理解和使用MySQL 8.0,从而更高效地管理和操作数据库。 通过阅读MySQL 8.0官方文档的中文版,用户可以学习如何安装和配置MySQL服务器,了解数据库的基本操作和管理,掌握SQL查询语言的基本语法和高级技巧,学习如何进行性能优化和故障排除等。 总而言之,MySQL 8.0官方文档中文版是一份非常有价值的资源,能够帮助中文用户更好地学习和使用MySQL 8.0,实现更高效的数据库管理和开发。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值