上周写了国产数据库的今天谈谈Oracle
感谢Oracle
从一毕业让我安装Oracle,我连Oracle是什么都不知道。到如今吃数据库这碗饭,真心的感谢Oracle带我进来。
而从Oracle上学到的技术,用在其他数据库上基本都能用。有差异的只要学习差异就行。复用性还是非常高的。
安全
大约5年前,2020年4月10日Oracle通过公安部“信息安全技术 网络安全等级保护基本要求”(以下简称“等保2.0”)第四级要求中数据库系统的安全防护要求能力测评。“Oracle 19c 数据库系统”符合等保2.0 的数据保护标准。
评测机构给与的测评结论:“Oracle 19c 数据库系统”具有较为完备的安全保护能力,在数据库身份鉴别、访问控制、安全审计方面、数据备份与恢复、剩余信息保护、个人信息保护方面安全功能设计完善,能够抵御一定程度的攻击。“Oracle 19c 数据库系统”基本符合等保 2.0 的数据保护标准,安全风险低。

稳定
这个上面毫无争议。
无论SQL好坏的情况下都能运行。在一些写的很复杂很差的SQL状况下也能运行。而这样的SQL在同等硬件配置下的其他其他数据库,可能就直接宕机了。
如果在Oracle上执行不动的,那么在同等硬件配置下的其他其他数据库上也基本执行不动。
现如今替换数据库最难的也在这里。防御性编程写的SQL非常复杂,存储过程还有注释,而SQL则没什么注释。导致只能堆积,不能也不敢改。根本不知道前人有多少坑。为什么这样,是因为非互联网场景的业务多少都有些复杂,有的复杂到令人发指。而这些逻辑只能通过复杂的SQL实现。
我承认大厂出品的数据库不错,但是更加适合自己体质。而且应用开发人员把原本不复杂的业务场景的逻辑都在应用侧实现。数据库基本都是单表的增删改查。如果到传统行业看看,这些能写出几千几万,乃至十几万行几十万行SQL的。应用人员是无论如何都做不到在应用层实现。而这些特别复杂的SQL在Oracle上运行的还行,能让我在这个年纪还不用7X24小时的人肉救火。
有人说为什么不优化?那么我问你,给你一个1000行的SQL,没人告诉你之前的逻辑,现在让你在这个基础上新增加一个条件或者字段,你怎么做?回答我!
目前很多应用程序写的不好,但是还能运行,很大程度上是Oracle在支持着系统的稳定性。这里真的要感谢数据库为此做出的贡献。因为这是我们国内业务现状和技术现状。Oracle作为一个通用型数据库,极大程度降低了开发人员的成本,以及运维人员的成本。
曾经和Oracle的讨论过这个问题。原厂的说,能用国产的可以用国产。如果解决不了,那么Oracle暂时来兜底吧。
可观测性
一份AWR让我能较为清晰的定位SQL问题、网络问题、存储问题等等。可以快速有针对性的给出解决方案。
也可以让我看明白到底哪些等待事件是主要矛盾。不会在一堆问题中不知道主次和先后。
要数据给数据,要量化给量化。对着这些侃侃而谈,没人能质疑我。
低代码
这个可以让DBA有机会成为全栈工程师。
尤其是在数据分析领域,又懂SQL优化,又懂业务表的关系。那自己出报表是很容易的。我曾经用这个做了一个CMDB。
HTAP和多模
这个可以让数据库架构简化:
不用OLTP 用CDC到OLAP数据库了。
数据库多模让我们如果不是深度应用NoSQL的话,那么就可以只用一种数据库就可以完成很多NoSQL的场景。(反正在我国掌握一种数据库和掌握十种数据库的薪资不能说完全一致,也可以说是一模一样)
对于多模态的支持

使得各种模态有机的结合在了一起


Oracle的JSON关系二元性也许是20年来信息科学领域最重要的创新之一
Oracle Golden Gate

强大的数据同步功能。支持各种数据库和中间件。
但是要搞得好,这需要一个团队。其实任何CDC技术都是要好几个人一起维护的。所以尽管这个成熟度最高。但是能用HTAP我还是建议大家HTAP。否则DDL和大事务对CDC的冲击还是很大的。
全生态一体化
Oracle有一体机,包含了:
操作系统
网络
数据库
中间件
存储
看看这个仅仅是四分之一的exadata的能力
除此之外还有Java。
MySQL和JAVA
说到了Java不得不提MySQL。都是从SUN公司收购时候带过来的。
MySQL和Java在被收购以后更加发扬光大。
在中国不仅仅有Oracle和MySQL方向的ACE,还有Java方向的ACE
AI
AI的东西太多了:23AI的功能图
对于机器学习的支持:
ACE
刚提到了ACE,今年最新公布的中国大陆目前现役56位ACE。昨天刚发的信念证书。
这是荣誉也是激励。