MySQL NDB Cluster 7.3.3是NDB Cluster的一个新版本,基于MySQL Server 5.6,包含了从版本7.3的特性NDB
存储引擎,并修复了一些最近发现的bug在以前的NDB集群版本。
获取MySQL NDB Cluster 7.3。MySQL NDB Cluster 7.3源代码和二进制文件可以从10bet博彩公司 .
有关MySQL NDB Cluster 7.3中所做更改的概述,请参见新db集群7.3有什么新进展.
该版本还包含了之前NDB集群版本中所做的所有bug修复和更改,以及从MySQL 5.6到MySQL 5.6.14主线中添加的所有bug修复和特性更改MySQL 5.6.14(2013-09-20,通用版本)).
方法可配置一个管理节点等待来自另一个管理节点的心跳消息的时间长度
HeartbeatIntervalMgmdMgmd
管理节点配置参数在此版本中新增。3次心跳缺失后,连接就被认为是断开的。默认值是1500毫秒,或者超时时间约为6000毫秒(Bug #17807768, Bug #16426805)。MySQL NDB集群自动安装程序现在生成一个
my.cnf
存档mysqld在启动集群之前。有关更多信息,请参见使用NDB集群自动安装程序.(错误# 16994782)团
而且文本
控件对列进行了重新组织修改在线表…重组分区
声明。(错误# 13714148)
性能:在MySQL NDB集群代码库的不同位置发现了许多情况,执行了不必要的迭代;这是由于未能在满足测试条件后跳出重复控制结构造成的。这个由社区提供的修复程序通过提供缺失的中断删除了不需要的重复。(Bug #16904243, Bug #69392, Bug #16904338, Bug #69394, Bug #16778417, Bug #69171, Bug #16778494, Bug #69172, Bug #16798410, Bug #69207, Bug #16801489, Bug #69215, Bug #16904266, Bug #69393)
包装:特定于MySQL NDB集群的部10bet官方网站分文档和
NDB
从rpm安装时不包括存储引擎。(错误# 16303451)微软的Windows操作系统:Windows错误ERROR_FILE_EXISTS没有被认可
NDB
,该系统将其视为未知错误。(错误# 16970960)NDB盘数据:
NDB
错误899RowId已经分配是因为RowId”泄漏”发生在以下情况之一:在有序索引更新因不足而失败后,拒绝将行插入内存表
DataMemory
.由于缺乏足够的表空间,拒绝向“磁盘数据”表插入行。
(错误# 13927679)
参考文献:参见Bug #22494024, Bug #13990924。
NDB复制:试着用一个不新鲜的
.frm
文件和表定义之间的不匹配可能导致mysqld写入二进制日志时出错。(错误# 17250994)NDB复制:重放一个二进制日志mysqld从MySQL Server发行版(和非MySQL NDB集群发行版),并且包含DML语句,在MySQL NDB集群SQL节点上可能导致SQL节点失败。(错误# 16742250)
NDB集群接口:的
事件::可设置的()
方法现在支持指针或对表的引用作为所需的参数。如果使用了空表指针,该方法现在返回-1,以表明发生了这种情况。(错误# 16329082)ndbmemcache:当试图启动memcached
cache_size
大于可用内存的容量preallocate = true
失败时,错误消息只提供了一个数字代码,而没有指出错误的实际来源。(Bug #17509293, Bug #70403)ndbmemcache:的
CMakeLists.txt
文件ndbmemcache
写入源代码树,防止源代码外构建。(错误# 14650456)ndbmemcache:
ndbmemcache
没有处理传入二进制
正确的价值观。试图恢复到一个表有
团
立柱的位置与原立柱的位置不同造成的ndb_restore——恢复数据
失败。(错误# 17395298)ndb_restore可以在使用属性提升或降级到现有表的恢复的最后阶段中止。如果转换后的属性为空,并且备份已在活动数据库上运行,则可能发生这种情况。(错误# 17275798)
无法在运行freeSSHd的Windows主机上启动由自动安装程序创建的MySQL NDB集群进程。(错误# 17269626)
的
DBUTIL
数据节点块现在对从其他节点接收某些消息的顺序不那么严格了。(错误# 17052422)修改在线表…重组分区
在对具有或使用外键引用的表运行时失败。(Bug #17036744, Bug #69619)TUPKEYREQ
信号用于从元组管理器块(DBTUP
),并用于所有类型的数据访问,特别是读取多行的扫描。TUPKEYREQ指定要读取的一系列“列”,这些“列”可以是特定表中的单列,也可以是伪列,其中两个是-READ_ALL
而且READ_PACKED
-是读取表中所有列或这些列的一些子集的别名。伪列被现代的NDB API应用程序使用,因为它们需要较少的空间TUPKEYREQ
指定要读取的列,并可以以更紧凑的(打包的)格式返回数据。此修正将栈上Signal对象的创建和初始化转移到那些需要的伪列读取
EXECUTE_DIRECT
到其他块实例,而不是每次读取。此外,堆栈上信号的大小现在是不同的,以适应每个伪列的要求,因此只有读取INDEX_STAT
pseudocolumn现在需要初始化(每次执行该操作时需要3KB内存)。(错误# 17009502)当试图将接收线程锁定到核心时,有时会出现竞态条件。(错误# 17009393)
的连接的结果
在哪里
与一个点单…DESC
子句排序不当;的DESC
关键字在这种情况下被有效地忽略了。(Bug #16999886, Bug #69528)RealTimeScheduler
数据节点运行时不能正常工作ndbmtd.(错误# 16961971)在本地检查点期间发生的文件系统错误有时会导致LCP在没有正确处理的情况下挂起而没有明显的原因。在这种情况下,这种错误总是会导致节点失败。注意,当本地检查点失败时,LQH块总是关闭节点;这里的更改是使可能发生的节点故障更快地发生,并使原始文件系统错误更可见。(错误# 16961443)
维护和检查母批完成情况
SPJ
的块NDB
重新实现了内核。在其他改进中,现在保存了树中所有祖先节点的完成状态。(错误# 16925513)控件中删除本身不是外键的列
NDB
具有外键的表失败ER_TABLE_DEF_CHANGED
.(错误# 16912989)LCP分片扫描看门狗会定期检查作为本地检查点的一部分执行的分片扫描是否没有进展,如果超过一定时间没有进展,则会关闭节点。该间隔以前硬编码为60秒,现在可以使用
LcpScanProgressTimeout
数据节点配置参数在此版本中添加。此配置参数设置本地检查点在LCP分片扫描看门狗关闭节点前的最长暂停时间。默认是60秒,这提供了与以前版本的向后兼容性。
该参数设置为0,表示关闭LCP分片扫描看门狗。(错误# 16630410)
添加了ndb_error_reporter选项
——连接超时
,这使得设置连接节点的超时成为可能,——dry-scp
,将禁用到远程主机的SCP连接——skip-nodegroup
,它跳过给定节点组中的所有节点。(错误# 16602002)参考文献:参见Bug #11752792, Bug #44082。
发行后
开始备份
,如果id
等待开始id
已用于备份ID,因此出现了由重复ID引起的错误,但随后,开始备份
命令从未完成。(Bug #16593604, Bug #68854)ndb_mgm处理备份id提供给
中止备份
命令为带符号值,使备份id大于231绕到负值。这个问题还会影响超出范围的备份id,在这种情况下,这些id会被替换为负值,而不会像预期的那样导致错误。备份ID现在被视为无符号值,并且ndb_mgm现在执行适当的范围检查备份ID值大于MAX_BACKUPS
(232).(Bug #16585497, Bug #68798)当试图指定大于允许的最大备份ID时,该值会被静默地截断。(Bug #16585455, Bug #68796)
当一个启动数据节点接收到它的节点ID时,另一个数据节点意外关闭,导致后者挂起在Start阶段1中。(错误# 16007980)
参考文献:参见Bug #18993037。
选择……在那里……就像
从一个NDB
表在使用时可能返回不正确的结果engine_condition_pushdown =对
.(Bug #15923467, Bug #67724)的
NDB
接收线程在接收数据时不必要地等待额外的作业缓冲区可用。这会导致接收互斥锁在等待期间被持有,当接收线程以实时优先级运行时,可能会导致繁忙的等待。此修复程序还处理接收线程对作业缓冲区的初始检查的返回值为负,从而阻止了数据接收的进一步执行,这可能导致通信阻塞或被配置
ReceiveBufferMemory
未充分利用。(错误# 15907515)当给定线程的可用作业缓冲区低于临界阈值时,内部多线程作业调度器将等待传入而不是传出信号的作业缓冲区变为可用,这意味着调度器将等待最大超时(1毫秒),然后恢复执行。(错误# 15907122)
设置
lower_case_table_names
到Windows系统上的1或2修改表…添加外键
语句针对名称包含大写字母的表失败,报错155,没有这样的表:'(null)'.(Bug #14826778, Bug #67354)在某些情况下,发生的比赛可能报告了错误的监督国家。新的州名
包装发送缓冲器
为看门狗州号11添加,以前报告为未知的地方
.作为此修复的一部分,在这种情况下,现在总是报告没有名称的州的州号。(错误# 14824490)当节点发生故障时,分布处理程序(
DBDIH
内核块)与事务协调器(DBTC
),以确保所有涉及失败节点的正在进行的事务都被存活的节点接管,并被提交或中止。随后被接管的事务属于节点故障发生时的当前epoch,因此存活的节点必须保持该epoch可用,直到事务接管完成。这是维持时代之间的顺序所必需的。在旨在保持当前历元打开的机制中遇到了一个问题,导致该机制与通常用于声明历元结束的机制之间出现了竞争条件。这可能导致当前纪元过早关闭,导致一个或多个幸存的数据节点失败。(Bug #14623333, Bug #16990394)
疲惫的
LongMessageBuffer
内存负载过大可能导致数据节点运行ndbmtd失败。(错误# 14488185)当使用动态监听端口接受来自API节点的连接时,端口号会串行地报告给管理服务器。这需要对每个API节点进行往返,导致数据节点连接到管理服务器所需的时间与API节点的数量成线性增长。为了纠正这个问题,现在每个数据节点都一次性报告所有动态端口。(错误# 12593774)
ndb_error-reporter不支持
——帮助
选择。(Bug #11756666, Bug #48606)参考文献:参见Bug #11752792, Bug #44082。
以前,节点用作节点间分布式决策的协调器或领导者(也称为
DICT
manager-seeDBDICT块的输出ndb_mgm客户端显示
命令作为”主”虽然该节点与MySQL复制中的主服务器没有关系。(还应该注意的是,除了调试时,没有必要知道哪个节点是leaderNDBCLUSTER
源代码)。为避免可能出现的混淆,该标签已被删除,并且先导节点现在在显示
使用星号(*
)字符。(Bug #11746263, Bug #24880)类的设置时用于线程配置的值矩阵
MaxNoOfExecutionThreads
配置参数已经过改进,以与对更多LDM线程数量的支持保持一致。看到多线程配置参数(ndbmtd),以了解更多有关更改的信息。(Bug #75220, Bug #20215689)在许多内部方法中,程序执行在满足所需条件后未能跳出循环,在所有发生这种情况的情况下执行不需要的工作。(Bug #69610, Bug #69611, Bug #69736, Bug #17030606, Bug #17030614, Bug #17160263)
中止备份
在ndb_mgm客户端(见NDB集群管理客户端命令)在返回时花费了过多的时间(大约与备份完成所需的时间一样长,如果它没有被终止的话),并且未能删除由终止的备份生成的文件。(Bug #68853, Bug #17719439)还原数据时的属性提升和降级
NDB
表的使用ndb_restore——恢复数据
与——promote-attributes
而且——lossy-conversions
选项已改进如下: