曾几何时,DBA一度被视为越老越吃香的职业,而从事数据库霸主Oracle的DBA更是风靡多时的技术人择业之选。
但随着Oracle自身技术的不断提升和完善,人手的操作不断被削弱,Oracle DBA的可替代性越来越强,发展路线也越来越窄。加之其它数据库的兴起、去IOE、云化以及AI的来袭,Oracle DBA该如何重塑竞争力、突破重围谋求更广阔的发展?
今天我们将锁定Oracle数据库,通过定向采访的方式,汇集梁敬彬、杨志洪、杨建荣、韩锋和黄浩5位多年Oracle技术大前辈的经验之谈,为Oracle DBA的前行航路提供一些真实的浮标。
认真读完本文,你将可以了解:
一、入门篇
1、入行必读:Oracle DBA的从业前景
2、快速入门:自学Or培训班?
3、推波助澜:读什么书学起来事半功倍?
二、进阶篇
1、Oracle DBA从初级到高级的评判标准
2、初级DBA绝不能踩的坑
3、中级DBA避免重复、提升技术的门道
3、高级DBA突破天花板的思路
三、转型篇
1、云时代下Oracle DBA的出路
2、Oracle DBA如何转型架构师?
3、转型管理岗前必备的能力和综合素质
4、如何兼顾技术的巩固和管理能力的提升?
四、跳槽篇
1、何为恰当的跳槽时机?
2、怎么跳槽有助升职加薪?
3、跳槽后,你为什么还不满意?
4、有哪些跳槽也无法解决的问题?
五、杂谈篇
1、DBA如何处理好工作和生活两者的平衡?
2、进阶路上,最不可缺少这些书籍的陪伴
3、HR/管理者最看重的DBA特质
4、AI时代,DBA真的会失业吗?
5、如何与开发和谐共处?是否要懂开发和业务?
Q1:云计算的普及导致了Oracle数据库的管理集中化,在这种趋势下,Oracle DBA的从业前景如何?
杨志洪:2013年,《Oracle核心技术》翻译出版的时候,作者Jonathan Lewis接受采访谈过这个观点,认为5年后传统DBA的数量将会大大减少,小规模企业将不再使用DBA。今天看来,小规模企业将不再使用DBA的预测是对的,但DBA的数量并没有减少。相反,DBA的需求量从没像今天这么多,不管是我们自己团队还是身边的朋友,都在大量招聘DBA,问题是很难招得到。
这是为什么呢?从职业技能来看,今天的DBA跟十年前要求掌握的东西不太一样了。今天我们招聘DBA,会非常重视他的沟通能力、综合能力,而不只是某项或某几项具体的技能。对我们来说,具体技能实在是太容易传授了,有PM说,给他一个新人,3个月就能成为一名伪中级DBA。
那么现在还该不该进入DBA这个行当呢?这个行当是相当辛苦的,一线工程师每周通宵一次,其它时间八九点下班,算是正常的吧。甭管你是在运营商,还是银行或保险,电商就更不用说了。但是如果没什么更好的选择,可以说,进入DBA这个行当,至少是养活自己的一个有效途径。
至于这个行业的前景如何,我觉得有点杞人忧天了。数据越来越成为企业的核心资产,作为这些数据的管理员、使用人员,离数据最近的这些人,是有机会驾驭数据的。当然,跟采掘原油的工人一样,如果我们只是停留在会操作的层面,前途肯定渺茫。
杨建荣:云计算和数据集中化管理都是趋势,对于DBA来说,需要接触的环境会有一个量级的提升,对工作的精细程度也会有要求。DBA这个职业任重道远,但前途是光明的,至于要不要选择这一行,我觉得需要认真考虑一下是否只是单纯为了薪水,还是说兴趣的成分更多些。毕竟每个职业都有围城之困,我只能说没有主见,就没有远见。
黄浩:对DBA来说,集中化管理是件好事,正好可以腾出手来大鹏展翅大展身手。从这个角度来说,未来的DBA将会更专业化,入行的门槛更高,价值也会更大。
Q2:想快速入门Oracle DBA,自学还是参加培训班?
综合黄浩、杨建荣、梁敬彬三位老师的建议,总结如下:
Q3:读什么书有助于快速入门Oracle DBA?
首先,在对于书的挑选上:
杨建荣:
入门:《Oracle数据库技术实用详解:教你如何成为10g+OCP》
本书是我当年入门的书籍,翻得都要变色了,对我影响很大。虽然现在已经到了11g、12c,但体系结构里很多东西还是可借鉴参考。
体系结构:Thomas Kyte《深入数据库体系结构》
毫不夸张地说,这是Oracle DBA书籍中的圣经级大作。
高可用方案:陈吉平《构建Oracle高可用环境》
其次,在看书的方法上:
黄浩:一不能看浅,二不能看杂。
市面上关于Oracle DBA的书籍汗牛充栋,参差不齐,若要选一本介绍Oracle体系结构的书籍,《Oracle编程艺术:深入理解数据库体系结构》就不错。
关键要学会看书,不能走马观花,一定要坚持看下去,要领悟其中的原理。
看完后,也不能束之高阁,一定要再次看,如果看第二遍有不同的收获,那就说明你真的掌握了知识。要知道,大师巨匠的精髓岂是我等凡辈一两次能领悟的。
最后,必须明确的思想是:
杨志洪:
任何书都有局限性,没有书可以让你快速入门做个DBA,但一定有一套体系可以让你成为一个相对合格的DBA。
最好的书,其实是官方文档,特别是概念和管理员手册这两本。理论与实践结合,再加上自己小宇宙爆发,成长自然是迅速的。
如何可以,找一个大的运维团队,他们一定有相应的运维规范、各种SOP、做事的套路。跟着学习半年,可能比考个OCM更受人欢迎。
Q1:作为Oracle DBA,如何从初级成长到高级?各阶段的标准分别是什么?
韩锋:
杨志洪:所谓的初级、中级、高级,最开始容易懵,其实每家公司对它的定义是不同的,因为在背后定义它的人不同。
举个例子,我们同时有两个保险公司客户,要两名高级DBA驻场。当仔细看了任职要求之后,我们大吃一惊,一家是要求有3年以上大型系统维护经验,另一家则要求懂各种分布式数据库、能设计秒杀数据库,并有团队管理经验。这完全是两种不同层级的需求,如果用我们的职级来衡量,就是跨越了P4到P8的样子。所以,尽管看起来是同一名词,大家的认知也会有所不同。
再借傅盛《认知升级三部曲》里的图来说明一下,很多人可能都到不了第三个层次,或者说不必达到这个层次,就找到了更适合自己的方向了。
黄浩:我是一个实用主义者,在我的眼中,只有能解决企业之需的合格DBA,而没有初中高级之分。
我见过一些伴随企业一起成长的DBA,他们一开始可能是由程序员转DBA的,搭建了企业的第一个数据库。虽然他们的知识和技能不能比肩大咖,但他们却能把企业的数据库打理得井井有条,这样的他们在企业里不就是高级DBA吗?
Q2:对于初级Oracle DBA来说,有哪些常见的坑绝对不能踩?
梁敬彬:DB生产环境中所有没有被授权的变更动作,都坚决不能做!
黄浩:绝对不能在生产库上做任何演练,哪怕是一条小小的SQL语句,也必须要在开发库上执行,确保万无一失才能部署到生产库。
杨建荣:比如数据没备份、不按流程来操作、擅自做决定、正式操作不测试等都是一些很基本的坑,如果你愿意就跳进来吧,坑位还多着呢。当然不可能完全杜绝犯错,犯错的过程也是一个学习进步的过程,对于新人来说,不经历风雨,怎么经历暴风雨?
韩锋:作为初级DBA,要对数据库保持一颗敬畏之心,并养成良好的运维操作习惯。对常规的操作要烂熟于心并理解其内部原理,不要把一些非常规的操作手段当“秘籍”。
杨志洪:作为一个管数据的人,最必须重视的就是数据安全,敏感数据不能乱动,否则后患无穷。我之前还写过一篇《运维DBA的四大纪律9项注意》,不管老鸟小鸟,都建议看看。
Q3:对于中级Oracle DBA来说,怎样才能避免陷入重复性工作,花更多时间和精力钻研技术得以提升?
综合梁敬彬、杨建荣两人老师的建议,总结如下:
Q4:对于高级Oracle DBA来说,当技术和经验都已触天花板,除了转做管理,还能怎么寻求技术上的突破?
韩锋:天花板是一定存在的,是否能突破有时并不取决于个人努力程度。
突破口:
将Oracle的经验复制到其它数据库上,扩展技术领域;
结合实际业务场景,寻找数据库与业务的最佳实践;
在专业领域内,不断积累提升;
扩展工作职能,增加例如DevOps、大数据等相关领域学习。
梁敬彬:永远都没有天花板,因为技术是不断更新的。
除了转管理的突破就是考虑一些大局观的突破,尽量让自己的知识宽一点,尽量往业务靠,往整个应用系统的架构靠。
黄浩:真正的高手从不说自己已触天花板,学无止境呀。
当然,书到高处,眼界为梯,你的眼界决定了你的高度,所以,一定要不失时机地提升自己的眼界,站得高了,自然就看得远,看得远了,自然就知道路在何方了。
杨志洪:天花板是自己给的,界限也是自己给的。
管理总是需要极少数人的,别总盯着管理。至于怎样突破,心之所至兴之所至,看你想要什么了。不知道自己想要什么时也要多去学,不做是0,做了起码是0.1。
Q1:面对云时代的职业危机,Oracle DBA的出路在哪里?该往哪些方向转型?
杨志洪:出路,就在路的尽头。遇到岔路口,你就知道怎样转了。
汽车出现的时候,马车师傅非常着急,硬生生逼出来一个红旗法案,要求汽车开的速度,不能超过前面的红旗。你今天还能看到那红旗拦汽车的马车师傅么?
韩锋:我认为有以下几个主要转型方向:
1、深研技术,向数据库技术专家方向发展;
2、运维与开发并重,由传统运维DBA逐步转型为开发DBA;
3、泛化数据库概念,做数据管理者(DA);
4、由传统数据库运维,转向更宽广的运维开发(DevOps)方向;
5、将业务与数据库相结合,做业务领域内的专家;
6、转型做技术管理者。
Q2:Oracle DBA如何向架构师转型?
韩锋:架构师,对人员的技术能力素质有着更宽泛的要求。
除了对数据库领域知识的掌握以外,还需要对整个IT技术栈有一定认识。特别是其核心能力,是对复杂问题的分析、判断能力,化繁为简,通过技术手段加以解决的能力。这与DBA的核心诉求,差异还是比较大的。
如果考虑转型,是需要有个相对较长的再学习过程。
Q3:若从技术岗转向管理岗,该如何调整思维?应具备哪些能力?
杨志洪:做管理,要忘掉自我的能力,去培养团队成员。
就我目前的认知来看,管理者应该要会聊天,聊天才知道领导要什么、团队成员要什么、客户要什么,在时间资源有限的前提下怎么才能满足上下各自的要求。
对团队来说,管理者还要能做垃圾桶和降噪器,让团队成员愿意向你吐槽,而你又能作为领导和同事之间的转换器,这也是一门学问。
最重要的素质是,能沟通,能抗压,心思敏捷,还要精力好,哪个团队老大不是半夜邮件都速回的,是不?
韩锋:从技术岗转向管理岗,首先需要转变的就是管理对象的差异。对个人的软性技能要求更高,比如统筹规划能力、时间管理能力、人员激励能力等。这些都是需要在转型中,不断学习提高的。
黄浩:技术好比数学,非1即0,答案具有确定性;管理则如语文,浓妆淡抹总相宜,答案会因时制宜。因此,做管理,无非就是管人理事,其一情商要高,其二要有大局观。
Q4:处于管理岗上,如何在不丢掉技术的同时提升管理能力?
韩锋:在管理岗上做技术,需要摒弃掉过于追求技术细节的问题,学会抓大放小,抓住问题的技术本质。同时,需要保持对技术足够的敏感度和前瞻性。至于管理能力,则需要在工作中不断积累提高。
黄浩:在管理岗位上,首要任务是提升自身的管理能力,参加培训是一个不错的选择,毕竟他山之石可以攻玉。但是关键还得靠自己去领悟实践,去有意地改变自己的思维,要站在一个管理者的角度思考问题。
杨志洪:如果你真对技术有兴趣,想丢也丢不掉的,扎克伯格还偶尔写代码呢。
Q1:何为恰当的跳槽时机?
杨建荣:任何工作你都需要深刻认识到,不要错把平台当做你的本事,你离开了这个平台,还能剩下的东西,那些才是你真正的本事。
我们从事的工作本质上来说就是为公司创造价值,而这很多时候都不是1:1的对应,很可能有几倍的出入。明白了你所处的位置,你工作角色的意义,如果看不到希望,或者和你的规划有较大出入,可以考虑跳槽。
韩锋:每个人选择在一家公司里工作,都是找到了公司与个人利益的一个平衡点。比较常见的如:职场新人通过公司平台快速提升工作技能,公司则利用新人初期薪资较低,降低整体运营成本。当这种平衡被打破,例如公司不能提供你所希望的上升舞台,就可以考虑跳槽。当然,要避免几个问题,比如频繁跳槽(特指不满一年就跳槽)、为了蝇头小利而跳槽等。
黄浩:跳槽的原因无非两点:发展空间和薪资待遇。还有一个不得不提的原因,那就是个人身体健康问题,除此之外一切跳槽的理由都是逃避的借口。
Q2:怎么跳槽更有助于升职涨薪?
韩锋:
1、精准的个人定位,避免盲目跳槽;
2、寻找上升期的工作,可以快速积累经验,为日后打下基础;
3、知名大公司,可以学到领域内比较领先的技术和管理,等再次跳槽往往在职位和薪资上会有较大提升。
杨志洪:我只主动换过一次工作,是因为中国那么大,我要出来看看。涨薪谁不想,问题多少是个够呢?我的看法是,踏踏实实把事情做好,面包和牛奶都会有的。
黄浩:空中转体360°前空翻两周半,这样跳必然升职涨薪:)
Q3:跳槽后对自身工作内容不甚满意,怎么办?
韩锋:首先要明确不满意的原因,是对职位定位不准确?还是对个人能力评估有误?是对所在公司、团队环境不适应?还是无法在新团队脱颖而出?针对不同情况,再考虑后续规划。
强调一点,没有完美的公司和职位,不同公司都会有各自的问题,要学会适应不同的环境,在各种环境下,都能够快速自我成长。
杨建荣:新的公司和岗位总要有一个适应的过程,如果确实是公司的问题,那在选择下一家公司的时候还是要再慎重一些。但频繁跳槽本身不是一件好事,有些公司在招聘的时候还会有一个工作年薪和跳槽次数的系数。
Q4:有哪些常见问题是跳槽永远无法解决的?
韩锋:快速提高技术。很多人试图通过频繁跳槽来快速提升技术,这其中存有误区。其实,在不同公司都可以找到技能提升点,只不过有些是主动的,有些是被动的。在任何公司,只要勤于观察,都是可以找到发展之路的。
杨志洪:解决不完的故障。
黄浩:很显然,5*8的工作制是DBA永远的奢望。
Q1:作为DBA,怎么才能做到工作归工作、生活归生活?
梁敬彬:这个问题问得好,很多DBA甚至带上网卡背着电脑上街买菜、接送孩子,怕随时电话来了要立马处理,听起来真是一个悲伤的故事。我认为想做到工作归工作、生活归生活就要做到这几点:
1、DBA有人员互备;
2、有很好的预警系统,能把大部分问题消灭在萌芽阶段;
3、有缺谁地球一样转的工作流程规范。
Q2:有什么书籍推荐给广大Oracle DBA们学习吗?
杨建荣:在前面提到的基础上,我再推荐三本吧。
《Oracle核心技术》,这是JL的大作,DBAplus社群联合发起人杨志洪等几位大牛翻译而成,书很薄,但能够读出来很多未曾想过的内容,对于了解数据库内核技术相当有用;
吕海波的《Oracle核心技术解密》,这本书就如同海波在拿着一把锤子敲开了内核大门,读者能够通过另一种角度看到数据库内核的东西;
我自己写了一本《Oracle DBA工作笔记》,把一些工作中碰到的问题分为数据管理、数据迁移、性能优化三个层面来介绍,也是自己平时整理的知识点和案例的归总,读起来相对比较轻松。
韩锋:书籍很多,个人对SQL优化很感兴趣,推荐大家看看《基于成本的Oracle优化法则》和崔华的《基于Oracle的SQL优化》。
梁敬彬:除了我自己写的《收获,不止Oracle》和《收获,不止SQL优化》之外,我推荐Thomas Kyte的系列书籍,比如《Oracle Database9i/10g/11g编程艺术》,堪称经典!最后要强调的是,Oracle的官方文档,尤其是concept,是必须要看完的!
杨志洪:初级的看官方文档吧,高级的可以看看Jonathan Lewis的几本书。千万不要想着速成,那都是骗人的。
Q3:作为HR或管理者,招聘DBA时都看重些什么?
梁敬彬:要看是招聘新人还是老手,两种思路不太一样。
招新人会注重了解他的学习能力、抗压能力;招老手则会注重通过与其交流工作心得,来观察其行为是否符合规范。
但不管是新手还是老手,有两个共性是会特别注意的:1、低调谦逊,有敬畏之心;2、勇于突破,能适应时代发展。
韩锋:DBA管理的是企业最为核心的资产——数据,因此对管理数据的人自然要求较高。核心是看重人员稳定性及工作严谨度,从某种意义上讲,后者甚至超过了对技术的要求。
Q4:AI时代,机器将代替人类维护和优化数据库,DBA有可能面临大量下岗的风险,对此有何看法?
梁敬彬:这是一个不可阻挡的趋势,所有DBA都要有危机意识,尽量多理解业务,站在更高的层面主动往具备输出业务模型的能力去靠拢。比如能提出数据库优化模型、能提炼出运维的特征项等。这样的DBA才能顺应潮流,不易被淘汰。
另外在优化方面,AI主要是从优化方法论本身来进行学习优化,还很难去理解业务层面的知识,如果DBA对业务比较熟悉,SQL改写优化往往是彻底颠覆性的写法,这是AI难以做到的。
所以DBA如果能做到:
1、对数据库优化和管理知识有非常深刻的理解,具备梳理出模型的能力;
2、对数据库背后的业务场景非常熟悉,能直击优化本质。那就可以高枕无忧了。
Q5:在DevOps的背景下,Oracle DBA如何与开发人员和谐共处?是否需要懂得开发和业务?
黄浩:首先,作为一名DBA,在指导开发的时候(比如建模、开发规范),应该放下架子,和颜悦色,平易近人;而在处理紧急问题(如性能问题、开发难题)时,就需要端起来,雷厉风行,手起刀落。有此福威二法,自然能和谐共处。
同时,只有懂得开发和业务,才能更好地维护和管理数据库。比如建模,有了专业的指导,数据库的模型自然就健壮了;再比如性能优化,如果懂得业务,优化起来就顺当得多。
这些本是DBA的份内事,只是前期被一些繁琐的事非耽搁了。现在有了DevOps,这些工作就变得可行了。
梁敬彬:为啥不能和谐共处?是因为DBA找到影响性能的SQL代码,开发人员为此还要进行改写优化所以很郁闷吗?我倒是觉得大多数情况下开发人员和DBA都是相处得很好的,尤其是善于优化的Oracle DBA更是能成为开发人员的救星,帮他们提升代码质量。
而在精力允许的情况下,DBA掌握了必备技术后再去了解开发和业务,肯定是好事。但如果精力不够,还是重点把自己岗位的技能先学好。
对DBA来说,开发和业务应该是重点先选择业务来了解,后续再去了解开发。业务的理解是非常重要的,对DBA的工作会有很大帮助。
正如采访结束时,杨志洪老师的一句感叹:“拥抱未来,努力使自己成为站在未来的人”。作为大数据时代下管控企业核心资产的DBA,更是应该提前武装好自己,在挑战面前主动出击,在机遇面前学会抉择。而这里就有一个你必须把握住的重大机遇——