下面的方法一部分相克军老师总结的,一部分是自己在找工作时的切身感受,希望能给将要转行的朋友一些建议。
一、目前学习oracle的三派人。1、开发工程师,2、网络工程师,3、零基础的学习者。
我是去年年中开始接触oracle的,自学的了半年,感觉不是很理想,就利用周末报了培训班,在培训班里学了三个月,感觉还是不够,再招聘网站上看到公司要求感觉,知识储备还是不够,总之感觉oracle里面有很多东西要学。决定重新梳理一下知识,再深入学习。
二、Oracle的重要性。各大公司都有自己的数据库,实际前段数据库(OLTP)和后台的挖掘分析的数据库(OLAP),
三、学习前提
前提:熟悉linux、unix操作系统、存储、带库。主要是管理和操作系统原理。学习oracle之前,也没有什么基础,对linux和unix完全是零认知。现在正在深入学习linux。
四、学习方法
1、sql、pl/sql(网上视频,简单入手,多看书,做实验)
座位oracle的基本功,需要大家对sql和pl/sql非常的熟悉。特别是sql里面的多表连接、子查询、各种新版本的函数,以及pl/sql里面的所有语法。建议大家拿出足够的时间来研究这两块,不要认为这是开发人员的工作,他也是DBA的重要工作,而且DBA要求更高。学习要点:多练习、多思考、多测试。
从今年面试几家公司,切身感受,面试和笔试这部分是重点中的重点,面试题目基本上就是SQL里面的多表查询、子查询、函数,特别是多表查询,一般都有decode、case函数,再难点的就是复杂查询,网上基本上都可以搜的到;PL/SQL 基本上是基础的过程、函数、包和触发器的基本语法,除非你面试的是针对性很强的报表和基础开发工作,一般这部分公司要求不高。总之,如果你想获得一份oracle相关的工作,这部分你一定要很熟悉。否则其他都免谈,再面试的时候发现一个现象,就是打字速度要跟上,这样用人单位会偏向那些打字速度更快的人。
2、oracle管理(体系结构)
这是oracle的难点,oracle技术博大精深,主要的难点就是集中在这里面。包括oracle的存储管理、对象管理、内存和进程、undo管理、初始化参数、数据字典视图、安全、latch和lock、权限和角色、资源调度、闪回、日志原理等。
知道原理以后,通过实验去证明,讲原理总结出来。
这部分跟上在面试的时候基本都是问动态性能视图的相关问题,主要是查看。还有就是整个体系结构中内存(SGA)部分结构和表空间、跟踪文件、日志等基础的原理和操作
3、备份恢复(听课、看书、多做实验、多讨论)。
有了第二部分的铺垫,这一章学习起来很有意思,前提是我们多oracle的日志原理研究得较深,对oracle的内存和进程研究的较深。策划一个完美和正确的备份计划和实施方案(具体要对分析出原理),实施备份;对各种损坏进行恢复;另外可以做一些高难度恢复实验。
这部分原来我是比较看重的,但是在实际的面试中,公司基本上很少提到方面的问题,后来想想也对,一般数据库的备份都是资深人员做的事情,大多都是写好脚本,做一个执行计划,自动备份。新员工也许你一两年都没机会做备份,恢复就更不可能让新人做了。我建议这部分了解原理即可,深入的等到你的工作岗位上再纵向深入研究。如果是像我这比样零基础的朋友,准备转行进入oracle数据库的工作,上面是我个人建议,可以把重点放在优化上。
4、优化(单实例优化)(多听课,最好听一些专题性的,深入讲解的专家课题,还有一些经典的书籍,特别是英文书)。
首先需要大家掌握一些oracle的优化方面的基础知识,例如深入分析索引原理、分区、等待事件、事件统计模型、动态性能视图、操作系统的一些性能优化和查看命令,如:top ,iostat,vmatat,sar,pamp,prstat,filemon,nmon,svmon等。
最关键的还是三件事情:oracle的动态性能视图、oracle的报告(trace、statspack、awr,addm,ash)、执行计划;对这三块要熟悉和分析出来。这个部分的分析和动手实验很重要。
这个部分是大家想获得oracle DBA一份满意的工作,这部分你要好好积累了,我面试的几家公司都要求是能优化、懂优化、会优化。当然大多朋友都有一点优化的背景,比如:查看消耗CPU、内存最多的几个SQL语句,然后再根据SQL语句,查看执行计划,最后再修改语句、测试。还有就索引的优化。这部分是大多数DBA日常干的事情,如果锁机制你很熟悉,公司一般也会留下你。因为生产库日常出现的问题基本上就在这部分解决,而且解决的方法就那么几种,所以大家尽可能把这部分搞透彻。
5、RAC(可以听听课,有了前面的基础以后,基本上自己看懂书了,因此,可以看书,也可以听一些专题课)
现在RAC的使用越来越多,学习RAC的重点还是:基础原理+RAC优化。
RAC系统的优化分为两个步骤:RAC系统优化和单实例优化;根据RAC的基础原理,能够设计高性能的RAC系统,能够分析RAC性能问题。对RAC的动态性能视图、等待事件、报告。能够看懂和分析。
RAC技术对于想获得数据库相关的工作的朋友,这部分你加分的地方,不会暂时也没什么,但是如果进入工作岗位了,这个一定要会,RAC技术很多公司都在用。
6、GC、DG、Stream、Gold Gate等。我们熟悉其体系结构、原理,一些监控性能的工具等。学习这些部分的几个点:熟悉体系结构、原理;搭建;监控(包括故障和性能);
这部分原来准备的是DG,但是实际面试的几家公司几乎不用这个HA技术,可能是DG的实际性能不太理想,也可能是Gold Gate技术更加先进,国内几个OCM的大师也偏向后者。我也建议大家把Stream Gold Gate学好,以后的自身提升这部分是应该必须掌握的。
7、Sql和pl/sql的性能优化。(多看书、多试验、多总结)。
8、综合项目的实践。
规划、搭建、测试、管理、排错、优化、分析。