中国网管论坛's Archiver

421740451 发表于 2008-4-26 09:42

怎样成长为一个真正的Oracle DBA

在别地看到的,觉得对Oracle DBA学习有用


[b][size=12pt]一、定位[/size][/b]
[size=12pt]  [/size][size=12pt]oracle[/size][size=12pt]分两大块,一块是开发,一块是管理。开发主要是写写存储过程、触发器什么的,还有就是用[/size][size=12pt]Oracle[/size][size=12pt]的[/size][size=12pt]Develop[/size][size=12pt]工具做[/size][size=12pt]form[/size][size=12pt]。有点类似于程序员,需要有较强的逻辑思维和创造能力,个人觉得会比较辛苦,是青春饭[/size][size=12pt]J;[/size][size=12pt]管理则需要对[/size][size=12pt]oracle[/size][size=12pt]数据库的原理有深刻的认识,有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会[/size][size=12pt]down[/size][size=12pt]掉整个数据库,相对前者来说,后者更看重经验。[/size][size=12pt]因为数据库管理的责任重大,很少公司愿意请一个刚刚接触[/size][size=12pt]oracle[/size][size=12pt]的人去管理数据库。[/size]
[size=12pt]  对于刚刚毕业的年轻人来说,可以先选择做开发,有一定经验后转型,去做数据库的管理。当然,这个还是要看人个的实际情况来定。[/size]
[size=12pt]  [b]二、学习方法[/b][/size]
[size=12pt]  我的方法很简单,就是:看书、思考、写笔记、做实验、再思考、再写笔记[/size][size=12pt]看完理论的东西,自己静下心来想想,多问自己几个为什么,然后把所学和所想的知识点做个笔记[/size][size=12pt];[/size][size=12pt]在想不通或有疑问的时候,就做做实验,想想怎么会这样,同样的,把实验的结果记下来。思考和做实验是为了深入的了解这个知识点。而做笔记的过程,也是理清自己思路的过程。[/size][size=12pt]学习的过程是使一个问题由模糊到清晰,再由清晰到模糊的过程。而每次的改变都代表着你又学到了一个新的知识点。[/size]
[size=12pt]  学习的过程也是从点到线,从线到网,从网到面的过程。当点变成线的时候,你会有总豁然开朗的感觉。当网到面的时候,你就是高手了[/size][size=12pt]很多网友,特别是初学的人,一碰到问题就拿到论坛上来问,在问前,你有没有查过书,自己有没有研究过,有没有搜索一下论坛[/size][size=12pt]?[/size][size=12pt]这就叫思维惰性。由别人来回答你的问题,会让你在短时间内不费劲地弄懂这个知识点,然而通过自己的努力去研究它,不但会更深入的了解这个知识点,更重要的是在研究的过程会提高你解决问题和分析问题的能力。总的来说,没有钻研的学习态度,不管学什么东西,都不会成功的。[/size][size=12pt]当然,初学的人很多时候是因为遇到问题时,无从下手,也不知道去哪里找资料,才会到论坛上提问题的。但我认为,在提问的时候,是不是可以问别人是如何分析这个问题[/size][size=12pt]?[/size][size=12pt]从哪里可以找到相关的资料[/size][size=12pt]?[/size][size=12pt]而不是这个问题的答案是什么[/size][size=12pt]?[/size][size=12pt]授人以鱼不如授人以渔。[/size]
[size=12pt]  下面我讲下我处理问题的过程首先要知道[/size][size=12pt]oracle[/size][size=12pt]的官方网站:[/size][size=12pt][url=http://www.oracle.com/][color=#333366]www.oracle.com[/color][/url] [/size][size=12pt]这里有[/size][size=12pt]oracle[/size][size=12pt]的各种版本的数据库、应用工具和权威的官方文档。[/size]
[size=12pt]  其次,还要知道[/size][size=12pt][url=http://metalink.oracle.com/][color=#333366]http://metalink.oracle.com/[/color][/url] [/size][size=12pt]这里是买了[/size][size=12pt]oracle[/size][size=12pt]服务或是[/size][size=12pt]oracle[/size][size=12pt]的合作伙伴才可以进去的,里面有很多权威的解决方案和补丁。[/size]
[size=12pt]  然后就是一些著名网站:[/size][size=12pt]asktom.oracle.com [url=http://www.orafaq.net/][color=#333366]www.orafaq.net[/color][/url], [url=http://www.dbazine.com/][color=#333366]www.dbazine.com[/color][/url][/size][size=12pt]。这里有很多经验之谈。遇到问题了。[/size]
[size=12pt]  如果是概念上的问题,第一时间可以找[/size][size=12pt]tahiti.oracle.com[/size][size=12pt],这里会给你最详细的解释。如果在运行的过程中出了什么错误。可以去[/size][size=12pt]metalink[/size][size=12pt]看看。如果是想知道事务的处理的经验之谈。可以去[/size][size=12pt]asktom[/size][size=12pt]。当然。这里只是相对而言。[/size]
[size=12pt]  [b]三、[/b][/size][b][size=12pt]oracle[/size][/b][b][size=12pt]的体系[/size][/b]
[size=12pt]  [/size][size=12pt]oracle[/size][size=12pt]的体系很庞大,要学习它,首先要了解[/size][size=12pt]oracle[/size][size=12pt]的框架。在这里,简要的讲一下[/size][size=12pt]oracle[/size][size=12pt]的架构,让初学者对[/size][size=12pt]oracle[/size][size=12pt]有一个整体的认识。[/size]
[size=12pt]  [/size][size=12pt]1[/size][size=12pt]、物理结构[/size][size=12pt]([/size][size=12pt]由控制文件、数据文件、重做日志文件、参数文件、归档文件、密码文件组成[/size][size=12pt]) [/size][size=12pt]控制文件:包含维护和验证数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件[/size][size=12pt]数据文件:存储数据的文件[/size][size=12pt]重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件[/size][size=12pt]参数文件:定义[/size][size=12pt]Oracle [/size][size=12pt]例程的特性,例如它包含调整[/size][size=12pt]SGA [/size][size=12pt]中一些内存结构大小的参数[/size][size=12pt]归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。[/size][size=12pt]密码文件:认证哪些用户有权限启动和关闭[/size][size=12pt]Oracle[/size][size=12pt]例程[/size]
[size=12pt]  [/size][size=12pt]2[/size][size=12pt]、逻辑结构[/size][size=12pt]([/size][size=12pt]表空间、段、区、块[/size][size=12pt]) [/size][size=12pt]表空间:是数据库中的基本逻辑结构,一系列数据文件的集合。[/size][size=12pt]段:是对象在数据库中占用的空间[/size][size=12pt]区:是为数据一次性预留的一个较大的存储空间[/size][size=12pt]块:[/size][size=12pt]ORACLE[/size][size=12pt]最基本的存储单位,在建立数据库的时候指定[/size]
[size=12pt]  [/size][size=12pt]3[/size][size=12pt]、内存分配[/size][size=12pt](SGA[/size][size=12pt]和[/size][size=12pt]PGA) SGA[/size][size=12pt]:是用于存储数据库信息的内存区,该信息为数据库[/size][size=12pt][url=http://searchwhatis.techtarget.com.cn/searchwhatis/292/3333792.shtml][color=#333366]进程[/color][/url][/size][size=12pt]所共享。它包含[/size][size=12pt]Oracle [url=http://server.chinabyte.com/][color=#333366]服务器[/color][/url][/size][size=12pt]的数据和控制信息[/size][size=12pt], [/size][size=12pt]它是在[/size][size=12pt]Oracle [/size][size=12pt]服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。[/size][size=12pt] PGA[/size][size=12pt]:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的[/size][size=12pt]SGA [/size][size=12pt]正相反[/size][size=12pt]PGA [/size][size=12pt]是只被一个进程使用的区域,[/size][size=12pt]PGA [/size][size=12pt]在创建进程时分配在终止进程时回收[/size][size=12pt]4[/size][size=12pt]、后台进程[/size][size=12pt]([/size][size=12pt]数据写进程、日志写进程、系统监控、进程监控、检查点进程、归档进程、服务进程、用户进程[/size][size=12pt]) [/size][size=12pt]数据写进程:负责将更改的数据从数据库缓冲区高速缓存写入数据文件[/size][size=12pt]日志写进程:将重做日志缓冲区中的更改写入在线重做日志文件[/size][size=12pt]系统监控:检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复[/size][size=12pt]进程监控:负责在一个[/size][size=12pt]Oracle [/size][size=12pt]进程失败时清理资源[/size][size=12pt]检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时[/size][size=12pt],[/size][size=12pt]更新控制文件和数据文件中的数据库状态信息。[/size][size=12pt]归档进程:在每次日志切换时把已满的日志组进行备份或归档[/size][size=12pt]服务进程:用户进程服务。[/size][size=12pt]用户进程:在客户端,负责将用户的[/size][size=12pt]SQL [/size][size=12pt]语句传递给服务进程,并从服务器段拿回查询数据。[/size]
[size=12pt]  [/size][size=12pt]5[/size][size=12pt]、[/size][size=12pt]oracle[/size][size=12pt]例程:[/size][size=12pt]Oracle [/size][size=12pt]例程由[/size][size=12pt]SGA [/size][size=12pt]内存结构和用于管理数据库的后台进程组成。例程一次只能打开和使用一个数据库。[/size]
[size=12pt]  [/size][size=12pt]6[/size][size=12pt]、[/size][size=12pt]SCN([url=http://searchwhatis.techtarget.com.cn/searchwhatis/494/2026494.shtml][color=#333366]System[/color][/url] Change Number)[/size][size=12pt]:系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。[/size]
[size=12pt]  [b]四、深入学习[/b][/size]
[size=12pt]  管理:可以考[/size][size=12pt]OCP[/size][size=12pt]证书,对[/size][size=12pt]oracle[/size][size=12pt]先有一个系统的学习,然后看[/size][size=12pt]Oracle Concepts[/size][size=12pt]、[/size][size=12pt]oracle [url=http://searchwhatis.techtarget.com.cn/searchwhatis/371/2025871.shtml][color=#333366]online[/color][/url] document,[/size][size=12pt]对[/size][size=12pt]oracle[/size][size=12pt]的原理会有更深入的了解,同时可以开始进行一些专题的研究如:[/size][size=12pt]RMAN[/size][size=12pt]、[/size][size=12pt]RAS[/size][size=12pt]、[/size][size=12pt]STATSPACT[/size][size=12pt]、[/size][size=12pt]DATAGUARD[/size][size=12pt]、[/size][size=12pt]TUNING[/size][size=12pt]、[/size][size=12pt][url=http://searchwhatis.techtarget.com.cn/searchwhatis/209/1946709.shtml][color=#333366]BACKUP[/color][/url]&RECOVER[/size][size=12pt]等等。[/size]
[size=12pt]  开发:对于想做[/size][size=12pt]Oracle[/size][size=12pt]开发的,在了解完[/size][size=12pt]Oracle[/size][size=12pt]基本的体系结构之后,可以重点关注[/size][size=12pt][url=http://searchwhatis.techtarget.com.cn/searchwhatis/132/2026132.shtml][color=#333366]PL/S[/color][/url]QL[/size][size=12pt]及[/size][size=12pt]Oracle[/size][size=12pt]的开发工具这一部分。[/size][size=12pt] [url=http://searchwhatis.techtarget.com.cn/searchwhatis/133/2026133.shtml][color=#333366]PL/SQL[/color][/url][/size][size=12pt]主要是包括怎么写[/size][size=12pt]SQL[/size][size=12pt]语句,怎么使用[/size][size=12pt]Oracle[/size][size=12pt]本身的函数,怎么写存储过程、存储函数、触发器等。[/size][size=12pt] Oracle[/size][size=12pt]的开发工具主要就是[/size][size=12pt]Oracle[/size][size=12pt]自己的[/size][size=12pt]Developer [url=http://searchwhatis.techtarget.com.cn/searchwhatis/423/2026423.shtml][color=#333366]Suite[/color][/url](Oracle Forms Developer and Reports Developer[/size][size=12pt]这些[/size][size=12pt])[/size][size=12pt],学会如何熟练使用这些工具。[/size]

[[i] 本帖最后由 421740451 于 2008-4-26 09:43 编辑 [/i]]

421740451 发表于 2008-5-23 16:41

唉没人顶自己顶下

xieyufei 发表于 2008-5-23 17:03

顶下。引导初学者更好的去学习。。

linuxfanstian 发表于 2008-5-28 10:10

:lol 不错

lioukon 发表于 2008-6-16 13:39

bu  cuo  ding

obu0424 发表于 2008-7-5 11:31

TSJ28TSJ 太好了,楼主一定蛮精通的吧,有机会向你学习下

页: [1]

Powered by Discuz! Archiver 6.1.0  © 1999-2008 bbs.bitsCN.com