之一
学习Oracle是一个漫长艰辛的过程。如果没有兴趣,只是被迫学习,那么是很难学好的。学习到一定程度的时候,要想进一步提高,就不得不接触很多Oracle之外的东西,如Unix,如网络、存储等。因此,要真的决心学好Oracle,就一定要有兴趣。有了兴趣,就会一切变得简单快乐起来。
简单总结一下,那就是:兴趣、学习、实践。
如何入门是许多初学者最头疼的事情。Oracle是一个庞大的系统,涉及的方面很多:SQL、管理、优化、备份恢复……
那么从哪开始学好呢?如果在大学期间学过数据库理论,或有一定的数据库基础自然很好;如果没有的话,真的是个大问题。
我个人认为还是应该从SQL语句学起。比较好的教材是Oracle OCP认证的《SQL and PL/SQL》。学习SQL的时候,尽可能坚持使用Oracle自带的工具:SQL*PLUS。
有了一定的SQL基础后,就要尽可能的了解Oracle的体系结构,这就涉及到了Oracle管理的内容了。
我学习的时候,机械工业出版社的《Oracle9i DBA手册》这本书对我的帮助挺大。或许现在都出11g版本的了吧。
Oracle公司的《Oracle Concepts》是非常棒的书,对了解Oracle体系结构很有好处。每个Oracle版本都有对应的版本,可以认真多读几次,每次都会有新的收获。
做数据库维护的时候,备份与恢复是不得不接触的内容。于是学习Oracle备份与恢复技术也是必然的事情。
数据量少的,比如20、30多个G,还可以考虑用exp/imp来备份与恢复,但数据量大了,这种方法就根本不适合了。
大数据量情况下,Oracle 建议用RMAN来进行数据的备份与恢复。目前市场上有很多数据库备份恢复软件,其实好多也是后台调用RMAN。清华大学出版社出版的《Oracle9i RMAN 备份与恢复技术》是一本非常不错的介绍RMAN的书。
有了以上的基础,可以说已经入门了,对遇到的一些初级Oracle问题将不再束手无策。然而我们的学习之路仍然还很漫长。我们的用户可能经常抱怨数据库运行缓慢。这时,如果有一定的优化知识,那就好办了。有时你会看到优化前需要运行几个小时的作业,优化后也许几秒钟就能完成!
Oracle9i的性能诊断工具包statspack、Oracle10g/11g的自动工作符合存储库AWR都是调优的好帮手。机械工业出版社出版的《Oracle9i STATSPACK高性能调整》是学习statspack不错的书。
在数据库体系结构、编程优化方面,有一本书非常棒,这就是世界顶级的Oracle专家Thomas Kyte编写的《Oracle9i&10g编程艺术》(英文名为“Expert Oracle Database Architecture”)。Tom以前还写了一本叫做《Expert One-on-One Oracle》的书,也非常的经典。这两本书被很多Oracle学习者视为宝典,如果想在Oracle上深入学习的话,强烈建议认真研读。
掌握了以上内容,或者基本掌握以上内容,那么你在很多人的眼里也是Oracle的高手了,解决公司产品中的数据库问题应该不成问题。不过Oracle还有很多高级内容可以进一步学习。这里列举一些,仅供感兴趣的同学参考。
- 高级复制技术
- Oracle Real Application Cluster (RAC)
- Data Guard(DG)
- Oracle Stream
- 数据仓库
- Proc、OCI编程
以上列举的这些高级内容,参考资料主要是Oracle公司的电子文档。在学习Oracle过程中,充分利用网络资源可以起到事半功倍的作用。
之二
Oracle学习模块及方法
1、sql、pl/sql
网上有很多的视频,可以做一个简单的入手,然后看几本书,多做实验。
作为oracle的基本功,需要大家对sql和pl/sql非常的熟悉。特别是sql里面的多表连接、子查询、各种新版本的函数,以及plsql里面的所有语法。
建议大家拿出足够的时间来研究这两块。
不要认为这是开发人员的工作,他也是DBA的重要工作,而且对DBA的要求更高,你不但能看懂,还要能够找出问题。
学些这方面知识的要点就是:多练、多思考,多测试。
2、Oracle管理(体系结构)
这一块一定要听课,而且是要听“大师”的课、多讨论。
这是Oracle的难点,Orcle技术博大精深,主要的难点就集中在这里面。包括Oracle的存储管理、对象管理、内存和进程、undo管理、初始化参数、数据字典视图、安全、latch和lock、权限和角色、资源调度、闪回、日志原理等。
学习这一块知识的时候,一个重点是:要知道原理和“根”,知道表面的东西没有任何意义。知道原理以后,通过实验去证明,将原理总结出来。
这一块学习的好还是不好,直接影响以后对备份恢复、优化、排错的理解和学习。
这一块虽然是研究管理,但是更加注重原理和体系结构的分析和解剖。应该叫做“深入剖析Oracle体系结构”,多深都需要。
在这一部分的学习中,已经学习了很多优化的内容,在学习任何一个知识点的时候,我们都离不开对性能的分析。
3、备份恢复
听听课、看几本书,多做做实验、多讨论。
有了第二部分的铺垫,这一章的学习相对有意思,前提是我们对Oracle的日志原理研究得较深,对oracle的内存和进程研究得较深。
策划一个完美和正确的备份计划和实施方案(具体要分析出原理),实施备份;对各种损坏进行恢复(还是要能够够分析出原理);另外可以做一些高难度的恢复实验(还是老话、要能够分析出原理)。
4、优化(单实例优化)
还是要听课,最好听一些专题性的,深入讲解的专家课,还是要看一些经典的书籍,特别是英文书。
这一块完全是第一部分和第二部分的一个结合。这一块的学习没有最深,只有更深,学习方法和第二部分类似。
首先需要大家掌握一些Oracle的优化方面的基础知识,例如深入分析索引原理、分区、等待事件、时间统计模型、动态性能视图、操作系统的一些性能优化和查看命令,例如:top、iostat、vmstat、sar、pmap、prstat、filemon、nmon、svmon等。
最关键的还是要做三件事情:Oracle的动态性能视图、Oracle的报告(trace、statspack、awr、addm、ash)、执行计划;对这三块要熟悉和分析出来。这个部分的分析和动手实验很重要。
5、RAC
可以听听课,有了前面的基础以后,基本上自己就能看懂书了,因此,可以看书,也可以听一些专题课。
现在RAC的使用越来越多,学习RAC的重点还是:基础原理+RAC优化。
RAC系统的优化分为两个步骤:RAC系统优化和单实例优化;根据RAC的基础原理,能够设计高性能的RAC系统,能够分析RAC性能问题。对RAC的动态性能视图、等待事件、报告,能够看懂和分析。
6、GC、DG、Stream、Gold Gate等
对于这些工具和组件,我们熟悉其体系结构,原理,一些监控性能的工具等。
学习这些部分的几个点:熟悉体系结构、原理;搭建;监控(包括故障和性能);排错和优化。
7、SQL优化
看一本经典的英文书籍、多做实验、多实践、多分析。
为什么单独的拿出来呢?因为这部分需要持之以恒的进行研究和实验,而且工作中几乎是每天都要做的事情。
目前这方面,有一些比较经典的中文书,值得大家去看看。
8、PL/SQL深度学习
在这部分学习的时候,就要时时刻刻注意性能,主要是注意测试。
9、综合性项目实战:
模拟环境:规划、搭建、测试、管理、排错、优化、分析
实战环境:同上