如火如荼的国产数据库,能否替换Oracle数据库?

一、蓬勃发展的国产数据库

2020年5月20日,蚂蚁金服100%自主研发的分布式关系数据库OceanBase,以7.07亿(707,351,007)tpmC的在线事务处理性能,打破了OceanBase自己在2019年10月创造的6088万(60,880,800)tpmC的TPC-C世界纪录。

榜单上第二名是Oracle,成绩是30249688tpmC。

这几年,国产数据库的进步也是有目共睹的,国产数据库和传统数据库厂商之间的差距在逐渐缩小,某些层面甚至有赶超之势。纵观这几年国产数据库的发展模式分为两个不同的路径:

最早的是以Oracle为参照的达梦数据库、人大金仓和面对数据分析为主的南大通用等几家公司为主;另外就是近年来迅猛发展的、以中国的通信企业和互联网企业为代表的自研数据库,如华为的GaussDB、阿里的OceanBase和PolarDB以及腾讯的CynosDB、TDSQL、TBase。这些企业从业务,或者成本等方面考虑,以Oracle为代表的数据库产品无法满足自身需要,从而为了自己业务发展而走向了自研的道路。

以Oracle、IBM、微软等为代表的传统厂商凭借先发优势吃掉了数据库市场的很大份额,虽然国产数据库起步较晚,但是云技术的发展还是让国产数据库搭上了快班车,市场份额也在逐年增加。

这些从电信行业,互联网行业里面发展起来的国产数据库,有深厚技术储备、有大量应用场景、有海量资源投入,在数据的规模,数据库产品的功能和性能的要求,以及业务的复杂性方面,都经过了严苛的实际考验,可以说已经具备了相当强的竞争能力。

随之而来也衍生一个问题,国产数据库能否替换Oracle数据库呢?

image
image

二、国产数据库能否替换Oracle数据库?

这是近期的db-engines的排名

image
image

从市场份额来看Oracle毫无疑问还是主流数据库,那么国产的数据库可以替换Oracle吗?我从日常工作情况和环境中了解的信息方面,谈一谈我个人的想法,衷心希望国产数据库能够发展起来。

先抛出结论,国产的数据库能否替换Oracle?答案是能!但困难一定很多,因为替换不仅仅是技术问题。

替换Oracle数据库,这个问题很多年前就已经提出了,当年阿里首次提出去IOE:在阿里巴巴的IT架构中,去掉IBM的小型机、Oracle数据库、EMC存储设备。事实证明阿里做的很成功。近几年国产的数据库越来越多,也有一些企业进行了替换。

对于Oracle能否被国产数据库代替这个问题,这个问题需要考虑多方面的因素:

一、应用维度

选用一个数据库,这不是拍脑袋的决定,同样的替换一个数据库,也并非一蹴而就的事情。首先需要考虑的是业务场景,举个例子,你让一个基于OLAP业务的数据库去支持OLTP,那肯定是不行的。

传统的IT架构,都是经过多年时间一步步演化而来的。上到应用层、中间层下到操作系统、存储等和数据库都是有一定耦合程度的。不同的数据库有不同的特点,基本的区别比如隔离级别、锁类型支持等,涉及到底层数据库的更换肯定影响上层应用的修改适配。

国产的数据库,大都有自己的适应场景,并不能单纯的说全盘替换Oracle数据库。唯有适合才是替换的核心要求。

二、技术维度

技术维度其实就是产品的成熟度,这一块Oracle是当之无愧的南波万。毕竟是经历了多年的技术洗礼,并且经受了全世界各种业务场景的考验。

1、性能

性能有没有Oracle好,这本身就是一个伪命题,大部分国产数据库不见得比得过Oracle,但也不见得差。某些特殊场景Oracle会逊色于一些从互联网业务场景诞生的数据库,毕竟今天中国互联网业务场景的复杂性和规模之大肯定是Oracle设计之初没有想到的。

当然了,抛开业务场景谈性能有耍流氓之嫌,可以肯定的是,国产数据库不管是自研内核还是基于pg或者MySQL的内核改造,性能不会差Oracle多少。

2、兼容性

这才是最令人头疼、也是代价最高花费精力最多的地方。据我了解目前国产数据库没有100%兼容Oracle语法的。所以对于需要迁移的Oracle,SQL改写是个大问题,尤其是你的系统又写了很多存储过程。

当然了,工作虽然繁琐但还是有各种办法落地的,只要舍得投入人力。

保险起见,迁移后双系统运行一段时间,Oracle和新的数据库也需要数据实时同步,确定完全无问题后方可关闭Oracle。

3、架构和稳定性

架构上应该差别不大,Oracle的架构很成熟,国产数据库架构也不差,比如双机,HA,日志同步等方式。

三、生态维度

数据库生态这一块我觉得还挺重要的,很多企业都有过去O的想法,但没人敢一步迈出去,说到底和技术生态有很大关系。

举个例子,假如你想学习Oracle数据库技术,舍得花钱那简直就是一条龙服务,包教包会包就业;不想花?网上各个技术社区,技术文档也足够学以致用了,这是一种技术行为习惯。如果在所有搜索引擎上进行一个测试,基于Oracle的技术文章、问题讨论、原理分析等等的知识一定会远胜于其他,这就是Oracle放水养鱼数年之后形成的巨大生态。这种生态不是一朝一夕就可以扭转的。

承认目前国产数据库的生态不如Oracle主流数据库,虽然非一夕之间可以扭转,但我们总归开始追赶了,建立整个生态圈,我们终究会走到这一步。

三、后话

重要信息领域国产自主化是国家战略,国产化大背景的驱动下,这是国产数据库发展最好的时代,未来的DB市场格局一定是会向多元化方向发展。

对于数据库相关从业人员要做的就是顺势而为。

你可能感兴趣的:(如火如荼的国产数据库,能否替换Oracle数据库?)