排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
国产数据库适合搞国家标准吗
国产数据库适合搞国家标准吗
白鳝的洞穴
2022-11-30
284
前阵子有个企业的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下,这一切都还不是问题,但是迁移到国产数据库上,就问题多多了。这些内功的问题,需要我们的国产数据库厂商逐步去解决,而一些接口的标准化上,实际上目前是应该做些工作了。
这些标准不需要设置为行业强制标准,而是给一些愿意让使用者用的更习惯的数据库厂商有一个参考标准。如果有一些厂家愿意参与进来,形成的小集团确实方便了用户,那么会有更多的用户会参与进来,厂家实际上也会受益。这样就能够让更多的数据库厂商也参与进来。这种靠市场发展的标准,比那些被用于招标的标准,有价值的多。
数据库
oracle系统
oracle数据库
数据库接口
oracle
文章转载自
白鳝的洞穴
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
文章被以下合辑收录
老白洞见:数据库国产化之旅(共127篇)
本合辑汇集了资深专家徐戟老师(笔名“白鳝的洞穴”)的深刻洞察,深入分析国产数据库在国产化浪潮中的发展机遇与面临的挑战。内容丰富、观点独到,旨在为业界同仁和关注者提供一份全面、深入的指南。
收藏合辑
采集到收藏夹
评论
领墨值
有奖问卷
意见反馈
客服小墨