国产数据库适合国家标准吗?

​前阵子有个企业的IT负责人和我讨论,对于信创数据库,制定一些国家标准,会不会对国产数据库产业有帮助。当时我的第一反应是,国产数据库咋做标准化,不同的数据库产品技术路线不同,架构不同,技术水平不同,实现方式不同,我们没办法也没必要去做个国标来做一些限制吧。说实在的,标准是个双刃剑,搞好了,能够促进国产数据库产业,搞得不好,就变成党同伐异的工具了。

前些年一些行业制订了数据库的一系列的数据库标准,实际上这些标准更像是招标文件中的技术规范书,很难对数据库产业发展有什么作用。另外一个典型的案例就是等保安全标准,前些年Oracle参加过一次等保2级测试,居然惨败,也就很说明问题了,了解Oracle安全的朋友绝对相信Oracle数据库绝对不会比当时的国产数据库在安全方面差,但是当时的不少国产数据库是可以轻松过等保三级的。

不过仔细想一想,我倒是觉得国产数据库标准也不见得是一件坏事情,如果做好了,还真的能促进国产数据库产业的发展。国外商用数据库发展过程中也是先万花齐放,不同的架构、不同的技术路线、不同的编程接口。发展到一定阶段才发现,如果不遵循某些标准,野蛮生长,数据库市场就很难快速增长。于是大家才开始互相“学习”,采用一些事实标准,最终其能力也开始趋同了。SQL语言、B树索引、MVCC,事务隔离级别、存储过程、触发器,等等等等,正是这些技术被商用数据库厂商广泛使用后,才让关系型数据库市场变得繁荣起来。国产数据库的起步比较晚,因此不但上述这些都成了标配,并且大家都有意无意的向几个数据库产品靠拢。一个是Oracle,另外就是MySQL、Postgresql两大开源数据库。

2014年的时候,我们的优化项目开始接触达梦、金仓等国产数据库。刚刚接手一个全新的数据库的时候,我们完全时懵的。不过看到DBA_TABLES,v$sysstat、v$sessions等熟悉的视图的时候,心里就踏实了很多。虽然达梦数据库与Oracle的内核不同,sysstat和会话信息所反映的系统状况也没Oracle那么清晰,不过这种兼容性也让我们在做这个优化项目时受益良多。后来这个项目的完成比原来预想的顺利很多,效果也超出了我们开始时的预期。

数据库的核心技术实无法做标准化的,做起来也无益,差异化竞争才能让优秀的数据库产品更好的成长起来。不过在某些方面还是可以建立一些国标的。比如可观测性接口、数据字典表、云平台纳管接口等外围接口方面,如果能形成标准化,那么对于国产数据库市场还是有所助益的。

我们是做运维工具的,对可观测性接口的问题深有感触。每纳管一个数据库产品,我们都需要从头开发,从指标体系构建,到指标采集,再到诊断工具,都要重新写一套。实际上,不管数据库产品核心的差异有多大,很多指标实际上都是标准的,负载、性能、并发、集群等方面都有很多指标都是普适性的,系统状态、系统指标、等待事件等接口能力都是可以提供的。在我们这些年的工具开发中发现,PG兼容的数据库产品的监控开发工作量相对较小,虽然很多数据库在底层都做了很多优化,也增加了一些可观测性的接口,不过因为其核心部分的指标体系,监控视图方面存在较多兼容的地方,因此纳管新的PG类的国产数据库的开发成本远低于一个全新的数据库产品。

如果能够形成一套国家标准,那么今后不仅对于数据库监控产品的厂商,对于DBA来说也是一个福音。比如日志文件的存储位置,日志文件的文件名格式,日志条目的格式,这些按照一个标准化的格式去输出,对于数据库内核来说影响不大,完全是可以标准化的。甚至日志输出的内容,我们也可以做一些标准化,比如错误类日志,可以学习Oracle那样,把应用中几层堆栈的报错按照顺序一起输出,而不仅仅输出最后报错点多而错误信息,这十分有助于故障诊断。

数据字典接口标准化也会给DBA与生态工具合作伙伴带来极大的便利。Tablename/table_name/tname这些字段都能表示表的名字,为什么就不能使用统一的名称呢?既然大家习惯使用dba_tables了,大家就都用这个耳熟能详的视图名称好了。国产数据库都采用标准的数据字典接口,也可以降低国产数据库的学习成本,让应用软件在不同的国产数据库之间做迁移时成本得到极大的降低。

编程接口的标准化工作实际上有一部分已经让JDBC/ODBC等事实上的标准做了。不过在一些常用的细节上,不同的数据库产品依然十分有个性。序列号的使用,Oracle用seq.nextval,有不少国产数据库做了这方面的兼容,但是并不是所有的数据库产品都这么使用。存储过程就更是百花齐放了,MYSQL系的PG系的,仿Oracle PL/SQL的三大系列三足鼎立。我们是不是也可以出一个国家级的存储过程语法标准呢?我们完全可以学习Oracle,用类ADA语法做一个标准,这个标准基本上兼容了Oracle的PL/SQL,也具有一定的独立性。

关于数据库云纳管标准实际上来自于最近遇到的一个案例。某企业测试国产数据库产品,必须在云平台上测试。这就遇到了不公平的问题,因为云平台厂家自己的数据库产品可以以RDS的形式提供,而第三方的国产数据库产品就只能部署到云主机里了。RDS部署不仅部署起来比第三方数据库方便,更重要的是RDS都是跑在裸金属服务器上的,而云主机的云盘性能垃圾的很。这样测试下来,公正性就大打折扣了。于是云厂商和数据库厂商之间就打起嘴炮来了。数据库厂商说云厂商排外,不肯把他们的数据库纳入RDS范畴,云厂商说国产数据库产品这么多,标准不统一,我们把他们做成RDS成本太高。如果大家各退一步,云厂商做一个数据库RDS纳管接口标准规范,数据库厂商各自实现接口规范,这个问题不就解决了。当然技术上不难,这个案例中实际上还是一个商务问题。

无论如何,这些标准都只是接口上的标准。不同的数据库产品的核心差异极大。哪怕我们用SQL访问起来,SQL代码都是兼容的,但是访问数据库的执行计划差异会很大,相同的执行计划算子,其性能与能力也会有差异,因此接口上的兼容性不等于能力的完全替代。以前我们做过的数据库迁移项目中,从Oracle迁移到某国产数据库上,SQL执行时间变长数倍甚至十数倍是十分常见的。不过这些问题最终都通过优化去解决掉了。我们的很多应用系统的数据库设计做的都很差,索引建的很乱,在Oracle CBO下,这一切都还不是问题,但是迁移到国产数据库上,就问题多多了。这些内功的问题,需要我们的国产数据库厂商逐步去解决,而一些接口的标准化上,实际上目前是应该做些工作了。

这些标准不需要设置为行业强制标准,而是给一些愿意让使用者用的更习惯的数据库厂商有一个参考标准。如果有一些厂家愿意参与进来,形成的小集团确实方便了用户,那么会有更多的用户会参与进来,厂家实际上也会受益。这样就能够让更多的数据库厂商也参与进来。这种靠市场发展的标准,比那些被用于招标的标准,有价值的多。​

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/299053.html<

(0)
运维的头像运维
上一篇2025-05-23 05:36
下一篇 2025-05-23 05:37

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注