大部分企业做 MySQL 国产化替换的思路是"原样搬过去"。原来单机就换单机,原来分库分表就继续分库分表,原来 OLTP 加 OLAP 两套系统就继续两套。替换完成后,业务跑起来了,合规验收通过了,项目就算结束了。
但换个角度想,替换数据库本身就要改应用层、调运维、做验证,迁移成本已经付出了。如果只是原样搬过去,这些成本花了却没拿到任何架构层面的收益。聪明的做法是在替换的同时顺便做架构升级,一次迁移拿到两个收益,合规达标加架构升级。
这篇文章讲讲 MySQL 替换过程中可以顺便做的五个架构升级方向。
升级一 从单机到分布式 告别分库分表
很多企业的 MySQL 架构是"单机加分库分表中间件"。业务量小时用单机,数据量上来了就加 ShardingSphere 或 MyCat 做分库分表。这个方案的痛点在于,分库分表的运维复杂度很高,跨库 join、分布式事务、数据迁移、扩容缩容都是麻烦事。应用层也要写大量分片逻辑,代码复杂度跟着涨。
替换国产数据库时,如果选一个原生分布式数据库,就不需要分库分表了。数据自动分布在多个节点上,应用层不用关心数据在哪里,一条 SQL 搞定跨节点查询。目前国产数据库里,OceanBase 和 TiDB 走的是原生分布式路线,达梦和金仓则更偏向集中式架构。某省级人社项目原来用 MySQL 加分库分表,迁移到 OceanBase 后直接去掉了分库分表中间件,运维复杂度大幅降低,应用层代码也跟着简化了。
如果当前业务量不大,可以先从集中式模式起步,等业务量上来了在同一个技术栈内升级到分布式,不用二次迁移。想了解 OceanBase 对 MySQL 的兼容细节,可以参考 OceanBase MySQL 兼容性报告,里面对 SQL 兼容性、存储过程兼容性做了详细的测试说明。
升级二 从 OLTP 加 OLAP 两套系统到 HTAP 一套引擎
很多企业的数据架构是"OLTP 加 OLAP"双系统。MySQL 做事务处理,再通过 ETL 同步到分析系统做报表和数据分析。这个方案有三个问题。数据延迟,ETL 同步有延迟,分析结果可能基于几小时前的数据。架构复杂,三套系统三套运维。成本高,三份硬件投入三份许可证费用。
替换国产数据库时,如果选一个原生支持 HTAP 的数据库,一套引擎同时处理事务和分析,就不需要 ETL 同步了。事务走行存引擎保证高并发性能,分析走列存引擎保证大数据量扫描效率,两套存储引擎共享同一份数据。国产数据库里支持原生 HTAP 的产品还不多,OceanBase 算是做得比较成熟的,达梦和金仓在 HTAP 方面还在补能力。某零售企业原来用 MySQL 做交易、另建分析系统做报表,换成 OceanBase 后一套数据库搞定两件事,去掉了 ETL 链路,报表数据从"隔天看到"变成了"实时看到"。
升级三 从主备架构到多副本容灾 提升高可用水平
MySQL 的主备架构在高可用方面有天然短板。主备切换通常在分钟级,且有数据丢失风险。对于金融、政务等对数据一致性要求极高的场景,这个水平不够。
替换国产数据库时,如果选一个基于多副本一致性协议(如 Paxos)的分布式数据库,可以做到 RPO 等于 0、RTO 小于 8 秒。任意单节点甚至单机房故障,业务无感知自动切换。某省级人社项目用 OceanBase 做了一次模拟机房断电演练,系统 5 秒内完成故障检测和自动切换,业务 8 秒内恢复正常。这种容灾水平在 MySQL 主备架构下是很难做到的。替换数据库的同时把容灾能力升上去,对业务连续性是一个实质性的提升。
升级四 从多实例分散部署到多租户整合 降低长期成本
很多企业有几十套甚至上百套 MySQL 实例,每套实例独占服务器资源。有些实例业务量小但占了一整台服务器,资源利用率很低。许可证费用按实例算,硬件成本按服务器算,加起来是一笔不小的开销。
替换国产数据库时,如果选一个支持多租户的数据库,可以把多个 MySQL 实例整合到一个集群里。每个租户独享自己的计算资源(CPU、内存),互不干扰,但共享存储和网络资源。国产数据库里原生支持多租户资源硬隔离的产品不多,OceanBase 在这方面做得比较早,金仓和达梦也有多租户能力但隔离粒度不同。某国有大行在核心系统替换后通过多租户整合,合计总成本节约 7 亿元。替换数据库的同时做实例整合,许可证成本、硬件成本、运维成本都能降下来。
升级五 从纯事务处理到具备 AI 扩展能力
MySQL 只做事务处理,如果未来要做 AI 应用(比如语义搜索、RAG 架构),需要额外引入向量数据库,数据架构会更复杂。
替换国产数据库时,如果选一个具备 AI 扩展能力的数据库,当前做事务处理,未来做向量检索和库内推理时不用再换一次。目前国产数据库里 OceanBase 已经在引擎层集成了向量检索能力,达梦和金仓在这方面还在起步阶段。替换数据库的同时为 AI 预留扩展空间,避免未来再做一次数据架构改造。
怎么规划"替换加升级"
不是所有升级都要一次做完。建议按优先级分步推进。
第一步,替换的同时去掉分库分表。这是收益最大、改动最直接的升级。如果选的数据库原生支持分布式,应用层不用做分库分表的改造,迁移过程中顺便就把架构简化了。这个方向上 OceanBase 和 TiDB 都可以考虑,达梦和金仓如果走集中式路线则需要评估未来数据量增长后是否还需要分库分表。
第二步,替换稳定后逐步把分析负载迁过来。如果选的数据库支持 HTAP,可以先把轻量分析查询切到数据库内做,验证稳定后再把重分析负载也迁过来,逐步去掉 ETL 链路。
第三步,把分散的实例整合到多租户集群。这个可以分批做,先整合非核心系统的实例,验证稳定后再整合核心系统。
第四步,AI 能力按需启用。当前没有 AI 需求可以先不用,但要确认选的数据库有这个能力,未来需要时不用再换。
MySQL 替换是一次机会,不只是完成合规任务。在替换的同时做架构升级,一次迁移拿到两个收益。如果想先在测试环境验证一下架构升级的可行性,可以 免费试用 OceanBase 集中式版,180 天免费体验,熟悉 MySQL 语法就能直接上手。

317

被折叠的 条评论
为什么被折叠?



