MySQL 集群管理器 1.4 发行说明  /  MySQL 集群管理器 1.4.1 的变化 (2016-11-24)

MySQL 集群管理器 1.4.1 的变化 (2016-11-24)

本节记录了自 MySQL Cluster Manager 版本 1.4.0 发布以来在 MySQL Cluster Manager 1.4.1 中应用的所有更改和错误修复。

添加或更改的功能

  • Microsoft Windows: MySQL Cluster Manager 的 64 位 Windows 安装程序包现在可用。

  • 代理人: 用于指定 mcmd 选项的引号按 字面解释为选项值的一部分。通过此修复, mcmd现在通过在解释选项值之前去除引号来正确处理以下选项的引号:

    (漏洞 #24529142)

  • 代理:mcmd代理未能关闭 mysqld节点时,它会不断重试,直到进程超时,此时 mysqld的错误代码会返回给客户端。通过此修复,在第一次关闭尝试失败后立即返回错误。(漏洞 #24418005)

  • Agent:执行命令 后start process --added,如果 show status --operational再运行命令, Command即使添加并启动了多个节点,在输出的列中,也只会显示添加的一个节点的ID。通过此修复,在这种情况下,nodeid 不再显示在命令输出中,以避免任何可能的混淆。(漏洞 #24372861)

  • 代理:restore cluster命令现在支持一个新选项, --promote-attributes它允许在 MySQL 集群管理器从备份恢复数据时提升属性。(缺陷号 24295481)

  • 代理:collect logs命令现在还收集跟踪文件,以在集群发生故障时提供更多信息。(漏洞#23746394)

  • Agent: 与调试无关的信息,设置为 时不再包含在代理日志--log-level 中,设置为时 debug包含 。(漏洞 #23716969)--log-levelinfo

  • 代理:删除 了 MySQL 集群管理器设置集群参数的功能 ndbinfo_table_prefix,因为设置它可能会导致 mcmd尝试启动 mysqld节点时超时。(漏洞 #23632067)

  • 代理:import cluster命令现在支持导入已使用命令行指定选项启动的集群节点,在选项名称中使用下划线 (_) 而不是破折号 (-)(例如, --ndb_connectstring而不是 --ndb-connectstring)。(漏洞 #23535372)

  • 代理:--initial 选项现在可以与 命令一起使用,以“创建状态start cluster启动集群 (缺陷号 23138442)

  • 代理:mcmd中 的计时器现在是单调的,因此间隔测量不再受主机时钟变化的影响。(缺陷号 22699245)

  • 代理:无论设置如何, mcmd代理 的版本号和运行它的主机的名称现在总是mcmd.log在启动或日志轮换时记录在代理日志 ( ) 中 --log-level。(漏洞 #22616530)

  • 代理:backup cluster命令现在为 MySQL 集群中 NDB 表的元数据创建逻辑备份,从而在恢复期间为集群重新配置提供更大的灵活性。有关详细信息,请参阅说明 backup cluster。(漏洞 #21200829)

  • 代理:--backupid 选项现在可以与list backups命令一起使用,以指定要列出的备份的 ID。

  • 客户端:import config --dryrun当为要为 mysqld节点 ,由命令创建的 .mcm 文件的 mcm客户端现在接受这些属性的 相对文件路径(值除外)socket,以及目录值的任何路径(例如, plugin_dir)。(漏洞#18650848)

  • 客户端: 创建一个单主机站点localhost作为 --hostsnow 的参数会导致站点无法通过 add hosts命令进行扩展;mcm客户端在创建站点时会发出警告详见 create site命令说明。(漏洞 #18389510)

  • MySQL Cluster Manager 现在支持 MySQL Cluster 7.5。同时,对 MySQL Cluster 7.2 的支持已被弃用。(缺陷号 24940329)

修正错误

  • agent:命令复制部分文件失败 时backup agents完成,但导致后续mcmd agent重启失败。此修复程序向命令添加了正确的错误处理功能 backup agents。(缺陷号 25057056)

  • 代理:start cluster运行or 时stop cluster,如果任何数据节点启动或停止的时间超过两分钟,则mcmd代理会为该命令抛出超时,有时会不止一次这样做,即使数据节点已仍处于启动或停止的正常过程中。这是因为在两分钟内从未授予所需的超时延期。通过此修复,可以在更早的时间授予超时延期,并且延期的数量是根据集群的 DataMemory大小计算的。(漏洞 #24749459)

  • 代理:mcmd无法在 mysqld 节点上创建它需要的用户时,它只是不断重试,直到达到超时,而不通知mcm 客户端。通过此修复,在这种情况下会立即向客户端声明失败,并且不再重试。(漏洞 #24511041)

  • 代理:mcmd配置集群失败后,来自进程的进度消息导致下一次配置集群的尝试失败。通过此修复,上次尝试的进度消息只会导致向代理日志发出警告,然后被忽略。(漏洞#24499097)

  • 代理:使用旧版本的 MySQL Cluster Manager 执行import config命令失败后,如果随后升级 MySQL Cluster Manager,某些mcmd代理会在之后重新启动失败。(缺陷号 24464302)

  • 代理: 尝试通过在 1.4 之前的数据上启动 1.4.0 可执行文件来将 MySQL Cluster Manager 升级到 1.4.0 版失败,因为备份配置的自动升级不成功。(漏洞 #24433400)

  • 代理: mcmd在未能正确解析来自 mysqld节点的意外格式消息后意外退出。通过此修复,首先对收到的消息执行健全性检查,以避免从中解析出错误的信息。(缺陷号 24430610)

  • 代理: 当尝试在 mysqld节点上设置全局系统变量时, mcmd 代理总是返回一条成功消息,即使它实际上未能联系到mysqld节点。(缺陷号 24417856)

  • 代理: 运行该list backups 命令时,如果其中一个mcmd代理在某些备份文件路径上遇到权限错误,则该命令的返回结果将变得不完整。通过此修复,在这些情况下会返回完整的结果。(漏洞#24414682)

  • Agent:mcm client和它连接的 mcmd agent在同一台host上,loopback地址不是127.0.0.1时,如果host的名字或者loopback地址在create site 命令的host列表中没有明确包含,会尝试重启cluster later 将失败,并抱怨无法在主机列表中解析代理的主机名。通过此修复,发出create site命令时会发出警告,要求用户包含正确的主机名。(漏洞#24411504)

  • 代理: mcmd有时无法将其执行 SQL 语句的错误报告到mcmd 日志中。此修复尝试确保捕获这些错误。(缺陷号 24375344)

  • Agent:add package由于加载集群配置错误导致命令失败时, mcmd在Windows平台上意外退出,在类Unix平台上误报包添加成功。(漏洞 #24361901)

  • Agent: 在 Windows 平台上,mysqld 节点的系统变量值 wait_timeout不能使用该 命令设置为大于“ 2147483 ” 。set(缺陷号 24332880)

  • 代理:mcmd无法写入配置文件config.inimy.cnf时, mcmd要么意外退出(对于大多数类 Unix 平台),要么返回一条成功消息而没有实际写入文件(在 Solaris 上)。(漏洞 #23632067)

  • 代理: 当使用该命令从 mysqld节点 import config时,如果该值是包含井号的引号值并且在配置文件中列出时后跟注释,则该值会被截断。(漏洞 #23591849)

  • 代理: 在 Windows 平台上,import cluster当 32 位 mcmd在 64 位 MySQL 集群上运行时命令失败,反之亦然。(漏洞 #23503256)

  • 代理: 该内指定的实例级 TCP 配置设置import config --dryrun生成 。(漏洞#23341146)setconfig.ini

  • Agent:NoOfReplicas4且所有数据节点中只有四分之一可用时,时 mcmd报告集群无法运行show status --cluster。(缺陷号 23330032)

  • 代理: 当 mcmd报告的 LSN 低于某个其他代理已报告的 LSN 时,它忽略了来自ndbapi(或非托管 mysqld )节点的状态更新 这是由于对报告的 LSN 进行了不必要的检查,此修复已将其删除。(缺陷号 23320387)

  • 代理: 使用 MySQL Cluster 7.5 时,使用 命令重置mysqldreset节点的 Datadir 参数会导致错误,而默认数据目录中包含内容。(漏洞 #23283577)

  • Agent:如果使用了mysqld节点的 分布式权限,并且在集群的mysqldroot节点上设置了密码新的 mysqld进程后,MySQL Cluster Manager连接失败,尝试登录新的mysqld失败节点 与空密码一样。有了这个修复, 然后尝试在那种情况下以 user 身份登录到节点。此外,即使帐户不安全,当使用分布式权限时,现在首先尝试连接到新的mysqld 节点mcmdrootmcmdmcmdrootmcmdmcmcd在它尝试 mcmd在新节点上创建用户之前。(漏洞 #23274982,漏洞 #81391)

  • 代理:当参数 设置为 34时, 命令 start process --added失败并出现错误无法创建节点组... (错误 #23257723)NoOfReplicas

  • 代理:当参数设置为 34时, 一些ndbmtd进程被排除在滚动重启之外。 (缺陷 #23251630)NoOfReplicas

  • Agent: 参数 NoOfReplicas设置为 34 ” ,即使在ndbmtd进程 的节点组中还剩下一个镜像节点 ,为ndbmtdstop process节点发出的命令被 mcmd拒绝。(漏洞 #23250053)

  • 代理: 当大多数mcmd代理的法定人数不再存在时(例如,由于网络故障), mcmd代理会报告失败进程的错误状态,即使这些进程在其自己的主机本地并且可由代理访问. (缺陷号 23222658)

  • 代理: 当与正在运行数据节点的主机的网络连接丢失然后重新建立时,该show status命令错误地报告数据节点再次运行,即使它实际上已经停止。此修复可确保正确反映数据节点的当前状态。(漏洞 #23220981)

  • Agent: 当设置参数值失败时 LogDestination mcmd在返回错误时,有时还会发出警告,指出先前的运行时错误已被覆盖。现在可以通过在抛出新错误时对任何现有错误进行适当的检查和处理来防止这种情况。(漏洞 #23211849)

  • 代理: 如果mcmd在对mysqld节点执行SET GLOBAL语句 每次执行新语句时都会向代理日志 ( ) 发出相同的警告。(漏洞#23211783)mcmd.logSET GLOBAL

  • Agent:在为mysqldArbitrationRank节点设置 参数 ,数据节点和管理节点没有重启,所以不知道mysqld节点的仲裁级别已经改变。(缺陷号 23148368)

  • Agent: 在集群中只有一个ndb_mgmd 节点的情况下,在滚动重启过程中, ndb_mgmd节点刚重启后第一个数据节点停止,第二个数据节点可能会在它重新启动之前失败,抱怨有不是集群的仲裁员。这是因为管理节点仍在声明自己是仲裁者的过程中。有了这个修复,数据节点的重启只会在它们都看到仲裁器建立后才开始。(缺陷号 23148061)

  • 代理:如果为集群备份指定了非默认位置,并且该位置存在备份,则无法将 新的ndbdndbmtd节点添加到集群中。BackupDataDir(缺陷号 23123364)

  • 代理: 当已经存在的节点在没有启动的情况下再次添加到集群并且集群停止时,后续 start cluster --initial命令失败。这是因为 mcmd试图重新创建已经存在的节点组,此修复阻止了这种情况。(缺陷号 23024367)

  • Agent: 虽然使用了组标题的组后缀(例如 my.cnf添加的mysqld进程 但未使用该选项启动mysqld节点 ,导致mysqld节点无法读取生成的配置 。通过此修复,不再使用组后缀。(漏洞 #22931198)mcmd[mysqld.50]--defaults-group-suffix

  • 代理: 在 Windows 平台上,mcmd代理在无法打开 PID 的进程处理程序后意外退出。此修复程序mcmd能够处理这种情况而不是退出。(漏洞 #22886512)

  • 代理:upgrade cluster执行命令期间,如果 尚未升级的mysqld节点因某种原因失败,则错误地使用较新的二进制包而不是较旧的二进制包重新启动。通过此修复,节点将使用运行它的原始二进制包重新启动。(缺陷号 22880634)

  • Agent:set在某些情况下,使用命令 made 设置集群的配置属性时mcmd意外退出,因为 MySQL Cluster Manager 中有多个线程试图在很短的时间内一起更改集群配置,其中一个线程运行到一个存储库目录的校验和错误并导致代理退出。此修复程序添加了错误检查、重试以及指数退避来处理这种情况,以便正确执行 set命令。(缺陷号 22865068)

  • 代理: 命令restore cluster失败,因为集群中的一个管理节点处于“正在启动状态,这应该不会阻止集群恢复。(漏洞 #22755257)

  • Agent: 使用该start process --added命令启动新添加的数据节点时,如果有 ndbapi节点处于 “已连接状态,则命令失败,并抱怨 ndbapi节点已在运行。 (漏洞 #22726592)

  • 代理:如果先前停止mysqld节点 的尝试失败并使该节点处于“正在停止状态,则 后续stop cluster 命令因超时而失败。通过此修复,该 stop cluster命令实际上会重新尝试两次关闭“正在停止的 进程,如果尝试失败,则会抛出一个正确的错误。每次尝试的超时时间也减少到 5 秒。(错误#22682222,错误#24735542)

    参考资料:另请参阅:Bug #19805950。

  • Agent: 当对一个create cluster有很多进程的大型集群执行命令时, mcmd 会尝试解析主机名并检查每个进程的包名的有效性,这可能会花费很长时间并导致 create cluster命令超时失败。mcmd现在避免重复查找相同的主机名或包名,因此可以防止超时。(漏洞#22671177)

  • Agent:当通过mcmdabort backup agent刚刚发出命令 后真正完成备份时 ,agent 未能响应备份完成,导致 命令超时。通过此修复,该命令将在这种情况下出错。(漏洞#22655696)abort backupabort backup

  • 代理: 当 命令 为mysqld节点 log-error属性 值时, mcmd未能如预期的那样在提供的文件名没有扩展名时将扩展名附加到提供的文件名。(缺陷号 22588267)set.err

  • 代理: 由于一些通信仍未 status被 . (漏洞 #22539167)mcmd

  • 代理: 该未使用该选项时为集群设置 的 TCP 连接属性(例如, 和 autotune --dryrun写入 (漏洞 #22517603).mcmSendBufferMemoryReceiveBufferMemory--dryrun

  • 代理: 由于两个集群分别在同一站点的两个不同主机上运行, autotune --dryrun​​集群命令失败并出现内部错误,抱怨无法打开转储文件 [for the other cluster running on the other host] 因为它没有主机上不存在——这是意料之中的。(缺陷 #22465053,缺陷 #79586)

  • 代理: 如果在 MySQL 集群管理器启动集群时发生集群日志轮换,则会发生mcmd代理故障。此修复可确保mcmd正确检测和处理日志轮换。(缺陷号 22296243)

  • Agent: 对于MySQL Cluster 7.4.8及之后的版本,该 将集群配置文件[tcp]部分下的import configdeprecated属性导入为“ 0.。现在在配置导入期间跳过该属性。(缺陷号 22274785)PortNumber

  • 代理:当其中 一个mcmdcreate cluster代理关闭时,命令失败并出现错误,即使进程不需要该代理也是如此。(漏洞 #22245706)

  • 代理:mcmd代理在创建 mysqld节点时运行实用程序mysql_install_db时,它不是异步运行的,有时会导致其他 mcmd进程不必要的延迟。通过此修复,该实用程序现在可以异步运行。(缺陷号 22238508)

  • Agent: 集群中加入新主机后,没有为其添加包,mcmd向anyand命令返回错误信息getset说要get或set的参数不存在。通过此修复,将返回正确的错误消息。(缺陷号 21894353)

  • Agent: 在Windows平台上,将 mysqlddatadir节点的选项设置为 Windows文件路径格式,导致agent重启mysqld节点失败后意外停止这是由于 Windows 格式文件路径处理不当造成的,该问题现已得到修复。(漏洞 #19209870)mcmd

  • 代理:在等待 GCP 和 LCP 接管事件在数据节点之间完成时, 由 mcmd执行的集群滚动重启超时。通过此修复,通过让 mcmd 检查接管事件的状态并等待相关数据节点准备就绪后再尝试停止它们来避免超时。(漏洞 #14230789)

  • 客户端: MySQL Cluster Manager 的引号选项值中的空格丢失(例如,使用--prompt='mcm1.4.1> ',mcm客户端 的提示变为 mcm1.4.1> [没有空格结尾])。(漏洞 #24528495)

  • 客户端: 当选项 启动mcm客户端时,如果无法在预期位置找到mysql客户端,则mcm客户端会因分段错误而失败。(漏洞#24522244)--debug

  • 客户端:autotune --dryrun和 返回的成功消息将 import config --dryrun用户引向代理日志文件,以便将建议的设置应用于集群,但这些设置实际上并不在文件中。成功消息现在提供.mcm包含设置的脚本文件的路径。(缺陷号 22280689)

  • 客户端:某台主机上 的mcmd代理失败后, mcm客户端继续报告主机上的进程状态为 正在运行,而mcmd代理日志和ndb_mgmd查询已经显示其状态为未知”。。(漏洞 #22174415)