操作系统升级、数据库升级、一系列的软硬件升级......升吗?
要回答这个问题其实很简单,为什么要升级?
遇到安全问题:当使用的系统或数据库遇到安全问题,发现安全漏洞,这时应该尽快升级,防止系统或数据库被恶意破坏。
遇到性能问题:通常旧版本的系统或者数据库所适配的都是比较旧的硬件,例如低转速的磁盘,低频的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:主从同步延迟Seconds_Behind_Master越来越大,什么鬼?
编写MySQL Shell插件(REPORT)
MySQL官方监管好帮手__MEM(MySQL Enterprise Monitor)
通过Maxwell解析MySQL Binlog,打好业务多活的基础
MySQL安全性解决方案,是个啥?
如果要升级到MySQL 8.0,可以分几个阶段走
Oracle和MySQA
MySQL中left join的几个SQL对比X
MySQL静态数据加密和企业版TDE
MySQL8功能详解——数据字典
MySQL中如何查看正在执行的SQL语句?
MySQL的主键命名挺任性,就这么定了
浅谈MySQL三种锁:全局锁、表锁和行锁
LINUX环境:MySQL和Oracle开机自启动,咋搞?
生产环境:mysqlbackup逻辑备份的一种shell脚本实现
生产环境:mysqlbackup物理备份的一种shell脚本实现
MySql 8.0.16 客户端连接失败
Oracle如何访问MySql:透明网关
一款好的数据库监控工具:天兔数据库监控系统V3.8搭建
MySQL主从架构搭建+GTID同步方式部署
用户:单台服务器部署多MySQL实例,咋弄?
MySQL服务器一次异常掉电的恢复
MySQL8.0.18新特性之bash join探究