Documentation Home
MySQL NDB Cluster 7.6 发行说明  /  MySQL NDB Cluster 7.6.15 (5.7.31-ndb-7.6.15) 的变化(2020-07-14,全面上市)

MySQL NDB Cluster 7.6.15 (5.7.31-ndb-7.6.15) 的变化(2020-07-14,全面上市)

MySQL NDB Cluster 7.6.15 是 NDB 7.6 的新版本,它基于 MySQL Server 5.7,包括 NDB存储引擎 7.6 版中的功能,并修复了最近在之前的 NDB Cluster 版本中发现的错误。

获取 NDB Cluster 7.6。  NDB Cluster 7.6 源代码和二进制文件可以从 https://mysql.net.cn/downloads/cluster/获得。

有关 NDB Cluster 7.6 中所做更改的概述,请参阅 NDB Cluster 7.6 中的新增功能

此版本还合并了以前 NDB Cluster 版本中所做的所有错误修复和更改,以及通过 MySQL 5.7.31 在主线 MySQL 5.7 中添加的所有错误修复和功能更改(请参阅MySQL 5.7.31 中的更改(2020-07- 13,普遍适用)。

修正错误

  • NDB 磁盘数据: ndbmtd有时在还原操作期间无法完成对日志文件组的查找时意外终止。(缺陷号 31284086)

  • NDB 磁盘数据: 未初始化的变量导致在集群重启后执行磁盘数据 DDL 操作时出现问题。(缺陷号 30592528)

  • ndb_restore --remap-column没有NULL正确处理包含值的列。现在,与此选项一起使用的映射函数指定的任何偏移量都不会应用于NULL,因此NULL会按预期保留。(缺陷号 31966676)

  • MaxDiskWriteSpeedOwnRestart 在节点重启期间不被视为本地检查点写入的上限。(缺陷号 31337487)

    参考资料:另请参阅:Bug #29943227。

  • 在节点重启期间 SUMA,正在启动的节点的块必须从已经运行的节点获取订阅(带有订阅者的事件)和订阅者(NdbEventOperation​​正在执行的实例)的副本。在复制完成之前,仍在启动的节点将忽略任何用户级别SUB_STARTSUB_STOP请求;复制完成后,他们可以参与此类请求。当复制操作正在进行时,用户级别SUB_STARTSUB_STOP请求被 DICT锁阻塞。

    发现一个问题,即在请求锁定之后但在授予之前, 起始节点可以参与 SUB_START和请求,从而导致不成功和 请求。此修复可确保节点在 实际授予锁定之前无法参与这些请求。(缺陷号 31302657)SUB_STOPSUB_STARTSUB_STOPDICT

  • DUMP 1001 ( DumpPageMemoryOnFail) 现在会在由于资源限制导致页面分配失败时打印出有关数据节点页面内存管理器内部状态的信息。(缺陷号 31231286)

  • 用于跟踪分配的内部对象和决定何时释放它们而生成的统计数据NDB计算不正确,导致资源使用阈值比预期高 50%。此修复程序纠正了该问题,并且应该可以减少内存使用量。(缺陷号 31127237)

  • NDB Cluster 中包含并由自动安装程序使用的 Dojo 工具包已升级到版本 1.15.3。(缺陷号 31029110)

  • ndb_mgmd 返回的打包版本 1 配置文件 在升级到 NDB 8.0 后可能包含重复的条目,这使得该文件与使用版本 1 的客户端不兼容。发生这种情况是因为处理向后兼容性的代码假定每个条目中的条目部分在与默认部分合并时已经排序。为了解决这个问题,我们现在确保在合并之前执行这种排序。(缺陷号 31020183)

  • 在执行任何 SHUTDOWNALL STOPALL RESTART管理命令时,不同的节点可能会尝试在不同的全局检查点索引 (CGI) 边​​界上停止。如果他们成功这样做,那么随后的系统重启会比正常情况下慢,因为任何具有较早停止 GCI 的节点都必须作为该过程的一部分进行接管。当节点在第一个 GCI 边界上失败导致幸存节点不可行时,幸存节点遭受仲裁失败;这具有导致此类节点在正确的 GCI 停止的积极效果,但可能会引起虚假错误或类似错误。

    为避免此类问题,现在在计划关闭期间执行额外的同步,以减少不同数据节点尝试在不同 GCI 关闭的可能性,以及在系统重启期间使用不必要的节点接管。(缺陷号 31008713)

  • 当响应一个SCANTABREQ时,如果 API 节点知道扫描应该只在一个片段上工作,它可以提供一个分布键,在这种情况下,分布键应该是片段 ID,但在某些情况下,使用分区键的散列相反,导致 DBTC. (缺陷号 30774226)

  • 在ndb_import中 发现的几个内存泄漏已被删除。(错误#30756434,错误#30727956)

  • DEFINE_BACKUP_REQ 备份中的主节点在收到对信号 的重复回复时意外关闭。这些发生在主节点以外的数据节点在备份期间出错时,备份主 DEFINE_BACKUP_REF节点通过代表丢失的节点向自己发送信号来处理这种情况,这导致从同一节点接收到两个回复(CONF来自关闭之前的问题节点和REF 代表该节点的主节点发出的信号),即使主节点只希望每个节点有一个回复。START_BACKUP_REQSTOP_BACKUP_REQ信号 也遇到过这种情况。

    在这种情况下,当错误是计划外节点关闭的结果时,通过允许重复回复来解决这个问题。(缺陷号 30589827)

  • 使用 更新NDB_TABLE注释选项 ALTER TABLE时,在创建表时已设置为非默认值但未在ALTER TABLE语句中指定的其他选项可以重置为其默认值。

    有关详细信息,请参阅设置 NDB 注释选项。(缺陷号 30428829)

  • GCP_SAVEREQ当在重启期间,数据节点在开始阶段 9 之前 收到 信号,因此需要执行全局检查点索引写入本地数据管理器的本地检查点控制文件,它没有记录来自DIH块的信息发送信号作为写入数据的一部分的节点。这意味着,稍后在启动阶段 9 中,当尝试发送 GCP_SAVECONF信号以响应 时 GCP_SAVEREQ,此信息不可用,这意味着无法发送响应,从而导致数据节点意外关闭。(缺陷号 30187949)

  • 设置 EnableRedoControlfalse没有完全禁用 MaxDiskWriteSpeedMaxDiskWriteSpeedOtherNodeRestartMaxDiskWriteSpeedOwnRestart 预期的那样。(漏洞#29943227)

    参考资料:另请参阅:Bug #31337487。

  • 删除了在ndb_import 实用程序 中发现的内存泄漏。(缺陷号 29820879)

  • 一个BLOB值存储 NDB在多个部分中;读取这样的值时,每个部分执行一次读取操作。如果未找到某个部分,则读取失败并显示行未找到错误,这表示已损坏 BLOB,因为 aBLOB不应有任何丢失的部分。可能会出现问题,因为此错误被报告为读取操作的总体结果,这意味着 mysqld 没有看到错误并报告返回了零行。

    通过添加专门针对未找到 blob 部分的情况的检查来解决此问题。现在,当发生这种情况时,用损坏的 blob覆盖行未找到错误 ,这会导致原始语句按预期失败。NDB API 的用户应该知道,尽管有此更改,该 方法仍会继续报告错误,因为在这种情况下找不到行。(缺陷号 28590428)SELECTNdbBlob::getValue()

  • 当使用具有非二进制(区分大小写)相等条件的主键时,节点重新启动期间对片段副本的操作处理不当可能导致强制关闭,或片段副本之间的内容分歧。(缺陷 #98526,缺陷 #30884622)