暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

升级吗?

操作系统升级、数据库升级、一系列的软硬件升级......升吗?

要回答这个问题其实很简单,为什么要升级?

  • 遇到安全问题:当使用的系统或数据库遇到安全问题,发现安全漏洞,这时应该尽快升级,防止系统或数据库被恶意破坏。

  • 遇到性能问题:通常旧版本的系统或者数据库所适配的都是比较旧的硬件,例如低转速的磁盘,低频的CPU,容量较小的内存。随着硬件不断的进步,新版本的系统或者数据库都会针对新的硬件进行优化。因此,当系统或数据库采用了新的硬件之后,你的系统和数据库软件也应相对应的升级至新版本,才会发挥出应有的性能。大多数情况下,通过升级,以往困扰你多时的性能问题会变迎刃而解。

  • 遇到扩展性问题:随着数据量的爆发式增长,新的系统或数据库对扩展方面也做了大量的改善。因此,当遇到扩展性的问题时,不妨通过升级进行优化。

  • 新增功能:新的系统和数据库里面都会带有大量的新功能,如果想使用某些新功能,那一定是需要升级的。以MySQL为例,如果你想使用hash join那么请使用MySQL8.0.20之后的版本。

  • 弥补技术缺失:想象一下,如果你的系统使用的还是10年前的软件甚至是更为久远,那你会面临着技术缺失的情况。技术的发展日新月异,如果守着老旧技术不肯更新,无论是系统还是人,势必会被这个时代所淘汰。因此有必要通过升级去弥补技术的缺失。

  • 某个必要的时刻:实际情况中会遇到某些特殊的要求,例如,将原本分散在各地的系统进行整合,这种时刻,基本上会强制升级到某一指定版本。

接下来,我们主要关注一下数据库的升级,当升级数据库时,DBA所关心的问题有哪些?

  • 降低风险,成本是关键。

  • 总的升级时间应该尽可能短。

  • 升级后优先使用旧版本的行为和设定值与应用程序进行匹配,之后再进行更改。

  • 逐步采用新版本。

  • 切换和停机时间应该尽可能短。

MySQL8.0是通过哪些方法来满足DBA的关注点进行升级的呢?具体的升级过程可以参考在线手册:“https://dev.mysql.com/doc/refman/8.0/en/upgrading.html”。

MySQL8.0版本提供了MySQL Shell工具,可以对其进行升级检查。(注意,该工具仅适用于从5.7升级至8.0,如需跨版本升级,建议将其他版本先升级至5.7之后,在进行升级。例如,5.6-》5.7-》8.0逐级升级)。

先,使用MySQL Shell连接到MySQL服务器查看一下当前版本信息和状态。

其次,执行util.checkForServerUpgrade()对服务器进行检查,这个工具会对MySQL进行全方位的检查,列出错误和警告。

检查将返回在服务器上发现的升级方案错误和警告,在升级之前要将错误进行修改。修改错误后,还应该考虑进行进一步的修改以消除警告。这些配置修改将使服务器实例与目标版本更加兼容。MySQL8.0通过这个工具发现潜在问题,减少升级风险。

除此之外,MySQL8.0采用了新的数据字典,元数据全部保存在InnoDB表里面,并且具有版本信息,以方便得知从哪个版本升级而来。

从MySQL8.0.16开始,删除了mysql_update客户端,将其功能移至mysqld内部,实现了对容器化的友好支持。关于这部分内容请参阅:MySQL 8.0.16:mysql_upgrade即将消失

mysqld 增加了一个新的选项--upgrade,使用该选项可以控制MySQL服务器在每次启动时是否进行更新处理(更新处理包括数据字典更新和服务器的更新),可以通过不同的变量值对其进行设置。

以上内容是MySQL8.0对于升级所作出的改变,以迎合DBA降低风险,缩短升级时间的需求,为DBA的运维工作提供便利。

最后再次说明,MySQL5.6版本将于2021年2月停止更新,MySQL5.7版本的标准支持将于2020年10月结束,之后将进入延长支持阶段,补丁的数量会大幅减少,是时候将你的MySQL升级至8.0啦!MySQL产品的生命周期

感谢您关注“MySQL解决方案工程师”!

最后修改时间:2020-06-16 09:16:37
文章转载自MySQL解决方案工程师,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论