浅谈Oracle学习方法

浅谈Oracle学习方法

玩Oracle也快2年了,一直都是在整理Oracle的相关技术文章,以前是学J2EE的, 也专门的去培训机构培训了一年,那时是一门心思的认为就搞开发了,可后来的事实证明我还是与Oracle更有缘一点。

 

 

 

记得2008年刚找工作那会,一家公司招Java工程师,我到公司不久,项目却没了,因为公司还有数据库的业务,所以我就转像数据库了。当时对Oracle 是一点了解都没有, 只知道它是一个大型的数据库。 也许是搞开发太久了,一开始搞的时候还十分的不愿意, 总觉得DBA 没有开发有前途。 后来慢慢的发现,其实相对而言DBA 更好一点。 因为开发不能搞一辈子,30岁之后肯定要转型。 而DBA确是工作时间越长越吃香。

 

 

 

开始是跟着Roy 玩MSSQL 2005, 玩了大概3个月的时间,基本就是安装,检查备份情况,偶尔搬迁一下数据库,帮其他同事执行下SQL。 后来就是玩Oracle了。 当时维护的是美国那边的数据库,所以当时面临的2方面的压力,一是技术,二是英语,大二上学期把英语四级过了之后,英语基本就丢掉了。 所以当时的日子很艰难,不过现在来看,还是要感谢老板John。 John一直待在美国,干了近20年的DBA。 要不是遇见他,我是不可能走上DBA 这条道路。 要不是他的压力,我也不可能进步的这么快。 后来还是因为某些原因,离开了公司。 这也是我的第一份工作,但正是这份工作,让我成了DBA,让我对Oracle 入了门。 这是一个漫长的过程,应该有7个月吧。 具体花了多长时间入门,现在也记不清了,只是学到后面,脑中就清楚了,对Oracle 有了个整体的框架,所以学起来自然就快了很多。 所以 Oracle 难,就难在入门。 如果不勤奋点,一年也入不了门。

 

 

 

我个人认为,如果一个DBA 在成长的过程中,没有宕过数据库, 也不算的完美,一个人的成长的过程总是曲折的,太一帆风顺了,不见得是一件好事,当遇到问题时就会手忙脚乱,这是DBA的大忌,作为DBA要时刻谨记: 胆大心细,遇事不慌。 因为在遇到突然事件,比如数据库宕了,这时候,全公司的所有人都会把目光放在你的身上。 那时的压力是非常大的,只有经历过这种场面人,才能镇定的解决问题。 因此也就有一种说法,DBA的压力大,短命.

 

 

 

结合我这2年来对Oracle 学习的总结,有一条经验很受用: 多做实验。 我看了很多的书,做了大量的实验,花了很多的时间才有了今天的知识积累。 可能有网友认为我是高手,其实哪来什么高手,只是他们遇到的那些问题我比他们提前遇到了,并且我解决了。 还有就是被高手了一下。 Oracle 是一个庞大的体系。 里面有很多的知识片。 有的知识我也不知道,当他们问我了,我研究了下,明白了,然后在告诉了其他人。 所以说在帮助别人的同时,自己的技术也上升了。

 

下面对Oracle 体系做个简单的说明,大家在学习的时候按照这个步骤来,就不会走弯路了。 这个也是我的个人的心得。

 

 

 1. 了解Oracle 的组成,掌握Oracle 由哪些文件组成,每个文件有什么作用。

比如:

密码文件,控制文件,redo log, 数据文件, alert log,SGA 组成, PGA 组成。

只有了解了这些定义,和他们的作用之后,才能在大脑中对Oracle 形成一个框架。 这个很重要,如果说玩了几年的Oracle ,都没有这个框架, 那么就是杯具,因为还没有入门。 这个框架就是Oracle 的入门标准之一。

 

 

2. 掌握Oracle 的常用技术

Oracle 的常用技术就那么多,我罗列出来:

 

1)  windows / linux / Unix 平台下的安装,卸载。

2)冷备与冷备的还原

3)逻辑备份与还原

4)RMAN 备份与还原

5)数据搬迁:可用逻辑备份或者RMAN来。

6)添加表空间

7)高可用之 Data Guard 安装与维护

8)高可用之RAC 安装与维护

9) 数据库性能诊断与调优

 

 

作为一个数据库管理员,掌握以上的知识就可以在公司独挡一面了,当然还是要经验的积累,多做实验,有些知识点可能开始不好理解,但通过实验,就要好理解很多。 我的Blog 里也有很多的资料, 都是我边学边整理的(http://blog.csdn.net/tianlesoftware). 如果有时间的话,我也会录一些视频放在网上,毕竟通过看视频学的话要块很多。

 

 

 

最后补充一点,一定要提高自己解决问题的能力。 遇到问题我都是google的,我装的第一个RAC 整整用了5天,当时是多么的痛苦。 其中有一个错,我就用一天的时间来google。 现在我建了QQ 群,大家共同的学习,就是希望大家少走弯路。 但有时候就感觉依赖性太强了,为什么不自己google 一下呢, 自己去解决,自己解决了,就理解了,就会永远记住了,我和你说了,这次会了,但不一定理解了,不一定就记到心里了。 DBA 要么不犯错,要么犯的就是大错。所以基本功一定要扎实,要养成良好的习惯,数据库每天都要备份,在对数据库做大的动作时,也要备份。 还有就是遇到问题要沉着冷静,要能独立的去解决问题,这有这样才能快速的成长。 就像 Oracle 大师 eygle 所说:随着技术以及时代的不断进步,社会留给DBA的成长时间越来越短,一个DBA从入门到成长为资深的时间不会超过2年.

这里不谈Oracle,只谈学习方法。 常说师傅领进门,修行靠个人。 研究Oracle 需要靠自己的学习,需要多花时间来研究,我玩Oracle 的这几年,大部分都是自己研究的, 当然也有很多人给过我帮助。 这里非常感谢他们。

 

一. 当我们在学习过程中遇到问题时,怎么办?

1. 查看官方文档

http://tahiti.oracle.com/

 

2. google

google 也是有方法的,同样的问题,可能有的人google到答案就快。主要的原因就是关键字的选择,好的关键字能快速的帮助找到相关的答案。 还有就是尽量看国外的一些专业性的网站。不是说国内的网站的不好,国内很多的blog 也是可参考的。 主要还是靠自己的一个判断能力,可能搜出来的一些线索都能帮助我们解决问题。

 

90%的问题,google 都能找到答案,很多知识点,官方文档都有详细的解释。 要通过自己的研究来解决问题,这样才能加深理解,下次就知道怎么回事了。  

 

二 为什么会遇到问题

1. 经验不足

这个需要时间的积累,没安装过数据库,那就多安装几次,把安装时的所有选项都搞清楚,什么选项是什么意思,有什么作用。 我安装第一个RAC的时候,花了5天的时间,也是因为经验不足,有一个问题,我google了一整天。 但当把RAC 搭起来的时候,你会有一种成就感。 所以解决问题,也是一件很有趣的事。 

遇到问题不可怕,关键是要解决问题,解决的问题越多,成长的越快。

 

2. 相关知识体系不完善

需要系统的去看相关资料,不是这一点,那一点。 如果把oracle 的体系都弄清楚了,就不会有那么多问题。 

 

 

三. 怎么提问

 

提问的智慧

http://topic.csdn.net/u/20100723/16/13f31adc-f783-492c-b77d-95c887b3db8b.html?17116

 

有些知识点可能确实google 不到,需要别人的帮助,那么请把自己的问题整理清楚,描述清楚,让别人一看,就能了解是什么情况。

 

有些人的提问方式,确认是让人感觉很不爽的,比如:

 

1. 我的那个什么操作报什么错误了,什么原因啊。

–第一反应,有google 这个错误吗? 有看相关文档吗? 有尝试自己解决这个问题吗?  然后我要想,有哪些其他的原因,具体做了哪些操作。 问题描述不清楚,要往返几次才能把事情搞清楚,浪费大家的时间,不好。

 

2. 还有一种就是:你会那个什么技术吗?

–第一反应,我会与不会和你有什么关系? 然后往返个数次,才了解目的,累的慌。

 

3. 尽量少用QQ,有问题,可以到论坛,可以通过邮箱。

–每个人的精力都是有限的,不可能你发过去,别人就给你恢复。 而且很多知识点,我也不熟悉,不能确定,需要google,需要查看文档,需要重新进行整理。

 

 

每个人的学习过程中都会遇到问题,要有解决问题的能力,这个也是一个积累的过程,对于一般实际操作中遇到的问题,这类问题都有很明显的错误提示,直接google 都能找到解决方法。 如果确实搞不定,可以把问题描述清楚,让别人从某些角度给些建议,不要指望别人帮你搞定问题,因为现在的社会每个人都很忙,都有有自己的事要处理。

 

在我成长的过程中,有很多人帮助过我。 尤其是dbsnake(Oracle ACE) 和owind(用友 ERP Application DBA)。 owind 在性能优化这块有着丰富的经验,给过我很多指导。 dbsnake 在Oracle 体系和故障恢复这块很牛叉,在国内是排的上前几名的。

我也问过他们问题,但是在我问之前,我会把我的问题描述清楚,整理清楚,把我搜集的资料,以及我的判断写清楚,然后问他们这种判断是否正确,是否有其他的建议, 最后给他们email。 他们都是很忙的人,但是抽空都回复了我的邮件,这点我要像他们学习,我也愿意和大家一起成长。

 

总结:

每个人的一天都只有24小时,都有自己的事情要处理。 遇到问题尽量自己解决,如果确实需要请教别人,那么请把问题描述清楚,在发到邮箱。

 

 

 

 

 

 

——————————————————————————————————-

Blog: http://blog.csdn.net/tianlesoftware

Weibo: http://weibo.com/tianlesoftware

Email: dvd.dba@gmail.com

DBA1 群:62697716(满);   DBA2 群:62697977(满)  DBA3 群:62697850(满)

DBA 超级群:63306533(满);  DBA4 群: 83829929(满) DBA5群: 142216823(满)

DBA6 群:158654907(满)  聊天 群:40132017(满)   聊天2群:69087192(满)

–加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注