10bet网址
MySQL 8.0参考手册
相关文件10bet官方网站 下载本手册 本手册摘录

MySQL 8.0参考手册/.../ NDB群集节点、节点组、片段副本和分区

23.1.2 NDB群集节点、节点组、碎片副本和分区

本节讨论NDB集群划分和复制数据以进行存储的方式。

在接下来的几段中,我们将讨论一些对理解这一主题至关重要的概念。

数据节点。ndbd公司ndbmtd公司存储一个或多个碎片副本-也就是说分区(本节稍后讨论)分配给节点是其成员的节点组。

每个数据节点应位于单独的计算机上。虽然也可以在一台计算机上托管多个数据节点进程,但通常不建议使用这种配置。

这是常见的术语节点数据节点指代一个词时可以互换使用ndbd公司ndbmtd公司过程;其中提到了管理节点(国家开发银行进程)和SQL节点(mysqld公司过程)在本讨论中作了规定。

节点组。节点组由一个或多个节点组成,并存储分区或组碎片副本(见下一项)。

NDB集群中节点组的数量不能直接配置;它是数据节点数和片段副本数的函数(无皱襞配置参数),如下所示:

[#节点组数]=[#数据节点数]/NoOfReplicas

因此,具有4个数据节点的NDB集群具有4个节点组,如果无皱襞在中设置为1配置.ini文件,2个节点组,如果无皱襞设置为2,如果无皱襞设置为4。本节后面将讨论片段副本;有关的详细信息无皱襞,请参见第23.3.3.6节,“定义NDB群集数据节点”.

注意

NDB集群中的所有节点组必须具有相同数量的数据节点。

您可以在线向运行中的NDB集群添加新的节点组(从而添加新的数据节点);看见第23.5.7节,“在线添加NDB群集数据节点”,以获取更多信息。

分区。这是集群存储的数据的一部分。每个节点负责为集群保留分配给它的任何分区的至少一个副本(即,至少一个片段副本)。

NDB Cluster默认使用的分区数取决于数据节点数和数据节点使用的LDM线程数,如下所示:

[#of partitions]=[#of data nodes]*[#of LDM threads]

使用数据节点运行时ndbmtd公司,LDM线程数由的设置控制MaxNoOfExecutionThreads公司. 使用时ndbd公司只有一个LDM线程,这意味着参与集群的节点和集群分区一样多。使用时也是如此ndbmtd公司具有MaxNoOfExecutionThreads公司设置为3或更少(您应该知道,LDM线程的数量会随着这个参数的值而增加,但不会以严格的线性方式增加,并且在设置它时会有额外的限制;请参见的说明MaxNoOfExecutionThreads公司更多信息。)

NDB和用户定义的分区。NDB群集分区NDB群集自动创建表格。但是,也可以使用用户定义的分区NDB群集桌子。这受到以下限制:

  1. 只有钥匙线性键分区方案在具有国家数据库桌子。

  2. 可以为任何分区显式定义的最大分区数国家数据库表是8 * [LDM线程数] * [节点组数],如本节前面所述,确定NDB群集中的节点组数。运行时ndbd公司对于数据节点进程,设置LDM线程的数量没有影响(因为线程配置仅适用于ndbmtd公司); 在这种情况下,为了执行此计算,可以将此值视为等于1。

    看到了吗第23.4.3节,“ndbmtd-NDB群集数据节点守护程序(多线程)”,以获取更多信息。

有关NDB集群和用户定义分区的更多信息,请参见第23.1.7节,“NDB集群的已知限制”,和第24.6.2节,“与存储引擎相关的分区限制”.

碎片复制品。这是群集分区的副本。节点组中的每个节点都存储一个片段副本。有时也称为分区副本. 片段副本的数量等于每个节点组的节点数。

片段副本完全属于单个节点;一个节点可以(而且通常确实)存储多个片段副本。

下图说明了运行四个数据节点的NDB集群ndbd公司,分为两个节点组,每个节点两个;节点1和2属于节点组0,节点3和4属于节点组1。

注意

这里只显示数据节点;尽管正常工作的NDB集群需要国家开发银行集群管理的进程和至少一个SQL节点来访问集群存储的数据,为了清晰起见,图中省略了这些。

图23.2具有两个节点组的NDB集群

内容在周围的文本中描述。

集群存储的数据分为四个分区,编号为0、1、2和3。每个分区存储在同一节点组上的多个副本中。分区存储在备用节点组上,如下所示:

  • 分区0存储在节点组0上;A.主碎片副本(主副本)存储在节点1上备份片段副本(分区的备份副本)存储在节点2上。

  • 分区1存储在另一个节点组(节点组1)上;此分区的主片段副本位于节点3上,而其备份片段副本位于节点4上。

  • 分区2存储在节点组0上。但是,其两个片段副本的放置方式与分区0相反;对于分区2,主片段副本存储在节点2上,备份存储在节点1上。

  • 分区3存储在节点组1上,其两个片段副本的位置与分区1的位置相反,即其主片段副本位于节点4上,备份位于节点3上。

这对于NDB集群的持续运行意味着:只要参与集群的每个节点组至少有一个节点在运行,集群就拥有所有数据的完整副本并且仍然是可行的。这在下一个图表中进行了说明。

图23.3 2x2 NDB集群所需的节点

内容在周围的文本中描述。

在本例中,集群由两个节点组组成,每个节点组由两个数据节点组成。每个数据节点都运行一个ndbd公司. 来自节点组0的至少一个节点和来自节点组1的至少一个节点的任何组合都足以保持集群活着的. 但是,如果来自单个节点组的两个节点都失败,则由另一个节点组中剩余的两个节点组成的组合是不够的。在这种情况下,集群丢失了一个完整的分区,因此无法再提供对所有NDB集群数据的完整集的访问。

单个NDB群集实例支持的最大节点组数为48。