总结了一下大家的意见,也加了一些个人的看法,Oracle的学习路径,可供参考:
初级阶段:可以从OCP教材开始,还有文档中的Administrator's Guide、Concepts、Performance Tuning Guide、Backup and Recovery Advanced User's Guide、Backup and Recovery Basics。特别是Administrator's Guide、Concepts、Performance Tuning Guide,要详细阅读。多操作,多实验。
中级阶段:不断的操作,加上metalink上看各类文章,自己总结。有一个很重要,到Oracle官网上,找到OCM的考试大纲,按图索冀,逐个击破,之于考不考OCM,另当别论。书的话,可以参考《9i&10g编程艺术》,《基于成本的oracle优化法则》,《大话集群rac》,《ORACLE RAC日记》等等。
高级阶段:继续看书(优化,特性,集成)往深度广度学。可以以如下内容为专题,逐个钻研:
1、存储格式:数据文件格式、数据存储格式等
2、共享池方面:解析流程及原理,共享相关于Latch、Lock、Pin,Row cache lock原理,相关的等待事件。以及共享池内存分配机制。
3、Buffer Cache部分:逻辑读、物理读流程及原理,相关的Latch、Pin,还有相关的等待事件。
4、Redo:Redo的产生流程、相关Latch、等待事件。
5、Undo:Undo的空间使用规则、提交和回滚的原理
6、备份、恢复机制原理,学会使用BBED
7、ASM
8、RAC
可以参考DSI。还有Liwes的新书Oracle Core。
现在闲来无事,就谈谈Oracle的学习方法吧。
1.初接触Oracle,肯定会被其复杂的体系结构,众多的概念给搞混,如process和sessions,restore和recover等等,接触Oracle前3个月肯定会觉得这些概念非常抽象,又觉得无重下手,到处是重点,处处又把握不住,朋友,坚持吧,学习Oracle毅力很重要。
2.通读Oracle官方文档的concepts章节,至少需要通读2次,英文能力一般的朋友第一次阅读时可适当参考中文文档,因为很多术语英文很难理解。网上有很多关于concepts的中文翻译,其中翻译的比较出色当属于zw1840。第二次阅读时必须抛弃中文资料,英语阅读再困难,也要将其啃下来,因为阅读英文资料,一:会有自己的想法,二:好多好的Oracle资料都是英文的。
3.学习Oracle初级阶段少泡论坛,因为那里水平参差不齐,再加上自己水平有限,判断能力有限,他们给出的答案很多都是错误的,很容易形成误导。
4.遇到问题,先静下来想想,自己先尝试解决问题。
5.学习Oracle讲究一个“悟”字,即不要浅尝辄止,遇到问题,不是解决就好了,多想想为什么会产生这样的问题,怎么样才能避免,这个问题的背后是什么,牵扯到的知识点有哪些,等等。假如你是Oracle的设计者,你会怎么样设计Oracle?当自己的理念和Oracle的理念产生冲突时,99%是自己错了,多想想这个模块Oracle为什么要这样实现,这样实现会带来什么好处,两者相比较,就会发现差距,不知不觉会慢慢参悟Oracle的精髓。
6.实践永远重要于理论,书看的再多,而不会用sqlplus "/as sysdba"操作一系列命令,也是徒然。
7.在形成自己有对Oracle的判断力之前不要沉迷市面上的Oracle书籍,沉下心修炼自己的内功,更为有益。
8.互联网的神奇之一是产生了google这样的好工具,查阅资料比baidu好多啦、
9.自己研究Oracle的alert日志会给自己带来意想不到的成果,尤其是研究启动过程部分
10.千言万语,兴趣是第一位的,Oracle好像是一杯醇酒,越品越有味,不知不觉醉心于此。
选择oracle其实在选择时候就要做好心里准备,要明白几点:
首选,学习技术本身就是一个很繁冗和单调的过程,要耐得住寂寞,还要用你脑袋去推敲
其次,就是学习oracle的方式也是循序渐进的,没有捷径,不要老想着一朝一夕成大师
还有,就是学习oracle,本身要不断的去实验,甚至到一定的程度你需要去模拟bug
最后,在选择了DBA就必须遵循一个原则,保证数据不丢失才是你最主要的责任
那么学习oracle的路线我个人建议是:
1.《concepts?把概念当成上大厕时候的读物吧,读个1-2遍,拼oracle概念,我想基本能砍出个所以然
2.光知道概念还是不够的,为什么呢?!那是纸上谈兵~现在大家都不喜欢纸上谈兵的人,所以看这本吧《administrator's guide》或者tom的编程艺术,但是从我个人角度来看这个阶段看编程艺术会吃力点
3.看选择开发DBA还是管理DBA,这里大家就别喷水了,没有人是全才,DBA也是有方向的,如果你想做一个兼职开发和管理的DBA,我觉得没个7年的积累还有这样的大环境(职业)是练就不了这一身功夫的,小才选择的是管理方向,所以对于开发DBA的内容我是有点2的,但是管理上我建议还是看
这个阶段直接开始看《perforence tuning guide》当然了有人带可以开始阅读DSI 405
4.看书吧我估计不够,有一些资料是混淆的,没有很正规的被编译成书或者官方不提供成型的文档,所以这个时候用度娘,谷狗的熟练程度也会直接影响你的成长速度,别说什么百度DBA,谷歌DBA…只要能解决问题的DBA,就是好DBA,并不是说谷歌或者百度的DBA就是菜鸟,我还见淘宝的原厂的大师遇见问题时候百度谷歌搜索呢,所以谷歌百度不可耻,别把学习oracle和廉耻心挂接在一起。
5.看完以上的,我觉得你现在需要有一个oracle的产品系统的框架了,你需要好好的整理下oracle 数据库有哪些结构,每个结构功能,深化部分的原理等都可以详细的去琢磨,去测试,这是一个长久的过程,我觉得这个过程很鼓噪,但是也很让我心动,因为有征服的快感!!!有了快感你就得喊!!所以很happy
当然了 上面只是学习的途径,但是我觉得所以的DBA都必须熟悉掌握RMAN以及sqlplus的备份恢复技巧,一个合格的DBA必须要有灾难恢复处理能力,所以建议大家学好备份和恢复,rman的教材可以看官网的《recovery 啥来着忘了自己去搜索》,sqlplus的技巧请参考杨版主备份恢复指南有个屌丝专门搜索了杨TK的备份恢复专辑,在itpub的资料库上有,这是个好文档,我深爱不己,感谢屌丝还有老杨牦牛般孜孜不倦的精神.
最后就是文档整合能力,我自问自己没能记住所有看过的书的内容,所以我个人有个文档整理的习惯,方便需要在使用的时候去搜索定位
文章来源:http://www.itpub.net/thread-1604124-1-1.html