Documentation Home
MySQL NDB Cluster 7.4 发行说明  / 发布系列变更日志:MySQL NDB Cluster 7.4  /  MySQL NDB Cluster 7.3.16 (5.6.35-ndb-7.3.16) 的变化(2017-01-17,全面上市)

MySQL NDB Cluster 7.3.16 (5.6.35-ndb-7.3.16) 的变化(2017-01-17,全面上市)

修正错误

  • ndb_restore没有正确恢复超过 341 列的表。这是因为用于保存从 .ctl文件中读取的表元数据的缓冲区大小不足,因此在这种情况下只能从中读取部分表描述符。此问题已通过增加ndb_restore用于文件读取的缓冲区大小来解决。(缺陷号 25182956)

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

  • 该函数用于生成唯一的表 ID 和表版本,以识别分布在多个 SQL 节点之间的模式操作,依赖于永远不会在两个不同的 mysqld 实例上生成相同数字rand()的假设。rand()后来确定情况并非如此,实际上很可能在所有 SQL 节点上产生相同的随机数。

    此修复删除了rand()用于生成唯一表 ID 或版本的用法,而是将序列与协调器的节点 ID 结合使用。这保证了序列计数器回绕之前的唯一性,这对于此目的应该足够了。

    当同时或几乎同时重新启动多个 mysqld进程时,或者在多个 SQL 节点上发出相同的or语句时, 可以在日志中观察到这种重复的影响(例如NDB create db: waiting max 119 sec for distribution )。(漏洞 #24926009)CREATE DATABASEDROP DATABASE

  • 触发即时触发器时,长消息缓冲区耗尽可能会导致行 ID 泄漏;这可能会在以后导致持久的RowId already allocated错误(NDB错误 899)。(漏洞 #23723110)

    参考资料:另请参阅:Bug #19506859、Bug #13927679。

  • 当更新外键关系中的父NDB表时,更新会按预期级联到子表,但更改不会级联到该子表的子表(即原始父表的孙表)。这可以使用由以下CREATE TABLE语句生成的表来说明:

    CREATE TABLE parent(
      id INT PRIMARY KEY AUTO_INCREMENT,
      col1 INT UNIQUE,
      col2 INT
    ) ENGINE NDB;
    
    CREATE TABLE child(
      ref1 INT UNIQUE,
      FOREIGN KEY fk1(ref1)
        REFERENCES parent(col1) ON UPDATE CASCADE
    ) ENGINE NDB;
    
    CREATE TABLE grandchild(
      ref2 INT,
      FOREIGN KEY fk2(ref2)
        REFERENCES child(ref1) ON UPDATE CASCADE
    ) ENGINE NDB;

    child是表的孩子 parent;tablegrandchild 是 table 的子项child,是 的孙项parent。在这种情况下,对列col1的更改parent 级联到ref1表中 child,但它并不总是依次传播到ref2表中 grandchild。(缺陷 #83743,缺陷 #25063506)