"DBA 将要失业了吗? 当引入自治数据库之后,就永远不需要 DBA 了吗?"
很显然不是,无论你是否相信,我要肯定地告诉你,上云之后,DBA 在企业将会扮演
更重要的角色。
我已经从事了 17+年的 DBA 职业,对于这方面有比较深刻的体会和理解。很多朋友担
心以后是否会失业,我们首先来看这个行业有哪些发展趋势:
1、会出现更多精细和高级的特性,每一个新的版本都是这样的。
2、在数据库中,越来越多的任务能够被系统自动完成,因此无论对于企业还是个人来
说,尽快地升级到新版本是非常有好处的,而不要等到被迫升级
3、未来在云上,对于 DBA 的要求将会更高。
因此在本文中,我将会谈一谈 Oracle 自治数据库的推出对于 DBA 的影响,同时跟大
家一起探讨 DBA 该如何应对新的趋势。
Oracle 数据库 18c 是下一代业界领先的数据库。
Oracle 在今年的 OOW 上引入了世界上第一款的自治数据库,其对应的云平台和服务以
最低的成本实现了更高的性能、 安全和可靠性的需求,并且降低了操作的复杂度,减
少了人为误操作的几率,大部分的工作能够自主地完成,减少了手动操作的工作量。
在这里我要强调一下 ”Database Cloud“ 和” Oracle 自治数据库云“,因为当我们谈到
云上的数据库, Oracle 的自治数据库云事实上是一种云端数据库 的服务。 在这篇文
章中,我们会将它称为”云端数据库“
自治数据库、云端数据库,这个话题其实可以从不同的角度进行分析,我看到的大部
分的文章中,都在讲述这一款未来的数据库有多少的优势和好处。那么我们应该重点
考虑哪些方面的问题呢?1、谁来决定数据库将处于哪个服务模式下?
2、谁将为这些资质数据库植入政策约束?
3、 对于数据库的常规任务和行为,谁有足够的认知来决定如何减少这些服务的成
本?
4、当我们有更多的选择的时候,IT 的基础架构将会变得越来越复杂,谁来决定这些系
统的设计?
很显然,这些问题的答案都是 DBA,然而,不是任何一个普通的 DBA 都能完成。为
了完成这些任务,DBA 必须对这一款未来的云上数据库有深入全面的了解。
正如我刚才所说,自治数据库事实上就是一种不同的云端数据库服务。因此,首先要
了解的内容就是如何将数据库从本地迁移到云端。关于数据库的云端迁移,请参
考: Oracle Cloud (DBaaS): Migrating Databases to Oracle Cloud Using RMAN
Backup
Oracle 自主数据库是一种具有许多已经自动化的常规任务的数据库,这些可自动化完
成的任务如下:
1、补丁 的应用
2、升级
3、系统的自主优化
但是,这篇文章的重点还没有开始:
首先我引入我一个 ACED 朋友 Tim Hall 的原话,他说,18c 的预售对于 DBA 几乎是
没有影响的,只有自治数据库的服务套件整体推出的时候才会对 DBA 产生比较大的影
响。
对于这句话要怎么理解呢?
首先,对于前半句,Oracle18c 对于 DBA 是没有影响的,它只不过是一个更高的版本
罢了。它并不是一个运行在自治模式下的普通意义的关系型数据库的管理软件,事实
上,自治数据库本身就是被设计用于今后的环境和需求的,它只是针对云上的,跟本
地的数据库并不相关。而后半句,自治数据库的服务套件对于 DBA 是有影响的。自治数据库是一款用于
Oracle 公有云上的可用的服务套件。这也就意味着本地的数据库是不可以被运行在自
治的模式下的,当然也许以后会实现。
目前有很多 DBA 都担心,自治数据库服务套件是否会让他们失业,其实这还是很远的
事情。
事实上有几种在 Cloud 上提供数据库的服务:
1、 Oracle 数据库云服务
2、 Oracle 裸机云数据库服务
3、 Oracle 数据库一体机云服务
4、 Oracle 数据库一体机云机器
5、 Oracle 数据库快速云服务
自治数据库服务套件将代表你可以签约的其他可能的服务。
接下来我们将讨论,关于 Oracle 的自治数据库,我们还应该了解哪些内容:
1、 Oracle 自治数据库或者说拯救我驱动数据库,将会在 18c 的版本中全面推出,这
与当前的 12c 的版本跨度很大。
Oracle12.1 的版本应该至少还有 4 年的时间,预计在 2021 年之前都不会被淘汰
Oracle12.2 则应该在 2025 年都会提供扩展服务,我们都知道,在一个新版本推出的时
候,很多用户都不会着急将数据库升级到最新版本,而是到需要响应的服务或者新的版
本的扩展服务将要到期的时候才会升级。这样考虑的话,Oracle18c 要被真正大规模投
入生产环境的话,还是需要很长的时间,
目前,Oracle 自治数据库是针对 Exadata 设计的,我们知道 Oracle Exadata 虽然很
强大,但非常昂贵,因此很多用户都不会选择,尤其是对于一些中小型的企业来说。
因此,DBA 们不用担心,从目前来看 Oracle18c 并不会完全自治,而自治数据库也不
会完全取代传统数据看的运行机制。
接下来我们要讨论几个在比较重要的话题:1、 Oracle 18c 并不是自治的数据库服务,反之亦然,这是两个概念
2、自治数据库服务组件目前只适用于 Oracle 公有云服务
3、根据目前的情况,自治数据库服务组件仅支持 Exadata 的环境。(当然也许以后
会变化)
4、 Oracle 18c 只是数据库的一个新的版本而已
当我们了解这些之后,我们就可以很确定地说,自治数据库的推出,对于当前运维本
地的 DBA 并没有多大的影响。但 这并不意味着面对云的趋势和与数据库的趋势,我
们不需要做改变。我们只有 深入了解新的技术和方向,了解其优势和不足,提前做准
备,才不至于被新的浪潮打得措手不及。
接下来我们聊一下 Oracle 的自治数据库中一些最吸引人的一些功能和特性。毕竟
Oracle 自治数据仓库云在今年 12 月份就推出了。
自动应用补丁:在当前的情况下,如果你想给数据库应用补丁集的话,过程是很简单
的。到官网查询最新的补丁集,并根据安装文档和说明进行,很快就可以完成。
因此,这种流程化的手动操作很快被系统自动化的程序来实现也是预料之中的。
还有一些补丁集在应用的时候,是需要停机的,因为程序会对系统中的二进制文件进
行修改。但这种情况 Oracle 很可能也已经有了相应的自动化实现的机制,其实只要能
够将意见任务分解成一些按顺序的步骤,那么就有可能通过系统的自动化实现,因
此,对于打补丁这样的流程化的工作,自然而然会成为首先要自动化的任务之一。
升级:在使用 databse cloud service 的时候,如果要升级一个云中运行的数据库的
话,唯一的办法就是创建一个新的服务,在这个新的服务中,有一个专门的计算节点
我们可以用来完成升级数据库的过程。不过我们要明确一点的是,在 PDB 的管理方
面,Oracle 努力建立了很高级的机制,比如我们能够对 PDB 进行热克隆,在不影响
业务和运行的情况下,将 PDB 从一个容器迁移到另一个容器当中。这些功能从本质上
来讲,跟在线迁移数据文件的原理是差不多的,但实现的级别更高级,因此我们看到
Oracle 的技术是越来越成熟了。
像是升级这种工作,也能够很快被定义为:比如在 PDB 上需要完成哪些任务,在
CDB 上需要做什么样的配置保证数据库升级之后能够正常地运行。而且我确定,这些
工作将能够在线的完成,无需关闭数据库。从这个角度来讲,自动升级的技术跟我们现在在本地数据库上使用的技术本质上并没有区别,只是说在一个新的服务模式下,
这些技术可以在更高的级别进行应用。
接下来的内容,我的 ACED 朋友 Tim 帮助我解释清楚了一些元素,能让大家更好地理
解 Oracle 18c 数据库。以下我引用他的原话“Oracle 已经解释了自动升级和打补丁
的过程在 18c 数据库中是如何实现的,针对的是 18c 运行在 Exadata 环境下的数据
库,由于 18c 支持滚动进行升级和打补丁的所有过程,包括 OJVM,针对 Oracle 提
供的服务,也能够进行在线打补丁”
我们来详细解读一下 18c 的一些新特性如何实现:
自我优化:这个听起来很复杂,事实上是很简单的原理。在当前的环境下,当我们使
用数据库中一些 adaptive 特性的时候,数据库相当于在进行自我优化,比如自动创建
索引等,这些都是在线完成的,同时,在数据库中加入 AI 的引擎对数据进行更好地收
集和分析处理,之后体现到 SQL 查询的工程中,并不是一件很难的事情。
也就是说,自我优化就是通过 AI 程序进行分析后在使用类似 adaptive 特性影响 SQL
的执行路径的选择等。
对于以上系统能够自主完成的一些事情,我们来看一下其执行的频率:
1、应用补丁集:应用补丁集并不是一项频繁的任务,定期打一次,执行频率很低。
2、升级:频率更低,一般数据库版本好几年才更新一次,但对于绝大部分的客户来
说,并不会紧随着新版本的发布就着急升级,因此这样的操作的需求就更少了。
3、自我优化 :频率会很高,几乎是持续在发生,因为数据库中数据变更是很频繁
的,对数据进行增删查改,几乎都会用到相应的优化,也就是说,这个功能的启用会
开销很大。我们知道在当前的数据库中,有 tuning advisors,在我们的经验中,效果并
不是太好。很多时候,我们采纳了 advisor 给出的优化建议进行调整之后,性能反而
更差了,那么在自治数据库中自动优化的特性将会达到什么样的效果呢?如果真的很
完美,能够在真实的应用场景中进行很好的优化,那的确是会减少对 DBA 相应的需
求。
因此,有一个很重要的事情就是,在没有百分百的肯定下,你觉得一个企业有多大的
可能会完全采用系统的自我优化,而不附加任何的人为检测和控制。我认为这样的可能性是很低的,因而优化要考虑的因素很多,除了 SQL 本身,还要考
虑应用的逻辑,架构的设计,甚至一些政策限制等等,很多时候,人为在进行优化的
时候都做不到完美顾及每一个方面,何况是机器。
我们举一个简单的例子,在一些环境下,Oracle Dataguard 有自动 failover 的机制,
有时候在数据库中发生一些人为的错误导致数据库会自动进行 failover 的切换,事实
上这些场景我们并不希望切换。 因此为了避免自动 failover 带来的影响,很多企业都
很怕使用 FSF(Fast Start Failover),该特性虽然功能很好,但总是会在系统中应用
很多系统并不允许植入的数据。
综合来讲,我认为自主数据库将会在很大程度上减少对 DBA 工作的需求,但并不能够
完全取代 DBA 的存在和作用。
自治数据库向用户承诺了以下优势:
1、减少管理时间
在基础架构搭建上,在升级和打补丁上,在保障高可用上,以及在性能有划伤,时间
都将大幅减少
2、增加了创新的时间
在数据分析,数据政策,数据安全以及在数据库的设计上,都将需要花更多的时间。
因此,上云之后,DBA 必须增强在安全方面的管理技能。
那么,重点来了,面对 Oracle 的云端数据库,DBA 的未来将是什么样的?
17 年前,那时候我刚开始做 DBA,那个时候设计一套数据库架构是很简单的,只需要
决定将数据库安装在什么环境下,比如服务器,大型机或者在一些特定的场景下,是
安装在桌面机器也就是 PC 上的。
现在数据库可选的部署环境很多,比如服务器,虚拟机,集成式系统比如 Exadata,还
有很多其他的选择。
还必须决定数据库将植入何种架构,比如最通用的本地的选项,私有云,混合云,集
成云,而随着 18c 的推出,选择还在增多。那么这种情况下,谁来决定将数据库部署在上面环境下,以何种服务模式部署,当
然,还是 DBA。因此,不是不需要 DBA,而是要求 DBA 要懂得系统以外更多的知
识,要了解业务,了解平台等。
我把现在的 Oracle DBA 分为以下三类,他们的方向如下:
第一类:日常工作只围绕一些最基础常规的任务展开,比如打补丁,扩容等等。那么
当自治数据库推出后,如果他们不努力求变的话,很可能会失业
第二类:在运维数据库的同时,还做 IT 相关的其他工作,或者在其他领域也有比较丰
富的经验,那么这类 DBA 就可以通过各类知识的全面学习,为公司做更重要的决定,
而不局限于数据库。这就是我们常说的,从 DBA 到架构师的转型。
第三类:对于那些决定在 Oracle 领域深入走下去的 DBA 来说,由于系统变得越来越
智能和强大,对 DBA 的要求也越来越高,因此这类 DBA 需要努力学习跟多的知识,
去了解业务,了解云,了解所有在云上需要到的技能,才能在 Oracle 众多的选择中
做合理规划设计而不至迷失。