摘要:EOL,即生命周期结束(End of Life)。根据Oracle官方信息,到了2023年10月,MySQL 5.7将迎来其生命周期的终结,也就是俗称的“停服”。这意味着该版本将不再获得更新或安全补丁,同时也意味着各个行业使用MySQL 5.7数据库的业务系统将面临多种潜在风险……
MySQL 5.7 停服的潜在风险
在DB-Engines流行度排名中,MySQL已连续数年位于流行度前两位。在关系型数据库中,MySQL也有着较高的市场份额。根据2022年Slintel网站的统计数据,在全球关系型数据库市场中,MySQL市场份额最高,达到43.04%,排名第二的Oracle仅为16.76%。MySQL市场份额几乎占据关系型数据库市场半壁江山,已经成为事实上全球范围内影响最广泛的开源数据库。
而在中国,MySQL的应用比例也相当高。根据Shadowserver Foundation在2022年发布的MySQL扫描报告,全球目前共有360万个MySQL实例,其中中国MySQL实例数占比为15.8%,仅次于美国的32.5%。
因此,MySQL 5.7的停服影响是巨大的,可能导致多种潜在风险,这些风险包括但不限于以下几个方面:
安全漏洞和漏洞未修复:停服后,MySQL 5.7容易受到新的安全漏洞和攻击的威胁,这可能导致未经授权的访问、数据泄露、数据破坏或拒绝服务攻击等安全问题,对企业的数据安全构成潜在威胁。
合规性问题:对于需要遵守特定行业法规或数据隐私法规的企业,继续运行不再受支持的MySQL 5.7版本可能会引发合规性问题。未修复的漏洞和安全风险可能导致法律和监管问题,对企业的声誉构成风险,同时也可能面临法律诉讼和知识产权风险。
性能和稳定性问题:随着硬件和操作系统的更新,MySQL 5.7可能会遇到性能和稳定性问题。新硬件或操作系统的特性和优化可能不再与MySQL 5.7兼容,从而导致业务系统整体性能下降或系统不稳定,进而影响业务连续性。
缺乏新功能和改进:停服后,MySQL 5.7将不再接收新功能和改进。这意味着用户将错过在新版本中引入的性能优化、新的SQL特性、可扩展性改进和其他增强功能,可能限制了业务创新和竞争力。
维护和支持问题:停服后,用户将不再获得来自MySQL官方的技术支持。这可能导致数据库管理员在面临问题时缺乏官方支持和解决方案,增加了故障排除和维护的难度,延长了系统恢复时间。
生态系统的逐渐衰退:随着时间的推移,MySQL 5.7的生态系统,包括第三方工具、库和插件,可能会逐渐减少支持或停止更新,这将影响数据库的可用性和生产力。
数据库技能的短缺:随着MySQL 5.7逐渐退出市场,数据库管理员和开发人员对其进行维护和开发的技能可能变得过时。这可能导致人员技能的不足和难以招聘的问题,增加了人力成本和培训需求。
鉴于以上主要风险,企业需要采取措施来降低这些潜在风险,以确保数据安全、合规性和业务的持续性。
迁移到国内的MySQL开源分支
根据我的观察,大多数MySQL用户企业对MySQL 5.7的“停服”事件都已经有所了解,并已经制定了应对策略。这些策略主要分为以下四种:
1、躺平,继续使用MySQL5.7
2、迁移到受支持版本,比如MySQL8.0
3、迁移到国内的开源数据库
4、迁移到国产商业数据库
其实还有第五种,即迁移到其他主流MySQL分支(如Percona、MariaDB),但这个选项在当下国产替代的浪潮下,大多数企业中似乎已经选择忽略,因此在此不做详细介绍。(另外,尽管数据库产品本身没有政治立场,但背后的公司可能有政治立场。Percona和MariaDB都公开表示支持乌克兰,这与西方价值观一致,但这里不深入讨论政治议题。)
对于上述四种方案,保持现状和升级到MySQL 8.0似乎不需要过多讨论,因为升级到MySQL 8.0是相对较简单的选择,有很多教程可供参考。但即使升级到MySQL 8.0,也只是一时的解决方案,仍然无法避免未来的停服问题。
而迁移到国产商业数据库是一个复杂的话题,从免费社区版MySQL要升级到商业数据库,通常是因为企业在其数据库需求方面面临了新的挑战,而不同的企业面临的挑战并不相同;其次,这种替换涉及多种技术路线选择,比如MySQL、PostgreSQL、自研分布式等。客户会面临成本高、迁移难度和兼容性等多方面的问题,这里不详细展开。
我认为,迁移到国内开源数据库的方案是最值得讨论的。因为,通过采访和交流,我发现大部分选择MySQL5.7替代数据库的企业,迁移难度、改造成本和兼容性是优先考虑因素。
在这种情况下,迁移到国内MySQL开源分支自然成为最合适的替换选择。因为它能够同时满足迁移难度低、改造成本低,同时与MySQL 5.7具有较好的兼容性。目前也符合国家开源政策的鼓励和引导支持。
国内的MySQL开源分支案例分析
近几年,国内涌现出了诸如GreatSQL、PolarDB-X、StoneDB、TenDBCluster-TenDB、AliSQL开源社区等一批基于MySQL开源分支,并已经初步构建多方参与的社区生态,在应用落地、社区活跃度、代码贡献等层面围绕自身特点进行不断完善。
但很多人的认知仍然停留在过去,关于“国内的MySQL开源分支能用吗?是否会涉及知识产权侵权?”这一问题,至今还在被持续热议。
答案很明确:不会有涉及知识产权侵权的问题。陈书俊的文章《七问七答理清MySQL开源许可》已经详细回答了这个问题,这里不再赘述。
对于国内MySQL开源分支是否能用的问题,答案是当然能用。
以我看到的一个最新的国内开源MySQL分支实践案例为例(2023年6月27日发布的),梅州客商银行成功上线了数据安全平台和征信指标变量衍生平台业务系统,这两个业务系统都选择了国内MySQL开源分支GreatSQL。这表明,GreatSQL在金融领域的高可用性得到了实际验证。
因此,如果你考虑使用国内的MySQL开源分支,GreatSQL会是一个不错的选择。相对来说,国内的MySQL开源分支众多,但在开源社区活跃度及成功案例数量、口碑等方面, GreatSQL要更突出些,这也是为什么不少MySQL DBA推荐它的原因。
GreatSQL是由万里数据库维护的MySQL技术路线国内开源分支,它与MySQL和Percona Server完全兼容,完美继承了MySQL在国内的技术生态,包括周边工具,可作为它们的替代选择,用于线上生产环境。更重要的是,GreatSQL完全免费。
图片来自GreatSQL官网
据悉,GreatSQL开源社区的初衷是将其打造成【中国的MariaDB】,即中国的MySQL技术路线自主开源数据库。选择Percona作为基础,是因为他们希望在已经优化了MySQL官方社区版的基础上进一步提升GreatSQL的性能。除了Percona Server已有的稳定性、高效性和更便捷的管理等优点外,GreatSQL还针对MGR进行了大量深入的源码级优化,新增诸如地理标签、仲裁节点、读写节点可绑定动态VIP、智能选主、快速单主模式等多个企业级实用特性;同时修复大量严重故障场景下的稳定性和可靠性问题,并对性能吞吐、稳定性、安全性进行了大幅提升,可适用于金融级应用。
GreatSQL至今已经发布了5个开源版本,包括兼容5.7和8.0的。社区保持每半年发布一个版本的开发节奏,这在开源社区中也属于更新频率非常高的,可见社区的活跃度高。
此外,GreatSQL拥有InnoDB并行查询功能,在TPC-H测试中,平均性能提升了15倍,最高提升了40倍以上,这对于周期性数据聚合报告等业务,如SAP、财务统计等来说非常有用。
安全方面,GreatSQL为进一步增强数据库安全性,新增表空间国密算法支持功能。在开源MySQL原有的keyring架构上,通过国密算法增强开源MySQL keyring架构安全性,从而提升数据库整体安全性。去年,GreatSQL开源项目已经通过了中国信通院的可信开源项目和可信开源社区评估,积极响应国家开源政策,获得了国家权威机构的背书,这点也证明了GreatSQL开源项目的可用性和可信度。
我认为,在传统行业,如金融、能源和电信等领域,广泛使用MySQL的情况下,技术人员在维护MySQL开源数据库方面可能存在能力不足的问题。事实上,有一半的企业需要购买外部技术支持服务。
而万里数据库在这方面是强项,拥有过硬的技术支持服务体系。GreatSQL是由万里数据库主导成立的,从2021年成立到现在虽然只有2年多时间,但是万里数据库在MySQL领域的数据库技术根基可以追溯到自2006年起与MySQL AB合作成立的MySQL中国研发中心,在那时候就积累了丰富的MySQL底层代码研发和服务经验。
写在最后
MySQL是目前全球最流行的开源数据库软件,其巨大的市场占有率是不争的事实。在中国,各行各业的用户纷纷采用MySQL数据库,其普及程度也是不言而喻。
然而,彻底抛弃MySQL技术路线转投其它路线既不切实际,又可能伴随着巨大的风险和转变成本。因此,我们应该善用国内MySQL已经建立的技术、人才生态,结合国内产业需求,加强我们自己的MySQL开源分支的独立演进能力。
即使甲骨文没有将MySQL的开源许可证做出变更,也没有将其闭源的意图,发展国内独立的MySQL分支仍然势在必行。这是因为MySQL在本地化方面存在硬伤,如适配国产软硬件、支持国密算法以及适应国内业务量巨大的场景支持等方面都存在欠缺等。另外,希望甲骨文公司的MySQL需求评估部门全面考虑中国的情况和需求也不现实。
这也是为什么我强烈建议国内开发者积极维护国内MySQL开源分支的原因。然而,我们需要的是一个统一而强有力的MySQL开源分支,而不是分散的、零散的分支项目。只有在这个前提下,我们才能更好地发扬开源精神,推动国内数据库技术的进步,满足不断增长的业务需求。这将有助于确保MySQL在中国市场上的长期可持续性和成功发展。
附图:Oracle 官方公示软件产品对应的出口管控类别编码(MySQL 产品线,MySQL 企业版、MySQL 标准版、MySQL 经典版、MySQL 集群版以及 MySQL 嵌入式版都在 5D992.C 类别中,但不包含社区版本)
参考文章:
【1】阴谋论: MySQL将死,国产数据库的春天?
【2】七问七答理清MySQL开源许可