欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

OCM成长之旅

程序员文章站 2022-04-17 08:53:28
写在前面的话 2016年7月,一个安静的午后,屋外夏日炎炎,连一向聒噪的知了都犯困噤了声。小憩的我,因为Oracle Certification Program发来的祝贺信打消了...

写在前面的话

2016年7月,一个安静的午后,屋外夏日炎炎,连一向聒噪的知了都犯困噤了声。小憩的我,因为Oracle Certification Program发来的祝贺信打消了睡意。今日恰逢我的儿子,小YF,半岁,还有什么是比OCM证书更好的礼物呢?看着他睡着了还露出可爱的笑容,感觉屋里的空气都变得甜蜜起来,初为人父的我总希望能给他全部的爱和良好的引导,拿到一件OCM战袍,是自我提升的一步,更是实践我要成为更好的榜样的诺言。虽然,成为OCM并不是一件多么多么了不起的事情,但至少希望将来他可以如我这次一样,能有勇气接受挑战,可以为梦想和责任付出努力,也能在不断的探索后收获属于他的成功和快乐。

回想起来,决定报考OCM仿佛就在昨天。之所以能有这次体验OCM的机会并坚持到现在,要感谢爱人的极力“怂恿”与支持,还有双方父母的理解和默默付出,否则我想我是无论如何不可能完成这次挑战的。

初识Oracle

我是2006年开始接触Oracle,我并非计算机科班出身,属于管理学派别,大四跟着保研的导师做毕业设计,方向是专利信息检索和挖掘。毕设要做的就是一个类似爬虫的系统,主要是抓取采集USPTO的专利信息,并进行社会网络分析。采集的数据就需要存储起来,开始使用的是MySQL,主要是比较小巧,但道听途说有个Oracle数据库,很庞大、很厉害,于是乎就想试试。不试不知道,一试吓一跳。好家伙,确实很庞大,光安装文件就上G了。当时使用的还是9i的版本,找师兄拷贝了安装文件,就吭哧吭哧装起来,但当时基本都用的Windows操作系统,所以安装过程就像装普通应用软件一样,不像Linux下命令行安装那么繁琐。彼时由于机器配置不高,运行起来很卡,再开个Eclipse,简直了……

我对Oracle的最初印象总结起来就是:庞大,极为消耗资源。说实话,那时Oracle于我而言是一个封装好的黑盒子,就是来存储数据,什么体系结构,全然不知,全然不晓。

对Oracle的新认识

由于工作中需要使用Oracle,相比在学校,了解的内容会更多一些,但也有限,更多时候还是将Oracle看作存数的黑盒,所作的操作也仅限于增删改查。直到2013年,在一次参加ACOUG的线下活动时,secooler大师用一张PPT,2个小时讲解了Oralce的体系结构,严谨又不失生动,才让我第一次体会到原来Oracle背后的运行原理有这么丰富,同时不禁感叹自己之前是对Oracle有多么地不了解,虚度了……再加上同单位的Oracle大神dbsnake,开了关于基于Oracle的SQL优化的讲座,我听了之后一头雾水,但冥冥之中能感觉水平超乎寻常……无形之中,也不知具体是从何时开始,就对Oracle慢慢有了不一样的兴趣。也是从那时开始定期关注一些技术博客、MOS文章,同时也重新写起自己的技术博客,参加一些线上线下的Oracle活动,了解更多关于Oracle的事情。

决定挑战篇

其实2013年第一次听secooler宣讲的时候,他提到的一个案例就是OCM的一道考题:手工建库(当时不懂,啥玩意儿,库还能手工建……)。对于OCM,自己一直怀着一颗敬畏的心,当时压根没想过自己也会经历一次OCM的洗礼。

2015年,老婆怀孕了,预产期是2016年1月。在15年11月的时候,老婆单位有两位同事想要组团报OCM,于是乎老婆回家怂恿起我来,呼喊着,“再不考就没机会了,一起报名还可以优惠”之类的口号。相比于她的半认真半开玩笑,我反倒十分犹豫,一是老婆的预产期快到了,接下来小孩出生后正是用人的时候,二是虽然不十分了解OCM,但至少知道这个是个需要实际操作的考试,非常难,何况自己本职工作不是专职的DBA,所以经验和知识储备上要欠缺很多,三是日常的工作确实很忙,不知道自己有没有额外的精力准备。可是如果不报,自己还是有些不甘,感觉如果这次机会不挑战,可能很难再找到机会了。于是乎,还是在11月的某个周末,和擦航两位小伙伴一块听了半天课,用支付宝刷了一笔可观的培训费……中午为了纪念一下,一起在世界城的餐馆腐败了一顿……说实话,那时心中还是很忐忑,不确信自己可否坚持下来……

其实,之所以能鼓起勇气接受挑战,还有一个重要原因,就是想为我的小YF做一个榜样,为他拼搏下一件OCM战袍,让他知道,爸爸经过努力,是可以战胜看似不可能赢的困难。我想他今后也能懂得,学习、工作和生活的道理都是相通的,付出不一定有收获,但不付出一定没有收获。

准备篇

由于我的小YF在1月2日比预产期提前20多天就迫不及待地来找我们了,所以16年2月之前我基本没有精力和时间去听课。直到3月初,老婆打着为了我能好好准备考试的旗号,带着小YF回了老家,要等产假6月结束前再回来。我真是十分地不舍,一想到要和他们分开3个多月,心里就不是滋味,在送他们回老家返程的火车上,我就暗下决心,一定要把握这几个月的“*时间”,努力得到真正实力的提升,也要尽力在她们回来之前搞定OCM。差不多是3月中旬左右,我正式进入了OCM的备战阶段。OCM的考试是上机考试,2天的时间考9个场景,也就是9门考试,在考试过程中,会有远在米国的印度工程师,实时监控,并有可能随时破坏你的考试环境,因此OCM考试考的不仅仅是对知识点的理解和实操能力,还要考核你临场查找问题处理问题的能力,因此想做Paper OCM是基本不可能的,需要的是在理解原理的基础上,熟练实操的能力。

OCM课程通常是按照场景来划分,授课时老师基本1天讲1个场景,这样周末2天就可以过2个场景。一般应考者都会选择在2~3个月的周末内循环听课。我第一遍听课的时候,确实有些不知所云,有些内容是以前王全安全没有接触过的,有些则是听过但理解不深的,一轮讲解过后,我都一度怀疑自己能不能一次通过考试……OCM最重要的除了了解理论体系外,就是实际操作。每个场景都有相应的练习题目,能否在规定的时间内完成练习可以说是通过考试的必要条件。尤记得第一次接触场景练习题,也曾经被题量和完成要求挫败了一次又一次……secooler大师要求考生每天0点发自己的练习成绩(主要是练习的完成时间)。开始做场景练习的时候,有些内容是真心不会,通常都是自己吭哧吭哧反复尝试反复验证,甚至有时都不一定能成功,被一个小问题折磨个1~2天是很正常的事情。这个阶段我感觉是OCM备考中最煎熬的,因为知识体系还不完善,练习经常会卡壳,身体和自信心都饱受考验。

关于练习设备:由于9个考试场景中有7个场景需要启动两台主机,而场景8和9由于要搭建RAC,再加上远程访问,更是需要启动三台主机,因此建议考生尽量使用SSD存储,内存越大越好,当然配置低一些也不是不行,只是快不快的问题。我一般上课还有简单场景的练习都是带着MBA,轻是一方面因素,最重要的是电池扛得住;而整体练习时则使用DELL,由于本机SSD不够,所以另外买了一块外接SSD移动硬盘,速度上还可以,但隐患就是一旦线松了,这块盘就废了(变成了只读盘),需要将其中的虚拟机拷贝出来,格式化,再拷贝回去再接着用。将近200G的虚拟机,单程拷贝需要将近1小时。而且不知什么原因,主机2用一段时间有可能出现启动时hang的情况,这时就需要重启机器,同时不能卸载硬盘,启动后就可以接着用了。摸出这条规律也是费了一些时间,还好慢慢习惯了。另外,为了模拟考场环境,闲鱼上搜了一个二手考试键盘,但事实证明没太大必要。

关于练习时间:由于工作比较忙,晚上有时会加班,所以我在刚开始备考的时候,基本是每天8、9点到家后一直练到凌晨1、2点,结果这么干了不到1个月,就有些扛不住了,上医院看了几次病……考虑到身体是革命的本钱,于是调整了策略,计划着每天10点睡觉,第二天5点起床,早睡早起,趁着早上这会功夫练习,这样坚持了几天,可是由于积累的问题实在太多,时间慢慢又不够用,就又变成了12点睡觉,5点多起床,晚睡早起……后来实在没法就中午吃完饭也趁着1小时的午休时间做练习。

大约在5月中旬,我过完了所有9个场景,课程大约听了3遍,按照secooler大师的建议,越早定下考试时间越好也考虑到老婆产假即将结束,6月初就会带着宝宝回京,于是乎预定了6月初的考试时间。但不知什么原因,可能是由于端午节临近,原定6月6、7日的考试被Oracle推迟到了6月14、15日,无法在宝贝儿子回来之前就拿下证书,也颇为遗憾。

实战篇

6月14号一早,不到8点,同考的4位兄弟就到了OU考场。secooler大师、郗总,还有全新老师都到场为我们打气助威,并做了仔细的考前叮嘱。当天考场一共6个人,我幸运地分到了倒数第二排,好处就是离窗户近,因为空调并没有传说中的那么凉。

第一天上午是考场景一,下午是场景二~四,5场考试,时间上很紧张,如果平时不能将练习速度提上来,考场上可能读题的时间就要占用大多半,很可能就不能完成所有要求。从小到大,中考、高考、硕士推免考试、工作面试、各种大大小小的考试,可谓是身经百战了,虽然不认为有什么不可战胜的考试,但场景一开始的前半个小时,依然感受到了强大的压力,甚至有些不知所措。还好,考试内容还算较为熟悉,此时只有自己能帮自己,稳住心情,慢慢调整,逐渐进入了状态,手工建库、创建表空间、GI、EM、冷备,一切都在掌握中。虽然中间也出了一些小插曲,EZCONNECT方式连接总是失败,后来检查发现是由于紧张导致连错了主机。还有一个未解决的问题,就是NFS做完后,v$dnfs_files视图中无记录,但创建显示成功了。每场考完之后,我们要出考场,等待考官刷下一场景的环境,几个兄弟就趁此机会交流一下,互相叮嘱一下下一场景要注意的问题,团队作战的优势不可小觑。

第二天上午是场景五和六,下午是七-九。场景五是所有场景中最重要的一个,可以说得场景五者得OCM,题量大、涉及面广是其特点,过程有惊无险,在SPA这题,之前选择了目标库11.2.0.1,没有一条SQL性能是下降的,删了任务重新选择11.1.0.7,才有了几条性能下降的SQL。场景六和七是有些关联的,场景六是安装GC,场景七是安装DG,如果之前练习的是使用GC安装DG,那么场景六就不能挂,我在做场景六的过程中,发现两台主机之间图形界面操作很慢,于是很纠结场景七是图形DG还是手工DG,中午犹豫了许久,最后为了安全起见,还是选择了手工建库,之前练习经常出错的duplicate等环节也格外小心,监听、dg_broker的配置,也是尽量放慢速度,避免漏了。场景八和九也是一个强关联,场景八是ASM,场景九是RAC,都还算顺利。小插曲就是之前的场景,心里还暗自庆幸印度人没有搞乱。到场景九了,装好了RAC,我记得用脚本测过连通性,但check end state却提示无法连接,ORA-01017,稍冒冷汗,反复尝试,回忆是不是设错了密码,alter user改了一次,可以连了,等了没两分钟,又不行了,晕,难道他们在逗我?接着改,结束前算是消停了,出考场前听见其他培训机构的一位兄弟正在和考官反映说RAC装好了之前还能访问,现在怎么不行了,不知道是不是同一个印度人在搞乱。

总结篇

两天的考试,比较紧张,规定不允许提前交卷,且真正做起来,可能不会提前太多时间完成,精力消耗很大,考前要注意储备体能。

整个OCM的备战过程,只有自己才清楚其中的艰辛,不仅是每天下班和周末的时间完全贡献出来,还要经受心理、身体上的多重考验。但收获也不少,在授课大师身上都学到了不少精髓,对Oracle又有了深入的认识。虽然可能其中的知识点,有些还未完全深入掌握,这些也是未来要改进的地方。OCM不是终点,我一直认为即使有了OCM认证,也不代表就是什么大牛了,毕竟OCM考察的还是Oracle的一些基本操作,并未涉及太深入的内容,例如,极端的故障恢复、SQL和数据库的深度调优,Internal的内容。这些都不是说经历了一次OCM,就没问题了,相反,学过之后,才进一步知道自己还有如此多的知识不清楚。遂时刻提醒自己,我还只是Oracle小白,经验和经历是需要积累的。勿忘初心,方得始终。

建议篇

总结一些自己在这个过程中认为值得注意的地方,不一定适用所有人,但希望会有一些借鉴意义。

1.准备OCM前,一定要问清楚自己是不是想清楚了,为什么要考OCM,因为往往在职的同学通常很忙,很有可能因为其他事就耽误了学习进程,进而消磨了斗志,拖个一年半载不是事儿,因此要问清楚自己的目标是什么,是否做好了准备。

2.准备过程中,练习是非常重要的,建议最好边做练习边听课,最好先做练习再听课,这样可以带着问题来听,效率更高,否则直接听课,很有可能吸收地较少、较慢。

3.设备若有条件,建议稍好一些,推荐16G内存、至少256建议512M的SSD硬盘,工欲善其事必先利其器,但这不是绝对,照样有兄弟机器配置低,照样做练习,所以不用苛求,因人而异。注意若是MBA或MBP,操作习惯上和Windows键盘有区别,考场上是Windows键盘。

4.是否有必要提前熟悉考场的鼠标和键盘?我觉得这不是最重要的,当然若有条件可以淘一些,而且现在大部分都是二手了,看个人的适应能力。

5.组团备战:微信群、QQ群,考前集中备战,这些必不可少,让你知道你不是一个人在战斗,互相鼓励,又可以查漏补缺,弥补自己的不足。

6.合理安排时间:平时工作都很忙,这就要自己安排好学习、训练的时间,早点起,稍晚些睡,抓住一切碎片时间,上下班路上可以看文档,整块时间过场景,这些都决定了备考的进度和效率。

7.注意身体,这点很重要,因为我们人生的目标绝不是仅仅一个OCM考试,这只是其中的一个历程,不要因为一时的冲动,影响了其他。

8.学习的过程中,做好总结,包括实际操作过程、不理解的原理知识,自己总结出来才是自己的财富,看别人的永远不能成为自己的知识,只有自己真正了解、实践过的内容才是最牢靠。

9.最重要的一点:坚持。因为备考过程至少要有几个月的时间,如果不熟悉可能时间更长,而且建议有持续性,不是这个月学,下个月休息,这就需要有比较强的意志力,每日0点发成绩,能不能坚持下来,这是对自己的考验,每个人会有自己的极限,会有自己的各种事情,如何克服困难,摒除杂念,取决于个人。

送给未来打算经历这个会让你难以忘怀的OCM过程的朋友们一句话,“梅花香自苦寒来,宝剑锋从磨砺出”,祝好运!