重要更改:ndb_restore对
NDBT
仅用于内部测试的库 的依赖性NDBT_ProgramExit: ...
这意味着程序在终止时不再打印依赖此行为的应用程序应在升级到此版本时进行更新以反映此更改。-
当在
DBSPJ
块中执行的推送连接必须在查询执行期间存储相关 ID 时,会在整个查询执行的生命周期内为这些分配内存,即使仅在生成结果集中的最新批次时才需要这些特定的相关 ID . 后续批次需要存储和分配额外的相关 ID;因此,如果查询花费了足够长的时间才能完成,则会导致查询内存耗尽(错误 20008)。现在在这种情况下,内存仅在当前结果批次的生命周期内分配,并在批次完成后释放并可供重新使用。(缺陷号 29336777)参考资料:另请参阅:Bug #26995027。
-
在某些情况下,一个(有时是多个)数据节点在运行ndb_restore时经历了计划外关闭。这种情况最常发生,但并不总是发生在恢复到具有与原始备份所在的集群不同数量的数据节点的集群时。
此问题的根本原因是
SafeCounter
对象 池耗尽,DBDICT
内核块将其用作执行模式事务的一部分,并取自与用于NDB
事件设置和订阅处理的协议共享的每个块实例池。事件设置和订阅处理的并发使得SafeCounter
池可以被耗尽;事件和订阅处理可以处理池耗尽,但模式事务处理不能,这可能导致节点在恢复期间关闭。DBDICT
通过为模式事务提供一个隔离的保留池 来解决此问题,该池SafeCounters
不会被并发NDB
事件活动耗尽。(漏洞 #28595915) -
当使用一个或多个登台表时, ndb_restore未正确恢复自动增量值。作为此修复的一部分,我们还在这种情况下阻止应用
SYSTAB_0
备份日志,其内容继续直接根据表 ID 应用,这可能会覆盖存储在SYSTAB_0
不相关表中的自动增量值。(错误#27917769,错误#27831990)参考资料:另请参阅:Bug #27832033。
-
ndb_restore采用了一种恢复非原子自动增量值的机制,因此当并行使用多个ndb_restore实例时,可能会产生不正确的自动增量值。(漏洞 #27832033)
参考资料:另请参阅:Bug #27917769、Bug #27831990。
在调试模式下执行重做日志时,数据节点可能会在取消分配行时失败。(缺陷 #93273,缺陷 #28955797)
-
一个表在另一个表
NDB
上同时使用外键和一个或多个 或 列泄漏内存。NDB
ON DELETE CASCADE
TEXT
BLOB
作为此修复的一部分, 当子表包含使用任何或类型的列时,表
ON DELETE CASCADE
上的外键不再受支持。(漏洞 #89511,漏洞 #27484882)NDB
BLOB
TEXT