-
当原始数据集都使用相同的模式时,现在可以将来自 NDB Cluster 的不同实例的数据合并到单个目标 NDB Cluster 中。当使用
START BACKUP
在ndb_mgm中创建的备份并使用ndb_restore恢复它们时,使用--remap-column
此版本中实现的选项(以及--restore-data
可能的其他选项),支持此功能。--remap-column
可用于处理源集群之间主要键值、唯一键值或两种键值重叠的情况,您需要确保它们在目标集群中不重叠。也可以这样做以保留表之间的其他关系。与 一起使用时
--restore-data
,新选项将函数应用于指定列的值。为此选项设置的值是格式的字符串 ,其组件列于此处:db
.tbl
.col
:fn
:args
您可以
--remap-column
用于更新同一张表的多列和不同表的不同列,以及多个表和列的组合。同一张表的不同列可以采用不同的偏移值。作为这项工作的一部分,此版本中还向 ndb_desc添加了两个新选项:
--auto-inc
(缩写形式-a
):如果表有AUTO_INCREMENT
列,则在输出中包含下一个自动增量值。--context
(缩写形式-x
):提供有关表的额外信息,包括架构、数据库名称、表名称和内部 ID。
这些选项可能有助于
NDB
在计划合并时获取有关表的信息,特别是在mysql 客户端可能不容易使用的情况下。有关详细信息,请参阅
--remap-column
、--auto-inc
和 的说明--context
。(缺陷号 30383950) -
ndb_restore现在使用此版本中引入的选项
NDB
机备份 还原时支持源表和目标表的不同主键定义--allow-pk-changes
支持增加和减少构成原始主键的列数。当需要在恢复数据时适应模式版本更改时,或者这样做比ALTER TABLE
在恢复操作后对大量表执行涉及主键更改的语句更有效或更省时时,这可能很有用。当使用附加列扩展主键时,添加的任何列都不能为空,并且在进行备份时存储在任何此类列中的任何值都不得更改。在尝试将任何此类列添加到表的主键时更改任何此类列的值会导致恢复操作失败。由于某些应用程序在更新行时会设置所有列的值,即使一个或多个列的值没有更改,也可以使用
--ignore-extended-pk-updates
此版本中添加的选项来覆盖此行为. 如果您这样做,必须小心以确保这些列值实际上不会更改。从表的主键中删除列时,从主键中删除的列之后不必保留在表中。
有关详细信息,请参阅 ndb_restore
--allow-pk-changes
文档中的选项说明。(错误#26435136、错误#30383947、错误#30634010) -
添加了 mysqld
--ndb-log-fail-terminate
的选项。使用时,这会导致 SQL 节点在无法记录所有行事件时终止。(漏洞 #21911930)参考资料:另请参阅:Bug #30383919。
还原带符号的自动增量列时, ndb_restore在确定数据中包含的最大值时错误地处理了负值。(缺陷号 30928710)
当节点 ID 分配请求因 NotMaster临时错误而失败时,总是立即重试节点 ID 分配,而不考虑错误原因。这导致了非常高的重试率,其影响可以观察到 节点 失败日志消息的Alloc 节点 ID
nnn
数量过多(大约每秒 15,000 条消息)。(缺陷号 30293495)对于
NDB
没有显式主键的表,NdbReceiverBuffer
可以分配太小的大小。这是因为NDB
从数据节点发送的属性位图总是包含主键。在这种情况下,现在考虑了隐藏主键所需的额外空间。(缺陷号 30183466)