21.1.4.1 NDB Cluster 7.5 的新增功能

下 table 列出了 NDB Cluster 7.5 中可能引起关注的主要更改和新功能:

config_paramstable 已变为只读状态,并已增加了附加列,以提供有关每个配置参数的信息,包括参数的类型,默认值,最大值和最小值(如果适用),参数的简要说明以及是否该参数是必需的。该 table 还为每个参数提供唯一的param_number

config_valuestable 中的一行显示了具有指定 ID 的节点上给定参数的当前值。该参数由config_param列的值标识,该值 Map 到config_paramstable 的param_number

使用此关系,您可以在这两个 table 上编写联接,以按名称获取一个或多个 NDB 群集配置参数的默认值,最大值,最小值和当前值。下面显示了使用这种联接的示例 SQL 语句:

SELECT  p.param_name AS Name,
        v.node_id AS Node,
        p.param_type AS Type,
        p.param_default AS 'Default',
        p.param_min AS Minimum,
        p.param_max AS Maximum,
        CASE p.param_mandatory WHEN 1 THEN 'Y' ELSE 'N' END AS 'Required',
        v.config_value AS Current
FROM    config_params p
JOIN    config_values v
ON      p.param_number = v.config_param
WHERE   p. param_name IN ('NodeId', 'HostName','DataMemory', 'IndexMemory');

有关这些更改的更多信息,请参见第 21.5.14.8 节“ ndbinfo config_paramstable”。有关更多信息和示例,请参见第 21.5.14.9 节“ ndbinfo config_valuestable”

此外,ndbinfo数据库不再取决于MyISAM存储引擎。现在,所有ndbinfotable 和视图都使用NDB(显示为NDBINFO)。

NDB 7.5.4 中引入了几个新的ndbinfotable。这些 table 在此处列出,并带有简要说明:

有关更多信息,请参见各个 table 的描述。

现有 table 列使用的行格式和列格式不受此更改的影响。如果执行此操作的ALTER TABLE语句指定ALGORITHM=COPY,则添加到此类 table 的新列将使用这些新的默认值(可能被ndb_default_column_format覆盖),并且现有列也将更改为使用这些默认值。

Note

如果mysqld--ndb-allow-copying-alter-table=FALSE一起运行,则不能隐式完成ALTER TABLE的复制。

此更改的好处在于,它可以依赖于此 table 的事务行为和无锁读取,这可以帮助减轻清除操作和日志轮换期间的并发问题,并提高此 table 的可用性。

另一个影响此语句使用的更改是,ALTER TABLE ... ALGORITHM=INPLACE RENAME现在除了重命名之外还可能包含 DDL 操作。

Note

您可以使用mysqld--ndb-cluster-connection-pool选项设置连接池的大小。

ndb_mgm> PROMPT mgm#1:
mgm#1: SHOW
Cluster Configuration
---------------------
[ndbd(NDB)]     4 node(s)
id=5    @10.100.1.1  (mysql-5.7.31-ndb-7.5.20, Nodegroup: 0, *)
id=6    @10.100.1.3  (mysql-5.7.31-ndb-7.5.20, Nodegroup: 0)
id=7    @10.100.1.9  (mysql-5.7.31-ndb-7.5.20, Nodegroup: 1)
id=8    @10.100.1.11  (mysql-5.7.31-ndb-7.5.20, Nodegroup: 1)

[ndb_mgmd(MGM)] 1 node(s)
id=50   @10.100.1.8  (mysql-5.7.31-ndb-7.5.20)

[mysqld(API)]   2 node(s)
id=100  @10.100.1.8  (5.7.31-ndb-7.5.20)
id=101  @10.100.1.10  (5.7.31-ndb-7.5.20)

mgm#1: PROMPT
ndb_mgm> EXIT
jon@valhaj:/usr/local/mysql/bin>

有关其他信息和示例,请参见第 21.5.1 节“ NDB 群集 ManagementClient 端中的命令”

在 NDB 7.5.0 中也删除了过时的和未使用的(并且因此以前也没有记录过的)ByteOrder计算机配置参数。

NDB 7.5 不支持刚刚描述的参数。现在,尝试在 NDB 群集配置文件中使用这些参数中的任何一个都会导致错误。

同样,由于这些更改,响应时间应大大缩短,这可以帮助防止主线程过载的问题。此外,与以前的发行版相比,在BACKUP内核块中进行的扫描也得到了改进,并且效率更高。

以前,可以只用一种类型的分区 Map 定义 table,而在每个节点中的每个 LDM 上都有一个主分区,但是在 NDB 7.5.2 中,可以通过设置分区平衡来更灵活地分配分区(片段计数类型)。可能的平衡方案是每个节点一个,每个节点组一个,每个节点一个 LDM 一个,每个节点组每个 LDM 一个。

可以通过嵌入在CREATE TABLEALTER TABLE语句的NDB_TABLEComments 中的PARTITION_BALANCE选项(在 NDB 7.5.4 中从FRAGMENT_COUNT_TYPE重命名)来控制单个 table 的此设置。使用此语法也支持 table 级READ_BACKUP的设置。有关更多信息和示例,请参见第 13.1.18.9 节“设置 NDB_TABLE 选项”

在 NDB API 应用程序中,还可以使用为此目的提供的方法来获取和设置 table 的分区余额。有关这些的更多信息,请参见Table::getPartitionBalance()Table::setPartitionBalance()以及Object::PartitionBalance

作为这项工作的一部分,NDB 7.5.2 还引入了ndb_data_node_neighbour系统变量。它旨在用于事务提示中,以便为此 SQL 节点提供“附近”数据节点。

此外,还原 table 架构时,ndb_restore --restore-meta现在使用目标群集的默认分区,而不是使用与进行备份的原始群集相同数量的分区。有关更多信息和示例,请参见第 21.4.24.1.2 节,“还原到比原始节点更多的节点”

NDB 7.5.3 对READ_BACKUP进行了进一步增强:在此版本和更高版本中,可以在线将给定 table 的READ_BACKUP设置为ALTER TABLE ...算法= INPLACE ...的一部分。

现在,使用cpubindcpuset在 FreeBSD 和 Windows 上支持非独占的 CPU 锁定。现在,Solaris(仅)使用此发行版中引入的cpubind_exclusivecpuset_exclusive参数支持独占 CPU 锁定。

线程优先级现已可用,由新的thread_prio参数控制。 thread_prio在 Linux,FreeBSD,Windows 和 Solaris 上受支持,并且因平台而异。有关更多信息,请参见ThreadConfig的描述。

Windows 平台现在支持realtime参数。

有关更多信息,请参见第 21.4.24 节“ ndb_restore-还原 NDB 群集备份”

有关 NDB 群集 RPM 的详细列 table 和其他信息,请参见第 21.2.3.2 节,“从 RPM 安装 NDB 群集”

系统会自动生成基于 Management 服务器启动时间的系统名称;您可以通过在群集的配置文件中添加[system]部分并将Name参数设置为该部分中您选择的值(在启动 Management 服务器之前)来覆盖此值。

有关更多信息,请参见第 21.4.6 节“ ndb_blob_tool —检查和修复 NDB 群集 table 的 BLOB 和 TEXT 列”

从 NDB 7.5.7 开始不再支持 ClusterJPA。其源代码和二进制文件已从 NDB 群集发行版中删除。

MySQL Cluster Manager 还支持 NDB Cluster 7.5,它提供了高级命令行界面,可以简化许多复杂的 NDB ClusterManagement 任务。有关更多信息,请参见MySQL™Cluster Manager 1.4.8 用户手册

首页