-
重要更改: 当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-info
TINYBLOB
当复合外键中的列之一是表的主键时,尝试
NDB
使用引用父表的复合主键的复合外键创建表失败,此外,该列也有一个唯一键。(错误#78150,错误#21664899)当尝试启用索引统计时,当多个使用索引统计的mysqld进程与启动、重新启动或停止集群或节点故障处理同时启动时,创建所需的系统表、事件和事件订阅通常会失败。这通常是可恢复的,因为受影响的mysqld进程可以(并且确实)在不久之后重试这些操作。因此,此类故障不再记录为警告,而仅记录为信息性事件。(错误#77760,错误#21462846)
NDB
当表已有外键时,向表 添加唯一键失败。在升级之前,您可以通过先创建唯一键,然后使用单独的ALTER TABLE
语句添加外键来解决此问题。(错误#77457,错误#20309828)