关于Oracle学习

网络整理 - 07-26

题记:经常有朋友通过邮件向我咨询一些关于Oracle学习的问题,很多非常具有代表性,我在这里把朋友们的一些问题作些整理,并把我的回答公布出来,希望可以给大家做一个参考。

这是一位朋友发来的邮件,我的回复穿插在邮件之中,也就原样收录如下:

Q: ...工作在高校,平时虽然也是负责管理Oracle数据库,但"仅仅"做好Oracle的日常维护就OK了,而不象大公司里的DBA还需要与开发人员沟通等等。

A: 关于这个"仅仅"我想说一下,我们作事情绝不能停留在"仅仅"上,一定要不断深入,不断学习,不断提高。不一定要在多大的生产环境里才能锻炼出高手。据我所知很多高手都是从个人的简单环境中学习成长起来的,在我没做DBA之前,一直都是靠自学来提高Oracle水平,至今我也没有参加过任何关于 Oracle数据库的正式培训(主讲除外),很多朋友也是如此。所以自己学习也一定要深入,多思考,多试验。

有朋友说:小库一样练水平。这句话是很有道理的。也有朋友在ITPUB上不断试验和重复别人有价值的试验或测试,说:不是自己的,通过试验动手,变成自己的。也说得非常好。

所以关于数据库的学习,一定要多下功夫,准备好了知识之后,才能接受各种挑战和抓住好的机遇。“机会总是喜欢光顾有准备的头脑”。

把自己的学习和经验总结放到网上去和朋友讨论也是一个好的方法,不用怕简单或是其他。成文的东西可以通过投稿或出版来获得认可(在ITPUB都有很多这样的机会),这些都是学习进步的一种方式。

Q: ...我们想请教一下:
1. 如果基于长远考虑,我们是否应该也学习一些开发相关的知识呢?比如学习Java,掌握J2EE架构,以便于弥补开发方面的知识漏洞。

A: 开发的知识,DBA是需要有一些的,完全不懂开发或不介入开发的DBA不会是一个好的DBA。但是不一定要求有多精通或熟练,毕竟不是程序员,个人认为了解基本的就好。如果把数据库作为主业,学好数据库就需要投入相当的精力。有些大的企业的开发DBA和管理DBA是分开的,可见各自侧重也是有所不同。

Q: 2. 如果要做一个合格的DBA,除了数据库知识,还需要学习哪些内容用于辅助DBA的工作呢?例如,一个好的程序员,除了熟悉开发平台和相关语言,还应该认真学习软件工程,以利于架构的组织。那么对于一个DBA,还应该学习哪些辅助知识呢?

A: 一个好的DBA,除了具备一些开发相关的素质外,还必须了解系统方面的知识,深入地了解操作系统才能更好的理解数据库,这两者是相辅相成的,OS和DB的结合紧密度最高,所以作为一个DBA应该深入地学习一下OS知识。

Ixora的 Steve Adams 所以能够将Oracle研究的如此深入,一方面就是因为对于操作系统的知识非常了解。