Documentation Home
MySQL NDB Cluster 7.3 发行说明  /  MySQL NDB Cluster 7.3.11 (5.6.27-ndb-7.3.11) 的变化(2015-10-19,全面上市)

MySQL NDB Cluster 7.3.11 (5.6.27-ndb-7.3.11) 的变化(2015-10-19,全面上市)

MySQL NDB Cluster 7.3.11 是 NDB Cluster 的新版本,基于 MySQL Server 5.6,包括 NDB存储引擎 7.3 版的功能,并修复了之前 NDB Cluster 版本中最近发现的一些错误。

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

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

此版本还合并了以前 NDB Cluster 版本中所做的所有错误修复和更改,以及通过 MySQL 5.6.27 在主线 MySQL 5.6 中添加的所有错误修复和功能更改(请参阅MySQL 5.6.27 中的更改(2015-09- 30,一般可用性))。

添加或更改的功能

  • 重要变更;NDB 复制: 添加了create_old_temporals 服务器系统变量以补充系统变量 avoid_temporal_upgrade,并 show_old_temporals在 MySQL 5.6.24 中引入,并在从 NDB 7.3.9 和 NDB 7.4.6 开始的 MySQL NDB Cluster 中可用。启用 create_old_temporals会导致 mysqldDATE在创建任何, DATETIME或 时使用 MySQL 5.6.4 之前采用的存储格式 TIMESTAMP——也就是说,创建列时不支持小数秒。create_old_temporals默认情况下禁用。系统变量是只读的;要启用 5.6.4 之前的时间类型,请设置等效选项 (--create-old-temporals) 在命令行上,或在 MySQL 服务器读取的选项文件中。

    create_old_temporals仅在 MySQL NDB Cluster 中可用;标准 MySQL 5.6 服务器不支持它。它旨在促进从 MySQL NDB Cluster 7.2 升级到 MySQL NDB Cluster 7.3 和 7.4,之后受影响类型的表列可以升级到新的存储格式。create_old_temporals已弃用并计划在未来的 MySQL NDB Cluster 版本中删除。

    avoid_temporal_upgrade还必须启用此功能才能正常工作。您也应该启用show_old_temporals 。有关详细信息,请参阅这些变量的说明。有关 MySQL 时间类型变化的更多信息,请参阅日期和时间类型存储要求。(漏洞 #20701918)

    参考资料:另请参阅:Bug #21492598、Bug #72997、Bug #18985760。

修正错误

  • 重要更改:ndb_restore在没有唯一索引的情况下运行 --disable-indexes--rebuild-indexes在具有唯一索引的表上运行时,可能会以导致重复值的顺序恢复行,从而导致它因重复键错误而失败。在这样的表上运行 ndb_restore现在需要至少使用这些选项之一;现在不这样做会导致错误。(错误#57782,错误#11764893)

    参考资料:另请参阅:Bug #22329365、Bug #22345748。

  • NDB Cluster API: 在执行时 dropEvent(),如果协调DBDICT器在订阅管理器(SUMA块)删除所有订阅之后但在协调器从系统表中删除事件之前失败,则删除的事件保留在表中,导致任何后续删除或创建事件同名失败并NDB出现错误 1419 订阅已删除或错误 746 事件名称已存在。即使在 dropEvent()使用非零力参数调用时也会发生这种情况。

    现在在这种情况下,错误 1419 将被忽略,并 DBDICT从表中删除该事件。(缺陷号 21554676)

  • NDB Cluster API: 当事件缓冲区的完整纪元插入事件队列时,表示最新全局检查点的内部值并不总是更新。当尝试为事件缓冲区中可用的事件获取正确的 GCI 时,Ndb::pollEvents()和 后续调用 pollEvents2()这也可能导致稍后调用 nextEvent()nextEvent2()查看尚未发现的事件。(错误#78129,错误#21651536)

  • 备份期间备份块状态报告不正确。(缺陷号 21360188)

    参考资料:另请参阅:Bug #20204854、Bug #21372136。

  • 当已知数据节点在给定的全局检查点被集群中的其他节点激活,但它 sysfile报告较低的 GCI 时,较高的 GCI 用于确定数据节点可以重新创建哪个全局检查点。当正在启动的数据节点有一个干净的文件系统(GCI = 0),或者当它在其他节点后面有多个全局检查点时,这会导致问题。

    现在在这种情况下,只有当它最多领先一个 GCI 时,才会使用其他节点已知的更高 GCI。(漏洞#19633824)

    参考资料:另请参阅:Bug #20334650、Bug #21899993。此问题是 Bug #29167 的回归。

  • --include-databases当使用or --exclude-databases选项 恢复一个或多个特定数据库时 , ndb_restore尝试将外键应用于数据库中的表,这些表不在被恢复的数据库中。(漏洞 #18560951)

  • 使用ndb_restore 从备份恢复数据库模式后 ,在具有多个语句的事务中自动发现恢复的表无法正常工作,导致在尝试获取锁时发现死锁;尝试重新启动事务错误。

    mysql 客户端中以及当此类事务由使用 Connector/J 和可能的其他 MySQL API 的应用程序执行时都会遇到此问题。

    在升级之前,可以通过 SELECT TABLE_NAME, TABLE_SCHEMA FROM INFORMATION_SCHEMA.TABLES WHERE ENGINE = 'NDBCLUSTER' 在执行任何其他语句之前在还原操作之后的所有 SQL 节点上执行来解决此问题。(漏洞 #18075170)

  • 针对 包含一个或 --extra-partition-info多个 . 列。(漏洞 #14695968)--blob-infoTINYBLOB

  • 当复合外键中的列之一是表的主键时,尝试NDB使用引用父表的复合主键的复合外键创建表失败,此外,该列也有一个唯一键。(错误#78150,错误#21664899)

  • 当尝试启用索引统计时,当多个使用索引统计的mysqld进程与启动、重新启动或停止集群或节点故障处理同时启动时,创建所需的系统表、事件和事件订阅通常会失败。这通常是可恢复的,因为受影响的mysqld进程可以(并且确实)在不久之后重试这些操作。因此,此类故障不再记录为警告,而仅记录为信息性事件。(错误#77760,错误#21462846)

  • NDB当表已有外键时,向表 添加唯一键失败。在升级之前,您可以通过先创建唯一键,然后使用单独的 ALTER TABLE语句添加外键来解决此问题。(错误#77457,错误#20309828)