-
重要更改: MySQL NDB Cluster 7.3.11 和 MySQL NDB Cluster 7.4.8 中的修复导致ndb_restore执行唯一键检查,即使在不恢复数据的模式下运行时,例如使用程序的
--restore-epoch
or--print-data
选项时。这种行为上的改变导致现有的有效备份例程失败;为避免此问题影响此版本和未来版本,已恢复之前的修复。这意味着在那些版本中添加的运行 ndb_restore
--disable-indexes
或--rebuild-indexes
在包含唯一索引的表上使用时的要求也被取消了。(缺陷号 22345748)参考资料:另请参阅:Bug #22329365。恢复补丁:Bug #57782,Bug #11764893。
重要说明: 如果
NDB
在其中一个数据节点停止时删除了具有外键的表,则该数据节点稍后在尝试重新启动时会失败。(漏洞 #18554390)-
NDB Cluster API: 二进制日志注入器无法正确
TE_INCONSISTENT
处理Ndb::nextEvent()
. (漏洞 #22135541)参考资料:另请参阅:Bug #20646496。
-
NDB Cluster API:
Ndb::pollEvents()
并且pollEvents2()
接收事件的速度很慢,依赖于其他客户端线程或块来代表它们执行传输器的轮询。此修复程序允许客户端线程在必须等待这些方法之一时执行其自己的传输器轮询。传输器轮询的引入还揭示了
ndbcluster_binlog
处理程序中缺少互斥锁保护的问题,该问题已作为此修复的一部分添加。(错误#79311、错误#20957068、错误#22224571) 在调试版本中,
WAIT_EVENT
while 轮询导致过多的日志记录到标准输出。(漏洞 #22203672)-
当
CREATE TABLE
在具有多个 SQL 节点的 MySQL NDB Cluster 上执行模式操作时,执行操作的 SQL 节点可能会在等待其他节点的确认时超时。当不同的 SQL 节点对 、 或其他影响二进制日志记录的 mysqld 选项有不同的设置时,可能--ndb-log-updated-only
会--ndb-log-update-as-write
发生这种情况NDB
。发生这种情况是因为,为了在它们之间分发模式更改,所有 SQL 节点都订阅系统表中的更改,并且所有 SQL 节点都通过订阅和 事件
ndb_schema
了解彼此的订阅。要订阅的事件的名称是根据表名构造的,添加 或作为前缀。TE_SUBSCRIBE
TE_UNSUBSCRIBE
REPL$
REPLF$
REPLF$
当为表指定完整的二进制日志记录时使用。前面描述的问题的出现是因为提到的选项的不同值可能导致不同的 SQL 节点订阅不同的事件,这意味着所有 SQL 节点不一定相互了解,因此处理等待模式分发完成的代码没有按设计工作。为了解决这个问题,MySQL NDB Cluster 现在将该
ndb_schema
表视为一种特殊情况,并始终对该表强制执行完整的二进制日志记录,而与mysqld二进制日志记录选项的任何设置无关。(错误#22174287,错误#79188) 创建具有最大支持列数 (512) 的表全部使用
COLUMN_FORMAT DYNAMIC
会导致数据节点故障。(缺陷号 21863798)使用ndb_mgm
STOP -f
强制关闭节点,即使它触发了集群的完全关闭,当关闭足够数量的节点时,也可能会丢失数据,触发集群关闭,并且时间安排是这样SUMA
的节点已经在关闭过程中。(漏洞#17772138)内部
NdbEventBuffer::set_total_buckets()
方法错误地计算了剩余桶数。SUB_START_CONF
当信号无序到达时,这会导致任何不完整的纪元过早完成 。属于这个时期的任何事件后来都被忽略了,因此实际上丢失了,这导致模式更改没有在 SQL 节点之间正确分布。(错误#79635,错误#22363510)在 SUSE Linux Enterprise Server 12 上编译 MySQL NDB Cluster 失败。(Bug #79429,Bug #22292329)
-
相对于非模式事件,模式事件被乱序附加到二进制日志。这是因为二进制日志注入器没有正确处理模式事件和非模式事件来自不同时期的情况。
此修复修改了对来自两个模式和非模式事件流的事件的处理,这样事件现在总是一次处理一个时期,从最早可用时期的事件开始,而不考虑它们发生在哪个事件流中。(错误#79077、错误#22135584、错误#20456664)
NDB
由于当前本地检查点的状态已设置但未处于活动状态,因此在节点重新启动期间失败,即使在这种情况下它可能具有其他状态。(错误#78780,错误#21973758)参数设置的值
spintime
计算ThreadConfig
不正确,导致旋转持续时间比实际指定的时间长。(错误#78525,错误#21886476)