2023年6月21日发(作者:)
数据库⼊门数据库管理员,英⽂是Database Administrator,简称DBA。这个职位对不同的⼈意味着不同的意义。⼀个⼩的软件开发⼯作室和⼀个分⼯⾼度明细的⼤公司相⽐,DBA的职责来得更加宽泛⼀些。⼀个公司,不管它是⾃⼰开发应⽤软件,还是购买第三⽅的应⽤软件,只要涉及到数据库(有多少不涉及数据库的应⽤软件呢?数据库是商业的灵魂和⼤脑啊),就需要确定是否雇佣⼀个或⼏个DBA。知道DBA这个职位有哪些要求,对于企业内部这个职位的定义或者对于那些未来的DBA将是⾄关重要的。下⾯我列出了DBA的⼀些职责:安装和升级数据库服务器(如Oracle、Microsoft SQL server),以及应⽤程序⼯具。数据库设计系统存储⽅案,并制定未来的存储需求计划。⼀旦开发⼈员设计了⼀个应⽤,就需要DBA来创建数据库存储结构(tablespaces)。⼀旦开发⼈员设计了⼀个应⽤,就需要DBA来创建数据库对象(tables,views,indexes)。根据开发⼈员的反馈信息,必要的时候,修改数据库的结构。登记数据库的⽤户,维护数据库的安全性。保证数据库的使⽤符合知识产权相关法规。控制和监控⽤户对数据库的存取访问。监控和优化数据库的性能。制定数据库备份计划,灾难出现时对数据库信息进⾏恢复维护适当介质上的存档或者备份数据备份和恢复数据库联系数据库系统的⽣产⼚商,跟踪技术信息。· 把监视数据库实例当作每⽇必做⼯作以保证其可⽤性。解决不可⽤的问题。· 收集系统统计和性能信息以便定向和配置分析。· 配置和调整数据库实例以便在应⽤程序特定要求下达到最佳性能。· 分析和管理数据库安全性。控制和监视⽤户对数据库的访问。必要时审计数据库的使⽤。· 监视备份程序。必要时提供恢复。测试备份与恢复程序。· 升级RDBMS软件并且在必要时使⽤补丁。必要时升级或者迁移数据库实例。· 通过数据库相关动作来⽀持应⽤程序开发⼈员。· 跟随数据库趋向和技术。当可应⽤时使⽤新技术。安装,测试和评估Oracle新的相关产品。· 执⾏存储和物理设计。均衡设计问题以完成性能优化。· 创建,配置和设计信的数据库实例。· 诊断,故障检测和解决任何数据库相关问题。必要时联系Oracle⽀持⼈员以便使问题得到较好的解决。· 确保Oracle⽹络软件(SQL*Net, Net8, Names, OiD)配置和运⾏的很好。· 与系统管理员(Unix& NT)⼀起⼯作以保证Oracle相关事务得到很好的处理。· 为有效的,定期的维护数据库创建任何必要的脚本SQL SERVER 是可视化的数据库,⼀般⽤SQL SERVER 的公司,都是⽹络、硬件维护员、系统维护员兼数据库管理员,不会专属请⼀个SQL SERVER数据库管理员,SQL SERVER 的管理备份等都和操作QQ⼀样,可视化的。数据库管理员能具备开发能⼒那更好,没有的话⼀般也要会写存储过程、触发器和基本的SQL查询。现在真正需要数据库管理员的,⼀般是在LINUX/UNIX 下管理ORACLE 等命令式的数据库。熟悉LINUX/UNIX 的操作指令,会写SHELL,了解ORACLE 的体系结构,会在命令⾏下⽤指令操作 ORACLE,⼤企业的数据库不会装在WINDOWS下的,LINUX⼀般也不会启动图形界⾯,都是远程连过去⽤指令操作。如何成为DBA1.1 DBA的应该具有的性格特点每个DBA的成长之路都是不同的,因为没有⼀个⼈是天⽣的DBA,每个DBA 都是在⾃⼰的职业道路上,通过⼀个偶然的拐点⾛向DBA的,⽽不是通过⾃⾝的职业规划。现在,越来越多的年轻技术⼈员都对⾃⼰的职业发展做了很好的规划,这样能够少⾛很多的弯路。作为⼀个⾛了很多弯路的⽼DBA,我的感受是DBA的成长之路是有捷径的,在这条成长之路上,并不是所有的付出都会得到合理的回报。有的⼈会⾛的⼗分轻松,有的⼈却异常艰难。这和某个⼈的机遇有关,就像⾦庸武侠⼩说⾥⾯⼀样,有些⼈需要⼏⼗年修炼,才能有所突破,⽽主⼈公往往都是通过⼀些机缘巧遇,修成正果的。⼀个DBA在成长之路上,选择正确的⽅法,加⼊正确的团队,遇到正确的导师,就和⾦庸武侠⾥⾯遇到焊冰床或者吃了仙丹灵药⼀样重要。要成为⼀个优秀的DBA,仅仅靠努⼒是不够的,还有很多因素决定了DBA的成功。个⼈的性格对于DBA来说是⼗分重要的。⾸先,DBA需要沉稳的性格,遇事不慌,做事有条理。DBA在⼯作中会遇到各种各样的挑战,因此⾯临挑战的时候,深思⽽后⾏是⼗分重要的,在没有⾜够的把握之前,不要做任何的事情,这是DBA的铁的准则。要养成这样的风格,先天⽽来的沉稳性格是必不可少的。当然某些风格可以后天养成,但是有些性格就是DBA的天敌。我曾经遇到过⼀件事情,当时⼀个客户的系统有些问题,需要我们协助分析⼀下,找出系统性能问题的根本原因。我把任务安排给⼀个DBA去做,并且我嘱咐他只允许观察系统,不能做任何操作。第⼆天⼀⼤早,我刚刚开机,就有客户的电话打进来,说怎么系统不可⽤了。等我把忙了⼀晚上的那个哥们从梦⾥叫醒的时候,我才知道,原来他昨晚对⼀个近100G的表做了100%采样的全表分析。⽽分析在早上8点的时候还没有完成。事后我问那个DBA,为什么会做这种傻事。他说他也不清楚,开始的时候他是很清醒的,知道不能对这个系统做任何事情,但是后来他发现可能是这张表分析的采样⽐例不够,如果重新分析就可以解决这个问题,所以他就想试试,虽然他知道他不应该做任何操作,但是有⼀种冲动⽀配他,就是想试试,后来他做了测算,估计早上9点前能够完成分析,就这么做了。上⾯的例⼦是个很典型的例⼦,那个DBA知道⾃⼰应该做什么,但是在好奇⼼的⽀配下,他还是做了错事,这是性格⽅⾯的缺陷导致的。DBA往往会在深夜独⽴⼯作,在这个时候,有些不理智的决定的产⽣往往是⼀个闪念,等你回过神来的时候,你可能发现⼤错已经铸就,⼀切都太晚了。作为DBA,⾯对⽣产系统的时候,任何的不理智都可能是你的职业⽣涯的终⽌,沉稳的性格对于DBA的重要性就可见⼀斑了。从上⼀个例⼦我们还可以学习到的是作为⼀个DBA,不能过于⾃信。⾃信是⼀个DBA必须拥有的素质,在这⽅⾯,往往有两个极端。第⼀个极端是不⾃信,这是⼏乎所有的刚刚进⼊DBA⾏业的技术⼈员的通病,⾯对客户,不敢⼤声说话,不敢表达⾃⼰的观点。不⾃信主要来⾃于对⾃⼰的能⼒的不肯定,总是怕⾃⼰说错话。我总是和我的同事说,只要你的技术⽐客户强,那么你就是专家,你的话就是专家的话,你说的就是正确的。对于刚刚⼊门的DBA,建⽴强烈的⾃信⼼是⼗分关键的,不过这个过程也是很长的,根据每个⼈的能⼒和性格的不同,往往需要1年到⼏年的时间。少数DBA能够在很短的时间内建⽴⾃信,这主要取决于这个⼈的悟性,如果他能很快的从和客户的交往中了解到客户的⽔平,那么他可能可以很快建⽴起基于⾃⼰技术能⼒的⾃信⼼。缺乏⾃信会成为⼀道门,把你关在⼀个成功的DBA的门外,因此建⽴充分的⾃信是成为优秀DBA 的第⼀步。和缺乏⾃信相⽐,过度⾃信是⼗分危险的,缺乏⾃信只是很容易被客户⼩看,并不会有太⼤的危害性,⽽过度⾃信是⼤多数失误的罪魁。很多⽼DBA总是说做DBA越久,胆⼦越⼩。应⽤系统是⼗分复杂的,并没有⼀定之规可循。所以⽼的DBA总是怀疑⾃⼰的判断是否完全准确。⽽过度⾃信往往出现在正在成长期的新DBA⾝上,在成功的完成⼀些项⽬后,⾃信⼼的增长也是⼗分快的,⾃信⼼增长⼀般来说是个好事,但是在⾃信⼼增长的同时,保持必要的谨慎是⼗分重要的。除了稳重和⾃信,DBA的下⼀个必备的性格是团队精神。现代社会已经不是单打独⽃的骑⼠时代了,做任何事情都是⼀个团队在⼯作。团队协作可以⼤⼤降低DBA⼯作的强度,减轻DBA⾯临的压⼒。作为⼀个DBA,不应该有孤独的感觉,因为是⼀个公司,⼀个团队在做这个⼯作。在现场的DBA可以通过各种渠道获得其他团队以及公司总部资深团队的后援。在这种情况下,遇到任何问题都不会感到⽆能为⼒。团队精神的另⼀个⽅⾯是体现在团队学习上。团队学习也可以使DBA的成长速度加快,所谓的团队学习是和我们上学的时候⼀样,⼀群⼈⼀起学习。和上学时代不同的是,DBA的团队学习更有效率。⽐如说⽬前有3个知识点需要学习,如果个⼈学习,需要3个⽉。那么如果有⼀个团队,3个⼈⼀起学习,可以⽤⼀个⽉完成⼀个知识点的学习,然后通过⼀个⽉时间,⼤家互相交流,那么2个⽉的团队学习可以达到3个⽉个⼈学习的效果。求真精神是成为⾼级DBA的必备素质,任何时候,都必须⽤求真的精神去对待。⽬前关于DBA的资料充斥着互联⽹,在学习过程中,⼀定不要盲⽬相信他⼈,凡事应该认真求证,最好能够⾃⼰进⾏实验。我碰到过很多朋友,遇到问题⽆论是否是⼗分重要的⽣产库还是测试库,都是直接到⽹上去查找⼀些解决⽅案,找到相关资料后,没有进⾏认真的甄别,就急急忙忙的去操作,最后导致了⼗分严重的后果。敢于质疑⼀切的精神是⼗分宝贵的。DBA的学习过程是⼀个不断质疑,不断求真的过程,只有⽤怀疑⼀切的态度去学习,才能够不断的深⼊探索,达到⾄⾼境界。1.2 DBA的起点经常有⼈问我,我想成为⼀个DBA,需要有什么条件。其实和其他职业⼀样,DBA 仅仅是⼀种职业,是IT⾏业数百种职业中的⼀种。要进⼊DBA这个⾏业,其⼊门的门槛是很低的,但是要成为⼀个优秀的DBA 和成为⼀个优秀的程序员⼀样,都需要经过多年的磨练。不过和程序员相⽐,DBA的⼊门之路更为困难,因为初级DBA所需要掌握的技能要⽐初级程序员更为全⾯。作为DBA的起点,其知识和技能⽅⾯的要求很简单,在专业知识⽅⾯,需要有数据库基础(⼤学课程),SQL编程,操作系统⽅⾯的知识就⾜够了。如果在UNIX操作系统,计算机体系结构和⽹络有⼀定的基础就更好了。另外作为⼀个DBA,需要阅读⼤量的英⽂资料,因此具有较好的英语阅读能⼒也是⼗分关键的。虽然DBA ⼊门的条件不⾼,但是我不赞成DBA作为你职业⽣涯的第⼀个职业。我所见到过的绝⼤多数成功的DBA都是从系统管理⼈员和程序员起步的。程序员的经历对DBA 成长也是⼗分有益的。数据库和应⽤是不可分割的,在DBA⽇常维护⼯作中,经常会遇到应⽤带来的挑战。程序员会接触到应⽤软件的设计,数据字典的设计,SQL的编写等,这些⽅⾯都是需要DBA紧密协助才能完成的,在国内的软件开发⼯作中,很多DBA的⼯作实际上是由程序员完成的。程序员在不知不觉中已经承担了⼤量的DBA⼯作,在国内经常会碰到很多项⽬经理,他们多在数据库⽅⾯的恶造诣已经很深了。因此说,DBA的起点是程序员,也是有⼀定的道理的。虽然程序员也经常从事⼀些DBA从事的⼯作,但是程序员和DBA是两种截然不同的⼯作,在从事程序员的⼯作的同时,如果你希望今后向DBA发展,那么你还需要⽐普通的程序员做的更多。学习数据库需要进⾏⼤量的实践,作为DBA的⼊门,精通数据库的安装、配置、管理是初级DBA必须具备的。另外由于数据库和主机、存储、操作系统关系密切,掌握主流的硬件、存储、⽹络、操作系统也是⼀个成功的DBA的关键。⽽对于绝⼤多数程序员来说,要接触这些东西是⽐较难的。虽然刚刚进⼊这个⾏业的预备DBA⽆法接触这些⾼端的设备和环境,也不会影响DBa的成长之路。在我们随⼿可及的微机上,我们也可以建⽴⾃⼰的学习环境。如果你的微机再⾼档⼀点,也可以通过VMWARE建⽴⾃⼰的LINUX/SCO UNIX或者SOLARIS。1.3 理解什么是Oracle 数据库对于刚刚⼊门的初学者来说。理解什么是RDBMS,什么是Oracle RDBMS是⼗分关键的。对于⼀个初学者来说,OracleConcepts这本书应该是⼀个必读的读物。Oracle概念⾥⾯的很多东西是很深的,因此对于⼀个初学者来说不⼀定能够完全明⽩。对于看不明⽩的地⽅,建议跳过去,等以后再来看,⽽不要强⾏去阅读。如果理解错了,可就后患⽆穷了。Oracle概念这本书是可以看很多遍的,每看⼀遍,都会让你感觉有所收获,现在你看不懂的地⽅,可能半年后你再来看,就能够理解了。另外在看Oracle概念的时候,也要注意动⼿能⼒的培养,很多概念需要做过实验后才会在你的脑⼦⾥形成永久的记忆,因此建议在看Oracle概念的时候,⾃⼰装⼀套Oracle,并把能够实验的东西都逐个实验⼀下。⼤型数据库的基本组成都是⼗分类似的,ORACLE主要是由存储数据的⽂件、提供数据库服务的后台进程、存储数据缓冲的共享内存和防⽌访问冲突的信号灯组成的。经常有朋友说,Oracle数据库组成的⼀些基本概念,了解的那么清楚有什么⽤。确实是这样的,如果你的⼯作只是启动关闭数据库、创建⼀些表空间和数据⽂件,那么你没有必要对Oracle的基本组成有个清晰的认识,⽽如果你想要做⼀些更深层次的⼯作,或者你想成为⼀个⾼级的DBA,那么这些基本概念是必需要掌握的。如何成为真正的Oracle DBAa. ⾸先,必须懂ORACLE,别告诉我在WINDOWS上装过就算懂差远着呢b. 其次,必须让别⼈也知道你懂ORACLE,最好的⽅法是考个认证(OCP)c. Oracle的好处是在N多平台都可以运⾏,坏处呢,就是你必须明⽩如何让它在Solaris, HP-UX, WINDOWS, Linux,上跑起来系统DOWN了找别⼈?那可以你⾃⼰的DATABASE SERVER有什么办法,下定决⼼当系统管理员吧d. ORACLE是基于⽹络的,所以在管理的时候,免不了⽤到N多⽹络东东总⿇烦别⼈会遭⽩眼的,客户也不⼲,所以DBA最好也是⽹络管理员.恩,拿个CCNA保底也不错e. 从8i之后,ORACLE全⾯转向JAVA,所以为了保住饭碗,弄懂JAVA是必需的所以DBA也要是JAVA PROGRAMMER,向不会JAVA的同志们默哀,抓紧学吧f. 除了管理之外,另⼀⽅⾯也要协助开发⼈员做PROJECT,不管是B/S还是C/S 那个S(server)总跑不了,所以DBA还要懂软件⼯程,去学UML 和ROSE吧, hohog. 现在⽤ORACLE做⽹站的很多,不管是APPLICATION SERVER⽤的是ASP,JSP,ColdFusion还是别的什么,出了问题DBA也跑不了。说你不管这个?没门趁早学学那些东西,免得到时候弄不明⽩错⼉出在什么地⽅。学习Oracle认证的⼀些⼼得技巧1、如果有⼀定的数据库基础,知道SQL是怎么回事,即使写不出来简单的SQL,但可以看动它们,你就可以跳到2。否则请先看⼀下数据库基础和SQL语⾔,不需要很深,更不需要去记忆那些复杂的SQL命令,这些可以留在以后边应⽤边学习、记忆。2、要想学好ORACLE,⾸先要学习ORACLE的体系结构,现在你不需要深⼊理解它们,但要分清⼏个关键的概念:instance & database, memory structure , process & those files ,such as data file, control file, init parameter file etc以及database , tablespace , data file和tablespace, segmnet, extent & block它们之间的关系。当然还要分清undo tablespace & redo log file等,对于很多初学者来说,能够对这些概念有个较为清晰的认识并不是⼀件容易的事,⽽这些并⾮Oracle的全部。3、是有关ORACLE的⼀些基本概念,下⾯要学习的是⼀些简单的的实际操作,就是如何去管理ORACLE数据库,当然不是管理全部的ORACLE。在此过程中你将对SQL和ORACLE体系结构有个更深⼊的了解。4、到了这⼀步你基本上算是初步掌握了ORACLE,下⾯将要根据你的⽅向来具体学习其它的ORACLE知识了。如果你是开发⼈员,则需要更多地去学习PL/SQL以及DEVELOPER,⽽这将是⼀门新的课程。如果你是⼀名DBA,请继续。5、现在你可以根据⾃⼰的实际情况,进⾏有选择的学习,也就是说下⾯的内容没有特别顺序要求。可以选择深⼊学习ORACLE的管理、备份与恢复、性能调整、⽹络等。当然在学习这些知识的过程中,如果有实际的⼯作更好,这样你可以在实际中成长,学会TROUBLE SHOOTING。6、当然在学习的过程中,你可以在⽹站或论坛中与他⼈进⾏交流,可以看别⼈的⼀些经验⽂章,也可以⾃⼰写⼀些⼼得体会。(1)对象类型⽬前不实⽤吧?我认为是这样.(2)OCP考试中对象类型的成分有多重?不多, 完全不通也通得过.(3)成为DBA的经验知识可以⽤其他途径,⽽不是实际⼯作,获得吗?我觉得很难.(4)DBA与Developer<1>你认为哪个更好?我觉得DBA ⼯作更需要经验, ⽽年龄⼤些也能胜任, ⽽Developer ⼯作如果年龄⼤了, ⼲起来可能太累.<2>他们得知识结构有何不同?Developer 主要是编程⽅⾯的知识, 加⼀些performance tuning⽅⾯的知识DBA 需要管理系统的知识, 例如安全性,可⽤性,扩展能⼒等等, 需要的系统的未来有⼀些预见, 这些都需要经验.<3>脚踩两只船容易吗?不容易, 但如果有developer的background,作dba更顺⼿些,⽽你如果成了dba,可能就不原意再做developer了.(5)Oracle应⽤开发⽬前的重点在哪⾥?不同的⼯具有不同的特点,适合不同的应⽤,关键不是重点在哪⾥,⽽是你的应⽤有什么具体的要求.<1>PB<2>VB,Delphi<3>C++持久对象->ODBC->Oracle<4>perl包访问<5>Java->JDBC Driver->Oracle<6>ASP,JSP,Servlet<7>Rational Rose UML建模->Oracle<8>PL/SQL<9>Access客户端访问<10>XML?Oracle<11>Corba?Oracle<12>其他(6)您管理您的Oracle是最常⽤的⼏个命令是什么?select(7)您为什么选择Oracle?因为oracle的⽤户最多.(8)您⼀般定义⼏个⾓⾊,各有什么权限?与应⽤有关(9)NCA还有⼈提吗?这⾥有两个东西,1 NC (Network computer) 2 NCA (Network computing architecture)先在原来概念中的NC不存在了,因为PC的价格下降太快. 但⼴义上说, 先在能上⽹的⼿机能上⽹的电视, 可以说是NC的⼀种延伸.关于NCA, 就算应⽤系统运⾏在⼀台⼤服务器上, ⽽client只通过普通的browser操作系统(不同于以前的client/server结构), 现在已经证明NCA更加优越, NCA的系统先在已经很多, 例如这个⽹易虚拟社区, 就是典型的NCA系统.(10)关系型数据库、表模型、SQL标准与范式各有什么关系?提起这个问题的起因是我发现⼤量的例⼦中表不规范(如没有关键字)关系与表可以说是同义词. SQL(Structured QueryLanguage)是关系数据库的操作语⾔范式的概念更理论化⼀些, 如果有兴趣, 可以找些关系数据库理论⽅⾯的书看,在应⽤系统中⽤的是第⼆和第三范式, 不知道也问题不⼤.(11)事务处理是不是与Java多线程的同步⽅法有些类似?举例说, 在⼀个银⾏系统中, 如果要从两个帐号间转帐, 就是A帐号减100元, B帐号加100元, 必须保证, 两个操作要么都成功, 要么都失败, 否则系统就会出现不⼀致. 这两个操作就是⼀个事务. ⽽事务的这个特征, 就叫做原⼦性. 事务的原⼦性是由Oracle系统保证的.(12)SQL3标准⾛得有多远?Oracle8离它有多远?不知道(13)推荐⼏本应试的好书吧!最好就是OCP的培训教材了.(14)在SQL*Plus中如何访问数据字典?所有字典都⽤select访问,关键你要知道字典的名字, 有多少column,含义是什么Oracle DBA职责及⽇常⼯作分析每天⼯作1、确认所有的instance状态正常登录到所有数据库或实例,检测Oracle后台进程:#ps -ef | grep ora2、检查⽂件系统的使⽤(剩余空间)。如果⽂件系统的剩余空间⼩于20%,需删除不⽤的⽂件以释放空间。#df -k34、检查数据库当⽇备份的有效性对RMAN备份⽅式,检查第三⽅备份⼯具的备份⽇志以确定备份是否成功对EXPORT备份⽅式,检查exp⽇志⽂件以确定备份是否成功对其它备份⽅式,检查相应的⽇志⽂件5678运⾏/⽣成系统报告,或者使⽤statspace收集统计数据9、检查数据库性能,记录数据库的CPU使⽤、IO、Buffer命中率等等,使⽤vmstat,iostat,glance,top10、⽇常出现问题的处理每周的⼯作1、控制数据库对象的空间扩展情况,根据本周每天的检查情况找到空间扩展很快的数据库对象,并采取相应的措施。2、监控数据量的增长情况根据本周每天的检查情况找到记录数据数量增长很快的数据库对象,并采取相应的措施3456每⽉的⼯作1、Analyze tables/indexes/clusteranalyze table estimate statistics sample 50 percent;2、检查表空间碎⽚根据本⽉每周的检查分析数据库碎⽚,找到相应的解决⽅法3、寻找数据库性能调整机会⽐较每天对数据库性能的监控报告,确定是否有必要对数据库性能进⾏调整4、数据库性能调整,如有必要进⾏性能调整5、提出下⼀步空间管理计划,根据每周的监控,提出空间管理的改进⽅法介绍⼀下⾃⼰如何成为⼀名DBA!⼤学四年,感觉什么都没有学到,只过了英语四级还是有点⽤,因为学的不是计算机专业,⼜对专业课没有兴趣,结果有⼀门专业课考试没过,补考没过,重修也没过,差⼀点拿不到学位证书,还好最后毕业是学校给我了⼀次考试的机会,考试结果是61分,可能还是⽼师放过的。所以就很烦⾃⼰的专业,毕业设计时和导师商量了⼀下,就做了⼀个计算机相关的课题,⾃⼰确实狠狠的整了⼏个学,尽管VC还是有⼀定难度,还是把论⽂整出来了,这时就注定要做个程序员。毕业分配时,想着⾃⼰不可能从事本专业,就找了个省会城市落脚,所以这个单位也确实很差,记的有⼀个⽉的⼯资是209.69元,⼀个⽼同事当时给我了⼗元,说不⽤找了,汗。。。。。。到这个单位不到⼀个⽉的时间就开始靠⾃⼰学的那⼀点计算机知道想找个软件开发的⼯作,⼀直没有找到。当时有⼀家公司找我去⾯试,我说了⼀个我的情况后,他问我了两个问题:1 你会ORACLE吗?2 你会UNIX吗?⾯试结果可想⽽知。⼀⽓之下,花了150⼤洋到书城买了三本书回来,两本ORACLE,⼀本UNIX,⼜给家⾥要了1500元,买了⼀台电脑。当年正好⼏⼗周年国庆,还有中秋节及元旦⼏个节⽇在⼀起,公司能给⼀点钱。还好有个同学也和我在⼀个城市,也很近,当时我们买回电脑的时候,没钱乘TAXI,只有找个三轮车拖回家,当时只有不到20元了。终于有实验环境了,学习ING。。。这期间还是找⼯作,终于,在这个国营单位⼤约8个⽉的时候,找到⼀家单位,答应给我700,不错了,⼯资能涨三倍,就⾛⼈了。到这家公司只呆了两个⽉,因为1 技术在⼀个⼈⼿⾥,其它⼈根本就不可能拿到 2 和⼀个会计到客户那⾥修理机器的时候,才知道这个会计去给客户那⾥要钱,只有2W,⽤于这个⽉发⼯资,晕。。。正好有⼀个机会,⼀个单位招开发⼈员,为什么我能到这家公司,是因为这家公司的试⽤⼯资太底,只有800左右,很多有⼯作经验的⼈不可能过来,我就混进⾏了,试⽤三个⽤后,终于涨到1500,哈,⼜涨了⼀倍。后来,因这家公司企业转型,软件⽅⾯做的很少,转向硬件,所以我就辞职⾛⼈了。终于到了⼀家还是很有实⼒的公司,⽤VB,VC,DELPHI做开发,但是⼀直没有放下ORACLE,周末就在家⾥做实验,备份,恢复等。做了两年多的开发,再这两年⾥,正好是OCP蝗⾍最多的时候,也算我⼀个吧,当时也只能算是⼀个PAPER OCP。当时还不知道METALINK是何物。⼀般上的⽹站就是ITPUB,CHINAUNIX,后来才上/doc/ 。随着公司的发展,⼀些⼩的ORACLE问题就由我⾃⼰来解决,这时每个⽉的收⼊⼤约是4K。慢慢的在公司⾥也⼩有名⽓,只要有数据库的问题就只有我来搞定了。慢慢的,我的开发任务就越来越少,后来就直接做DBA了,两年后,也许是太累了,通过了华为⾯试(8K+1K,全球技术⽀持,可以经常出国),正打算去SZ⼯作的时候,体检出来⾝体不达标,也就直接辞职,先休息⼏个⽉或⼀年,再上班,也是对家⼈负责吧。说句实在话,现在的⼤学⽣能真正坐下来好好学习的不多,尤其是扩招之后。我觉得还是静下⼼来好好学习吧,好好的为⾃⼰规划⼀下,祝⼤家⼀路⾛好!DBA成长1.快速有多快?很多⼈都喜欢寻找捷径,所以经常问起快速,但是我经常反复告诉⼤家的是,没有捷径,或者说没有轻⽽易举的捷径可循。当然快速两个字也是有意义的,这是这个快速的社会对于年轻⼈的要求,在《深⼊解析Oracle》⼀书的序⾔中,我写过这样⼀段话:随着技术以及时代的不断进步,社会留给DBA的成长时间越来越短,⼀个DBA从⼊门到成长为资深的时间不会超过2年。。。。张爱玲说过,成名要趁早。做技术的也是如此,成长越早越好,越快越好。理解快速两个字的涵义,推荐仔细阅读我的《深⼊解析Oracle》⼀书序⾔,这⾥总结了很多我的学习经验和学习历程2.该读什么书?Oracle⽅⾯的书籍⽆疑已经是汗⽜充栋了,那么在杂陈的书籍中,我们该读什么书来⼊门?该读什么书来深⼊进阶呢?我曾经推荐了⼏本书,并且我的观点是:书不在多,精读则灵。所以,认真细致的阅读对于学习是必不可少的。等你进⼊了Oracle的⼤门,然后怎么阅读,读什么,就完全可以⾃⼰把握了。推荐阅读:书不在多,精读则灵 - Oracle⼊门书籍推荐/doc/ /archives/2006/08/oracle_fundbook_ 3.如何获得成功?⽆疑每个⼈都热切的期待成功,那么如何才能获得成功?我曾经总结了⼀个简单的公式,罗列了我认为及其重要的成功因素:兴趣 + 勤奋 + 坚持 + ⽅法≈ 成功如果你对数据库感兴趣,由兴趣推动学习,再加上勤奋的努⼒,坚持不懈的探索,找到合适的⽅法,那么这就是你的快速学习之路,快速成功之路。4.三种境界关于境界,我在多篇⽂章中都谈到过,最早在《Oracle数据库性能优化》⼀书的序⾔中我引⽤了王国维的三种境界:古今之成⼤事业、⼤学问者,罔不经过三种之境界。"昨夜西风凋碧树。独上⾼楼,望尽天涯路。"此第⼀境界也。"⾐带渐宽终不悔,为伊消得⼈憔悴。"此第⼆境界也。"众⾥寻他千百度,蓦然回⾸,那⼈却在灯⽕阑珊处。"此第三境界也。这三种境界分别代表:打下坚实的基础,不懈的坚持,峰回路转的提升,你在学习过程中,⼀定会⾯对这样的阶段和情形,所以要有⼀定的思想准备,坚持不懈。5.由点及⾯、深⼊浅出在学习⽅法上,我主张由点及⾯、深⼊浅出,在《深⼊浅出Oracle》⼀书的序⾔中,我这样写道:书中贯彻的也是我⼀直主张的"由点到线再及⾯"的学习⽅法。特别是对于初学者,如果没有经过专门的培训和系统学习,那么⾃⼰通过实践的学习和思考就应当深⼊,在知识上,从某个⾓度来说,是"不患寡,⽽患不精深"。在我们遇到问题时,就应该不断深⼊研究,直⾄问题的核⼼本质,这样通过⼀个案例或实际问题的诊断学习和研究,我们就可以带动很多连带知识的学习,这样从⼀个点深⼊下去就形成⼀条线,再横向扩展就可以形成⼀个知识⽹,解决和研究的问题多了,就可以逐渐覆盖⼀个⾯,形成⼀个知识体系,这样慢慢的你就会觉得学习不再困难,⽽是⼀件得⼼应⼿的事情。6.⼯作机会在⼯作选择上,如果能够快速进⼊Oracle的领域可能是幸运的,但是如果第⼀份⼯作没有找到理想的位置,那么接下来的职业道路可能就会稍微曲折⼀些。很多朋友在进⾏了⼀段时间的学习之后,对转型迫不及待甚⾄焦虑不堪,这是不对的,在⼯作中应当切忌浮躁,我们每个⼈从毕业到⼯作、再到找到适合⾃⼰的位置,这通常都要经过⼀个较长的时期,学习、思考、进步、再次出发,所以要知道有时候等待是过程的必须。如果你⼿上已经有了⼀份⼯作,那你需要做的是,做好它,哪怕那不是你喜欢的!你必须证明给别⼈看你有做好⼀件事情的能⼒,别⼈才会给你下⼀个机会,如果你从来没能很好的完成⼀项任务,那你应该冷静的反省⼀下。对于处在这样境地的朋友们,我有16个字可供借鉴:去除浮躁,认真学习,不断积累,寻找机遇7.如何在有限的环境中学习?很多朋友的⼯作环境、条件有限,可能没有⼩型机、可能没有UNIX,那么如何学习和提⾼呢?我想说的是不⼀定要在多⼤的⽣产环境⾥才能锻炼出⾼⼿。据我所知很多⾼⼿都是从个⼈的简单环境中学习成长起来的,最重要的是⾃⼰学习⼀定要深⼊,多思考,多试验。有朋友说:⼩库⼀样练⽔平。这句话是很有道理的。也有朋友在ITPUB上不断试验和重复别⼈有价值的试验或测试,说:不是⾃⼰的,通过试验动⼿,变成⾃⼰的。也说得⾮常好。成为Oracle DBA最基本的⼗步随着Oracle技术和市场的快速发展,⽬前从事Oracle DBA⼯作的⼈群越来越庞⼤,从⼀些我经常去的论坛和社区中⼤家发的帖⼦上看的出,很多⼈都渴望在现在或将来从事这⼀领域的⼯作,现在的市场需求也很⼤,但不难看出,各个公司对DBA这个岗位的要求也越来越⾼,当然了,⾼薪、⾼挑战和可持续发展的职业通道吸引了⼤量的年轻⼈去尝试进⼊这⼀领域⼯作.对⼀个以前没怎么接触过Oracle Database的新⼿来说,如何才能快速的成为⼀个Oracle DBA,是他们⽬前所迫切渴望的.很多⼈因为学习的⽅法不对,⾛⼊了误区,感觉到越学越累,越学越糊涂,越学越不明⽩...关于学习⽅法这个问题,可以说是仁者见仁,智者见智.每个⼈都有⼀套⾃⼰已经习惯了学习模式和接收新事物的习惯.Oracle ACE 盖国强先⽣为后来的学弟学妹们提出了很多宝贵的意见和建议.下⾯摘录⼀些盖国强先⽣对Oracle爱好者关于学习⽅法和思路⽅⾯曾经提谈到的经典建议1)克服⼼理恐惧障碍2)学会认真阅读,基础重于⼀切3)由点及⾯、由浅⼊深4)通过实践检验所学知识5)见微知著具备了这些基本的素质,再加上强烈的兴趣和爱好,成为⼀个Oracle DBA也不是⼀件多么困难的事,就象学习其他的技能⼀样,⼊门并不是很难,但在这个⾏业能不能⾛的更远做的更好,⼀⽅⾯除了⾃⼰勤奋的努⼒外,另⼀⽅⾯也要看⼀些机缘!如果你决定打算做⼀个Oracle DBA,那么请先完成如下的这些基本功练习,等扎好了基础,再逐步的循序渐进,由浅⼊深!在下⾯的每个步骤⾥,都蕴涵了⼤量的知识,我只是给出了⼀个学习的纲要,你能不能超越就看⾃⼰的造化了!第⼀步:先认识Oracle1)认识Oracle Database2)了解Oracle Database的体系结构和⼯作原理3)了解管理Oracle Database的常⽤⼯具有哪些?4)了解⼀般DBA的⽇常⼯作内容第⼆步:安装你的第⼀套Oracle1)选择安装平台和软件2)快速阅读Installation Guide,了解安装需求3)安装Oracle相关软件4)利⽤DBCA创建、配置你的第⼀个Oracle数据库5)利⽤DBUA升级你的第⼀个数据库到较⾼版本第三步:认识EM,DBA 2.0时代的必备⼯具1)创建、配置你的第⼀个dbcontrol2)通过EM来管理你的第⼀个Oracle Database第四步:配置Oracle⽹络服务1)理解Oracle network原理2)利⽤netca配置你的第⼀个监听和服务3)启动和停⽌监听第五步:认识Instance1)了解Instnace内存结构2)了解Oracle后台进程3)了解Oracle初始化参数的作⽤、并学会管理这些参数4)启动和停⽌数据库 --了解数据库启动/关闭的过程第六步:认识Oracle的物理、逻辑结构1)控制⽂件2)数据⽂件3)参数⽂件4)⽇志⽂件5)密码⽂件6)归档⽂件7)备份⽂件8)其他⽂件9)认识表空间10)了解各种Segment11)创建、管理、删除你的第⼀个表空间和Segment12)创建、管理、删除你的第⼀个pl/sql Object第七步:管理Oracle帐户1)了解Oracle数据库⽤户的分类2)了解Oracle权限和⾓⾊的概念3)了解Profile作⽤4)创建并管理你的第⼀个Oracle user5)删除⼀个user第⼋步:熟悉Oracle数据字典和常⽤动态性能视图1)了解Oracle的数据字典2)熟悉常⽤的Oracle动态性能视图第九步:了解Oracle备份/恢复的概念1)了解Oracle备份/恢复的基本原理2)了解常⽤的备份/恢复⽅法及⼯具3)完成你的第⼀个备份4)完成你的第⼀个恢复第⼗步:学会监控数据库1)了解被监控的对象和⽬的2)熟悉Oracle⽇常诊断和调优的基本知识3)配置你的第⼀个监控4)诊断你的第⼀个问题(思路--⽅法)5)利⽤EM查看你的监控和报告在上⾯的每⼀步⾥,都包含很多的知识点(我只是列了个⼤概,因为是刚刚看到⼀个puber在问类似的问题,所以就随便写了⼀点),如果你能坚持把这些东西完整的学习下来,那么你就基本上具备了⼊门的基础知识,接下来,你需要戒骄戒躁,继续深⼊,不断的积累和完善,在进⼀步深⼊学习的基础上,逐步的把Oracle的变更管理、诊断诊断、调整管理、配置管理等各类程序逐⼀的学习和实践。然后,等你对Oracle Database有了⽐较全⾯的认识以后,可以慢慢的学习Oracle的其他Option,⽐如RAC、DataGuard、Partition、Streams、XML DB、Timesten、OLAP、Security⽅⾯的选件,同时对Oracle MAA的整体解决⽅案中的技术做⼀个全⾯的review(其实你在学习其他各种Option的时候已经涉及到了)。学习Oracle过程中的⼀些忌讳1)⽂不对题我经常看到很多⼈拿着8i,9i的资料在10g,11g上做实验,碰了⿐⼦不说,还说Oracle这不好那不好!2)少⾛弯路学习Oracle Database,应该仔细的阅读Oracle Database Concepts(有时间的话,能通读+实践多次才好),不要上来就拿个什么宝典在那⾥捣⿎,在概念没弄清楚的情况下,你能确定你每个enter下去,会导致系统如何吗?不要饶了⼤半天,最后还是因为⼀个概念的问题,跑回来重新啃书本,四处灌⽔求助3)⼼浮⽓躁学习,要耐得住寂寞,经得起诱惑。如果今天看到这个新潮就学这个,明天感觉那个热门⼜学那个,蜻蜓点⽔⼀带⽽过,那么我们就可能始终停留在⼀知半解的⽔平上⽽难以具备真知灼见。古⼈说:“世事洞明皆学问。”要做到世事洞明,就必须下⼀番苦功,认真去学习钻研,从⽽获得真谛。最后,祝愿各位Oracle fans能够通过对Oracle技术的学习,成就⾃⼰的未来,改变的命运!祝⼤家好运!怎样成为⼀个真正的DBA数据库管理员——DBA,简单讲是很多事情对很多⼈。在⼀个中⼩型企业⾥,他的⼯作范围⾮常⼴,⽽在⼀个正规管理的⼤型企业⾥,他的⼯作就会⾮常专⼀。不管你的公司是做开发的,还是应⽤第三⽅的开发⼯具,都需要决定是否雇⽤⼀个DBA.清楚⾃⼰公司是否需要的这⼀位置和这⼀位置真正做什么,以及那⼀个层次的DBA适合这⼀位置,对⼀个公司或被雇⽤的⼈来讲,是⾄关重要的。数据库管理员DBA什么是DBA数据库管理员,英⽂是Database Administrator,简称DBA。这个职位对不同的⼈意味着不同的意义。⼀个⼩的软件开发⼯作室和⼀个分⼯⾼度明细的⼤公司相⽐,DBA的职责来得更加宽泛⼀些。⼀个公司,不管它是⾃⼰开发应⽤软件,还是购买第三⽅的应⽤软件,只要涉及到数据库(有多少不涉及数据库的应⽤软件呢?数据库是商业的灵魂和⼤脑啊),就需要确定是否雇佣⼀个或⼏个DBA。知道DBA这个职位有哪些要求,对于企业内部这个职位的定义或者对于那些未来的DBA将是⾄关重要的。DBA的个性特点很多时候管理⼈员都忽视了DBA的个性特点,他们只关注DBA的技术能⼒。实际上,上⾯谈到的每个职责都意味着:DBA需要跟各种⼈员打交道,这些⼈员可能是销售商、⽤户、开发⼈员或者管理⼈员。这说明:DBA必须具有下⾯的个性特点:⾃信⼼好奇⼼坚韧的意志⼒⽼练⾃我驱动注意细节为什么这些个性特点很重要呢?我就有⼏个缺乏⾃信⼼的部下,他们反复问我⼀些事⽆巨细的问题,他们
2023年6月21日发(作者:)
数据库⼊门数据库管理员,英⽂是Database Administrator,简称DBA。这个职位对不同的⼈意味着不同的意义。⼀个⼩的软件开发⼯作室和⼀个分⼯⾼度明细的⼤公司相⽐,DBA的职责来得更加宽泛⼀些。⼀个公司,不管它是⾃⼰开发应⽤软件,还是购买第三⽅的应⽤软件,只要涉及到数据库(有多少不涉及数据库的应⽤软件呢?数据库是商业的灵魂和⼤脑啊),就需要确定是否雇佣⼀个或⼏个DBA。知道DBA这个职位有哪些要求,对于企业内部这个职位的定义或者对于那些未来的DBA将是⾄关重要的。下⾯我列出了DBA的⼀些职责:安装和升级数据库服务器(如Oracle、Microsoft SQL server),以及应⽤程序⼯具。数据库设计系统存储⽅案,并制定未来的存储需求计划。⼀旦开发⼈员设计了⼀个应⽤,就需要DBA来创建数据库存储结构(tablespaces)。⼀旦开发⼈员设计了⼀个应⽤,就需要DBA来创建数据库对象(tables,views,indexes)。根据开发⼈员的反馈信息,必要的时候,修改数据库的结构。登记数据库的⽤户,维护数据库的安全性。保证数据库的使⽤符合知识产权相关法规。控制和监控⽤户对数据库的存取访问。监控和优化数据库的性能。制定数据库备份计划,灾难出现时对数据库信息进⾏恢复维护适当介质上的存档或者备份数据备份和恢复数据库联系数据库系统的⽣产⼚商,跟踪技术信息。· 把监视数据库实例当作每⽇必做⼯作以保证其可⽤性。解决不可⽤的问题。· 收集系统统计和性能信息以便定向和配置分析。· 配置和调整数据库实例以便在应⽤程序特定要求下达到最佳性能。· 分析和管理数据库安全性。控制和监视⽤户对数据库的访问。必要时审计数据库的使⽤。· 监视备份程序。必要时提供恢复。测试备份与恢复程序。· 升级RDBMS软件并且在必要时使⽤补丁。必要时升级或者迁移数据库实例。· 通过数据库相关动作来⽀持应⽤程序开发⼈员。· 跟随数据库趋向和技术。当可应⽤时使⽤新技术。安装,测试和评估Oracle新的相关产品。· 执⾏存储和物理设计。均衡设计问题以完成性能优化。· 创建,配置和设计信的数据库实例。· 诊断,故障检测和解决任何数据库相关问题。必要时联系Oracle⽀持⼈员以便使问题得到较好的解决。· 确保Oracle⽹络软件(SQL*Net, Net8, Names, OiD)配置和运⾏的很好。· 与系统管理员(Unix& NT)⼀起⼯作以保证Oracle相关事务得到很好的处理。· 为有效的,定期的维护数据库创建任何必要的脚本SQL SERVER 是可视化的数据库,⼀般⽤SQL SERVER 的公司,都是⽹络、硬件维护员、系统维护员兼数据库管理员,不会专属请⼀个SQL SERVER数据库管理员,SQL SERVER 的管理备份等都和操作QQ⼀样,可视化的。数据库管理员能具备开发能⼒那更好,没有的话⼀般也要会写存储过程、触发器和基本的SQL查询。现在真正需要数据库管理员的,⼀般是在LINUX/UNIX 下管理ORACLE 等命令式的数据库。熟悉LINUX/UNIX 的操作指令,会写SHELL,了解ORACLE 的体系结构,会在命令⾏下⽤指令操作 ORACLE,⼤企业的数据库不会装在WINDOWS下的,LINUX⼀般也不会启动图形界⾯,都是远程连过去⽤指令操作。如何成为DBA1.1 DBA的应该具有的性格特点每个DBA的成长之路都是不同的,因为没有⼀个⼈是天⽣的DBA,每个DBA 都是在⾃⼰的职业道路上,通过⼀个偶然的拐点⾛向DBA的,⽽不是通过⾃⾝的职业规划。现在,越来越多的年轻技术⼈员都对⾃⼰的职业发展做了很好的规划,这样能够少⾛很多的弯路。作为⼀个⾛了很多弯路的⽼DBA,我的感受是DBA的成长之路是有捷径的,在这条成长之路上,并不是所有的付出都会得到合理的回报。有的⼈会⾛的⼗分轻松,有的⼈却异常艰难。这和某个⼈的机遇有关,就像⾦庸武侠⼩说⾥⾯⼀样,有些⼈需要⼏⼗年修炼,才能有所突破,⽽主⼈公往往都是通过⼀些机缘巧遇,修成正果的。⼀个DBA在成长之路上,选择正确的⽅法,加⼊正确的团队,遇到正确的导师,就和⾦庸武侠⾥⾯遇到焊冰床或者吃了仙丹灵药⼀样重要。要成为⼀个优秀的DBA,仅仅靠努⼒是不够的,还有很多因素决定了DBA的成功。个⼈的性格对于DBA来说是⼗分重要的。⾸先,DBA需要沉稳的性格,遇事不慌,做事有条理。DBA在⼯作中会遇到各种各样的挑战,因此⾯临挑战的时候,深思⽽后⾏是⼗分重要的,在没有⾜够的把握之前,不要做任何的事情,这是DBA的铁的准则。要养成这样的风格,先天⽽来的沉稳性格是必不可少的。当然某些风格可以后天养成,但是有些性格就是DBA的天敌。我曾经遇到过⼀件事情,当时⼀个客户的系统有些问题,需要我们协助分析⼀下,找出系统性能问题的根本原因。我把任务安排给⼀个DBA去做,并且我嘱咐他只允许观察系统,不能做任何操作。第⼆天⼀⼤早,我刚刚开机,就有客户的电话打进来,说怎么系统不可⽤了。等我把忙了⼀晚上的那个哥们从梦⾥叫醒的时候,我才知道,原来他昨晚对⼀个近100G的表做了100%采样的全表分析。⽽分析在早上8点的时候还没有完成。事后我问那个DBA,为什么会做这种傻事。他说他也不清楚,开始的时候他是很清醒的,知道不能对这个系统做任何事情,但是后来他发现可能是这张表分析的采样⽐例不够,如果重新分析就可以解决这个问题,所以他就想试试,虽然他知道他不应该做任何操作,但是有⼀种冲动⽀配他,就是想试试,后来他做了测算,估计早上9点前能够完成分析,就这么做了。上⾯的例⼦是个很典型的例⼦,那个DBA知道⾃⼰应该做什么,但是在好奇⼼的⽀配下,他还是做了错事,这是性格⽅⾯的缺陷导致的。DBA往往会在深夜独⽴⼯作,在这个时候,有些不理智的决定的产⽣往往是⼀个闪念,等你回过神来的时候,你可能发现⼤错已经铸就,⼀切都太晚了。作为DBA,⾯对⽣产系统的时候,任何的不理智都可能是你的职业⽣涯的终⽌,沉稳的性格对于DBA的重要性就可见⼀斑了。从上⼀个例⼦我们还可以学习到的是作为⼀个DBA,不能过于⾃信。⾃信是⼀个DBA必须拥有的素质,在这⽅⾯,往往有两个极端。第⼀个极端是不⾃信,这是⼏乎所有的刚刚进⼊DBA⾏业的技术⼈员的通病,⾯对客户,不敢⼤声说话,不敢表达⾃⼰的观点。不⾃信主要来⾃于对⾃⼰的能⼒的不肯定,总是怕⾃⼰说错话。我总是和我的同事说,只要你的技术⽐客户强,那么你就是专家,你的话就是专家的话,你说的就是正确的。对于刚刚⼊门的DBA,建⽴强烈的⾃信⼼是⼗分关键的,不过这个过程也是很长的,根据每个⼈的能⼒和性格的不同,往往需要1年到⼏年的时间。少数DBA能够在很短的时间内建⽴⾃信,这主要取决于这个⼈的悟性,如果他能很快的从和客户的交往中了解到客户的⽔平,那么他可能可以很快建⽴起基于⾃⼰技术能⼒的⾃信⼼。缺乏⾃信会成为⼀道门,把你关在⼀个成功的DBA的门外,因此建⽴充分的⾃信是成为优秀DBA 的第⼀步。和缺乏⾃信相⽐,过度⾃信是⼗分危险的,缺乏⾃信只是很容易被客户⼩看,并不会有太⼤的危害性,⽽过度⾃信是⼤多数失误的罪魁。很多⽼DBA总是说做DBA越久,胆⼦越⼩。应⽤系统是⼗分复杂的,并没有⼀定之规可循。所以⽼的DBA总是怀疑⾃⼰的判断是否完全准确。⽽过度⾃信往往出现在正在成长期的新DBA⾝上,在成功的完成⼀些项⽬后,⾃信⼼的增长也是⼗分快的,⾃信⼼增长⼀般来说是个好事,但是在⾃信⼼增长的同时,保持必要的谨慎是⼗分重要的。除了稳重和⾃信,DBA的下⼀个必备的性格是团队精神。现代社会已经不是单打独⽃的骑⼠时代了,做任何事情都是⼀个团队在⼯作。团队协作可以⼤⼤降低DBA⼯作的强度,减轻DBA⾯临的压⼒。作为⼀个DBA,不应该有孤独的感觉,因为是⼀个公司,⼀个团队在做这个⼯作。在现场的DBA可以通过各种渠道获得其他团队以及公司总部资深团队的后援。在这种情况下,遇到任何问题都不会感到⽆能为⼒。团队精神的另⼀个⽅⾯是体现在团队学习上。团队学习也可以使DBA的成长速度加快,所谓的团队学习是和我们上学的时候⼀样,⼀群⼈⼀起学习。和上学时代不同的是,DBA的团队学习更有效率。⽐如说⽬前有3个知识点需要学习,如果个⼈学习,需要3个⽉。那么如果有⼀个团队,3个⼈⼀起学习,可以⽤⼀个⽉完成⼀个知识点的学习,然后通过⼀个⽉时间,⼤家互相交流,那么2个⽉的团队学习可以达到3个⽉个⼈学习的效果。求真精神是成为⾼级DBA的必备素质,任何时候,都必须⽤求真的精神去对待。⽬前关于DBA的资料充斥着互联⽹,在学习过程中,⼀定不要盲⽬相信他⼈,凡事应该认真求证,最好能够⾃⼰进⾏实验。我碰到过很多朋友,遇到问题⽆论是否是⼗分重要的⽣产库还是测试库,都是直接到⽹上去查找⼀些解决⽅案,找到相关资料后,没有进⾏认真的甄别,就急急忙忙的去操作,最后导致了⼗分严重的后果。敢于质疑⼀切的精神是⼗分宝贵的。DBA的学习过程是⼀个不断质疑,不断求真的过程,只有⽤怀疑⼀切的态度去学习,才能够不断的深⼊探索,达到⾄⾼境界。1.2 DBA的起点经常有⼈问我,我想成为⼀个DBA,需要有什么条件。其实和其他职业⼀样,DBA 仅仅是⼀种职业,是IT⾏业数百种职业中的⼀种。要进⼊DBA这个⾏业,其⼊门的门槛是很低的,但是要成为⼀个优秀的DBA 和成为⼀个优秀的程序员⼀样,都需要经过多年的磨练。不过和程序员相⽐,DBA的⼊门之路更为困难,因为初级DBA所需要掌握的技能要⽐初级程序员更为全⾯。作为DBA的起点,其知识和技能⽅⾯的要求很简单,在专业知识⽅⾯,需要有数据库基础(⼤学课程),SQL编程,操作系统⽅⾯的知识就⾜够了。如果在UNIX操作系统,计算机体系结构和⽹络有⼀定的基础就更好了。另外作为⼀个DBA,需要阅读⼤量的英⽂资料,因此具有较好的英语阅读能⼒也是⼗分关键的。虽然DBA ⼊门的条件不⾼,但是我不赞成DBA作为你职业⽣涯的第⼀个职业。我所见到过的绝⼤多数成功的DBA都是从系统管理⼈员和程序员起步的。程序员的经历对DBA 成长也是⼗分有益的。数据库和应⽤是不可分割的,在DBA⽇常维护⼯作中,经常会遇到应⽤带来的挑战。程序员会接触到应⽤软件的设计,数据字典的设计,SQL的编写等,这些⽅⾯都是需要DBA紧密协助才能完成的,在国内的软件开发⼯作中,很多DBA的⼯作实际上是由程序员完成的。程序员在不知不觉中已经承担了⼤量的DBA⼯作,在国内经常会碰到很多项⽬经理,他们多在数据库⽅⾯的恶造诣已经很深了。因此说,DBA的起点是程序员,也是有⼀定的道理的。虽然程序员也经常从事⼀些DBA从事的⼯作,但是程序员和DBA是两种截然不同的⼯作,在从事程序员的⼯作的同时,如果你希望今后向DBA发展,那么你还需要⽐普通的程序员做的更多。学习数据库需要进⾏⼤量的实践,作为DBA的⼊门,精通数据库的安装、配置、管理是初级DBA必须具备的。另外由于数据库和主机、存储、操作系统关系密切,掌握主流的硬件、存储、⽹络、操作系统也是⼀个成功的DBA的关键。⽽对于绝⼤多数程序员来说,要接触这些东西是⽐较难的。虽然刚刚进⼊这个⾏业的预备DBA⽆法接触这些⾼端的设备和环境,也不会影响DBa的成长之路。在我们随⼿可及的微机上,我们也可以建⽴⾃⼰的学习环境。如果你的微机再⾼档⼀点,也可以通过VMWARE建⽴⾃⼰的LINUX/SCO UNIX或者SOLARIS。1.3 理解什么是Oracle 数据库对于刚刚⼊门的初学者来说。理解什么是RDBMS,什么是Oracle RDBMS是⼗分关键的。对于⼀个初学者来说,OracleConcepts这本书应该是⼀个必读的读物。Oracle概念⾥⾯的很多东西是很深的,因此对于⼀个初学者来说不⼀定能够完全明⽩。对于看不明⽩的地⽅,建议跳过去,等以后再来看,⽽不要强⾏去阅读。如果理解错了,可就后患⽆穷了。Oracle概念这本书是可以看很多遍的,每看⼀遍,都会让你感觉有所收获,现在你看不懂的地⽅,可能半年后你再来看,就能够理解了。另外在看Oracle概念的时候,也要注意动⼿能⼒的培养,很多概念需要做过实验后才会在你的脑⼦⾥形成永久的记忆,因此建议在看Oracle概念的时候,⾃⼰装⼀套Oracle,并把能够实验的东西都逐个实验⼀下。⼤型数据库的基本组成都是⼗分类似的,ORACLE主要是由存储数据的⽂件、提供数据库服务的后台进程、存储数据缓冲的共享内存和防⽌访问冲突的信号灯组成的。经常有朋友说,Oracle数据库组成的⼀些基本概念,了解的那么清楚有什么⽤。确实是这样的,如果你的⼯作只是启动关闭数据库、创建⼀些表空间和数据⽂件,那么你没有必要对Oracle的基本组成有个清晰的认识,⽽如果你想要做⼀些更深层次的⼯作,或者你想成为⼀个⾼级的DBA,那么这些基本概念是必需要掌握的。如何成为真正的Oracle DBAa. ⾸先,必须懂ORACLE,别告诉我在WINDOWS上装过就算懂差远着呢b. 其次,必须让别⼈也知道你懂ORACLE,最好的⽅法是考个认证(OCP)c. Oracle的好处是在N多平台都可以运⾏,坏处呢,就是你必须明⽩如何让它在Solaris, HP-UX, WINDOWS, Linux,上跑起来系统DOWN了找别⼈?那可以你⾃⼰的DATABASE SERVER有什么办法,下定决⼼当系统管理员吧d. ORACLE是基于⽹络的,所以在管理的时候,免不了⽤到N多⽹络东东总⿇烦别⼈会遭⽩眼的,客户也不⼲,所以DBA最好也是⽹络管理员.恩,拿个CCNA保底也不错e. 从8i之后,ORACLE全⾯转向JAVA,所以为了保住饭碗,弄懂JAVA是必需的所以DBA也要是JAVA PROGRAMMER,向不会JAVA的同志们默哀,抓紧学吧f. 除了管理之外,另⼀⽅⾯也要协助开发⼈员做PROJECT,不管是B/S还是C/S 那个S(server)总跑不了,所以DBA还要懂软件⼯程,去学UML 和ROSE吧, hohog. 现在⽤ORACLE做⽹站的很多,不管是APPLICATION SERVER⽤的是ASP,JSP,ColdFusion还是别的什么,出了问题DBA也跑不了。说你不管这个?没门趁早学学那些东西,免得到时候弄不明⽩错⼉出在什么地⽅。学习Oracle认证的⼀些⼼得技巧1、如果有⼀定的数据库基础,知道SQL是怎么回事,即使写不出来简单的SQL,但可以看动它们,你就可以跳到2。否则请先看⼀下数据库基础和SQL语⾔,不需要很深,更不需要去记忆那些复杂的SQL命令,这些可以留在以后边应⽤边学习、记忆。2、要想学好ORACLE,⾸先要学习ORACLE的体系结构,现在你不需要深⼊理解它们,但要分清⼏个关键的概念:instance & database, memory structure , process & those files ,such as data file, control file, init parameter file etc以及database , tablespace , data file和tablespace, segmnet, extent & block它们之间的关系。当然还要分清undo tablespace & redo log file等,对于很多初学者来说,能够对这些概念有个较为清晰的认识并不是⼀件容易的事,⽽这些并⾮Oracle的全部。3、是有关ORACLE的⼀些基本概念,下⾯要学习的是⼀些简单的的实际操作,就是如何去管理ORACLE数据库,当然不是管理全部的ORACLE。在此过程中你将对SQL和ORACLE体系结构有个更深⼊的了解。4、到了这⼀步你基本上算是初步掌握了ORACLE,下⾯将要根据你的⽅向来具体学习其它的ORACLE知识了。如果你是开发⼈员,则需要更多地去学习PL/SQL以及DEVELOPER,⽽这将是⼀门新的课程。如果你是⼀名DBA,请继续。5、现在你可以根据⾃⼰的实际情况,进⾏有选择的学习,也就是说下⾯的内容没有特别顺序要求。可以选择深⼊学习ORACLE的管理、备份与恢复、性能调整、⽹络等。当然在学习这些知识的过程中,如果有实际的⼯作更好,这样你可以在实际中成长,学会TROUBLE SHOOTING。6、当然在学习的过程中,你可以在⽹站或论坛中与他⼈进⾏交流,可以看别⼈的⼀些经验⽂章,也可以⾃⼰写⼀些⼼得体会。(1)对象类型⽬前不实⽤吧?我认为是这样.(2)OCP考试中对象类型的成分有多重?不多, 完全不通也通得过.(3)成为DBA的经验知识可以⽤其他途径,⽽不是实际⼯作,获得吗?我觉得很难.(4)DBA与Developer<1>你认为哪个更好?我觉得DBA ⼯作更需要经验, ⽽年龄⼤些也能胜任, ⽽Developer ⼯作如果年龄⼤了, ⼲起来可能太累.<2>他们得知识结构有何不同?Developer 主要是编程⽅⾯的知识, 加⼀些performance tuning⽅⾯的知识DBA 需要管理系统的知识, 例如安全性,可⽤性,扩展能⼒等等, 需要的系统的未来有⼀些预见, 这些都需要经验.<3>脚踩两只船容易吗?不容易, 但如果有developer的background,作dba更顺⼿些,⽽你如果成了dba,可能就不原意再做developer了.(5)Oracle应⽤开发⽬前的重点在哪⾥?不同的⼯具有不同的特点,适合不同的应⽤,关键不是重点在哪⾥,⽽是你的应⽤有什么具体的要求.<1>PB<2>VB,Delphi<3>C++持久对象->ODBC->Oracle<4>perl包访问<5>Java->JDBC Driver->Oracle<6>ASP,JSP,Servlet<7>Rational Rose UML建模->Oracle<8>PL/SQL<9>Access客户端访问<10>XML?Oracle<11>Corba?Oracle<12>其他(6)您管理您的Oracle是最常⽤的⼏个命令是什么?select(7)您为什么选择Oracle?因为oracle的⽤户最多.(8)您⼀般定义⼏个⾓⾊,各有什么权限?与应⽤有关(9)NCA还有⼈提吗?这⾥有两个东西,1 NC (Network computer) 2 NCA (Network computing architecture)先在原来概念中的NC不存在了,因为PC的价格下降太快. 但⼴义上说, 先在能上⽹的⼿机能上⽹的电视, 可以说是NC的⼀种延伸.关于NCA, 就算应⽤系统运⾏在⼀台⼤服务器上, ⽽client只通过普通的browser操作系统(不同于以前的client/server结构), 现在已经证明NCA更加优越, NCA的系统先在已经很多, 例如这个⽹易虚拟社区, 就是典型的NCA系统.(10)关系型数据库、表模型、SQL标准与范式各有什么关系?提起这个问题的起因是我发现⼤量的例⼦中表不规范(如没有关键字)关系与表可以说是同义词. SQL(Structured QueryLanguage)是关系数据库的操作语⾔范式的概念更理论化⼀些, 如果有兴趣, 可以找些关系数据库理论⽅⾯的书看,在应⽤系统中⽤的是第⼆和第三范式, 不知道也问题不⼤.(11)事务处理是不是与Java多线程的同步⽅法有些类似?举例说, 在⼀个银⾏系统中, 如果要从两个帐号间转帐, 就是A帐号减100元, B帐号加100元, 必须保证, 两个操作要么都成功, 要么都失败, 否则系统就会出现不⼀致. 这两个操作就是⼀个事务. ⽽事务的这个特征, 就叫做原⼦性. 事务的原⼦性是由Oracle系统保证的.(12)SQL3标准⾛得有多远?Oracle8离它有多远?不知道(13)推荐⼏本应试的好书吧!最好就是OCP的培训教材了.(14)在SQL*Plus中如何访问数据字典?所有字典都⽤select访问,关键你要知道字典的名字, 有多少column,含义是什么Oracle DBA职责及⽇常⼯作分析每天⼯作1、确认所有的instance状态正常登录到所有数据库或实例,检测Oracle后台进程:#ps -ef | grep ora2、检查⽂件系统的使⽤(剩余空间)。如果⽂件系统的剩余空间⼩于20%,需删除不⽤的⽂件以释放空间。#df -k34、检查数据库当⽇备份的有效性对RMAN备份⽅式,检查第三⽅备份⼯具的备份⽇志以确定备份是否成功对EXPORT备份⽅式,检查exp⽇志⽂件以确定备份是否成功对其它备份⽅式,检查相应的⽇志⽂件5678运⾏/⽣成系统报告,或者使⽤statspace收集统计数据9、检查数据库性能,记录数据库的CPU使⽤、IO、Buffer命中率等等,使⽤vmstat,iostat,glance,top10、⽇常出现问题的处理每周的⼯作1、控制数据库对象的空间扩展情况,根据本周每天的检查情况找到空间扩展很快的数据库对象,并采取相应的措施。2、监控数据量的增长情况根据本周每天的检查情况找到记录数据数量增长很快的数据库对象,并采取相应的措施3456每⽉的⼯作1、Analyze tables/indexes/clusteranalyze table estimate statistics sample 50 percent;2、检查表空间碎⽚根据本⽉每周的检查分析数据库碎⽚,找到相应的解决⽅法3、寻找数据库性能调整机会⽐较每天对数据库性能的监控报告,确定是否有必要对数据库性能进⾏调整4、数据库性能调整,如有必要进⾏性能调整5、提出下⼀步空间管理计划,根据每周的监控,提出空间管理的改进⽅法介绍⼀下⾃⼰如何成为⼀名DBA!⼤学四年,感觉什么都没有学到,只过了英语四级还是有点⽤,因为学的不是计算机专业,⼜对专业课没有兴趣,结果有⼀门专业课考试没过,补考没过,重修也没过,差⼀点拿不到学位证书,还好最后毕业是学校给我了⼀次考试的机会,考试结果是61分,可能还是⽼师放过的。所以就很烦⾃⼰的专业,毕业设计时和导师商量了⼀下,就做了⼀个计算机相关的课题,⾃⼰确实狠狠的整了⼏个学,尽管VC还是有⼀定难度,还是把论⽂整出来了,这时就注定要做个程序员。毕业分配时,想着⾃⼰不可能从事本专业,就找了个省会城市落脚,所以这个单位也确实很差,记的有⼀个⽉的⼯资是209.69元,⼀个⽼同事当时给我了⼗元,说不⽤找了,汗。。。。。。到这个单位不到⼀个⽉的时间就开始靠⾃⼰学的那⼀点计算机知道想找个软件开发的⼯作,⼀直没有找到。当时有⼀家公司找我去⾯试,我说了⼀个我的情况后,他问我了两个问题:1 你会ORACLE吗?2 你会UNIX吗?⾯试结果可想⽽知。⼀⽓之下,花了150⼤洋到书城买了三本书回来,两本ORACLE,⼀本UNIX,⼜给家⾥要了1500元,买了⼀台电脑。当年正好⼏⼗周年国庆,还有中秋节及元旦⼏个节⽇在⼀起,公司能给⼀点钱。还好有个同学也和我在⼀个城市,也很近,当时我们买回电脑的时候,没钱乘TAXI,只有找个三轮车拖回家,当时只有不到20元了。终于有实验环境了,学习ING。。。这期间还是找⼯作,终于,在这个国营单位⼤约8个⽉的时候,找到⼀家单位,答应给我700,不错了,⼯资能涨三倍,就⾛⼈了。到这家公司只呆了两个⽉,因为1 技术在⼀个⼈⼿⾥,其它⼈根本就不可能拿到 2 和⼀个会计到客户那⾥修理机器的时候,才知道这个会计去给客户那⾥要钱,只有2W,⽤于这个⽉发⼯资,晕。。。正好有⼀个机会,⼀个单位招开发⼈员,为什么我能到这家公司,是因为这家公司的试⽤⼯资太底,只有800左右,很多有⼯作经验的⼈不可能过来,我就混进⾏了,试⽤三个⽤后,终于涨到1500,哈,⼜涨了⼀倍。后来,因这家公司企业转型,软件⽅⾯做的很少,转向硬件,所以我就辞职⾛⼈了。终于到了⼀家还是很有实⼒的公司,⽤VB,VC,DELPHI做开发,但是⼀直没有放下ORACLE,周末就在家⾥做实验,备份,恢复等。做了两年多的开发,再这两年⾥,正好是OCP蝗⾍最多的时候,也算我⼀个吧,当时也只能算是⼀个PAPER OCP。当时还不知道METALINK是何物。⼀般上的⽹站就是ITPUB,CHINAUNIX,后来才上/doc/ 。随着公司的发展,⼀些⼩的ORACLE问题就由我⾃⼰来解决,这时每个⽉的收⼊⼤约是4K。慢慢的在公司⾥也⼩有名⽓,只要有数据库的问题就只有我来搞定了。慢慢的,我的开发任务就越来越少,后来就直接做DBA了,两年后,也许是太累了,通过了华为⾯试(8K+1K,全球技术⽀持,可以经常出国),正打算去SZ⼯作的时候,体检出来⾝体不达标,也就直接辞职,先休息⼏个⽉或⼀年,再上班,也是对家⼈负责吧。说句实在话,现在的⼤学⽣能真正坐下来好好学习的不多,尤其是扩招之后。我觉得还是静下⼼来好好学习吧,好好的为⾃⼰规划⼀下,祝⼤家⼀路⾛好!DBA成长1.快速有多快?很多⼈都喜欢寻找捷径,所以经常问起快速,但是我经常反复告诉⼤家的是,没有捷径,或者说没有轻⽽易举的捷径可循。当然快速两个字也是有意义的,这是这个快速的社会对于年轻⼈的要求,在《深⼊解析Oracle》⼀书的序⾔中,我写过这样⼀段话:随着技术以及时代的不断进步,社会留给DBA的成长时间越来越短,⼀个DBA从⼊门到成长为资深的时间不会超过2年。。。。张爱玲说过,成名要趁早。做技术的也是如此,成长越早越好,越快越好。理解快速两个字的涵义,推荐仔细阅读我的《深⼊解析Oracle》⼀书序⾔,这⾥总结了很多我的学习经验和学习历程2.该读什么书?Oracle⽅⾯的书籍⽆疑已经是汗⽜充栋了,那么在杂陈的书籍中,我们该读什么书来⼊门?该读什么书来深⼊进阶呢?我曾经推荐了⼏本书,并且我的观点是:书不在多,精读则灵。所以,认真细致的阅读对于学习是必不可少的。等你进⼊了Oracle的⼤门,然后怎么阅读,读什么,就完全可以⾃⼰把握了。推荐阅读:书不在多,精读则灵 - Oracle⼊门书籍推荐/doc/ /archives/2006/08/oracle_fundbook_ 3.如何获得成功?⽆疑每个⼈都热切的期待成功,那么如何才能获得成功?我曾经总结了⼀个简单的公式,罗列了我认为及其重要的成功因素:兴趣 + 勤奋 + 坚持 + ⽅法≈ 成功如果你对数据库感兴趣,由兴趣推动学习,再加上勤奋的努⼒,坚持不懈的探索,找到合适的⽅法,那么这就是你的快速学习之路,快速成功之路。4.三种境界关于境界,我在多篇⽂章中都谈到过,最早在《Oracle数据库性能优化》⼀书的序⾔中我引⽤了王国维的三种境界:古今之成⼤事业、⼤学问者,罔不经过三种之境界。"昨夜西风凋碧树。独上⾼楼,望尽天涯路。"此第⼀境界也。"⾐带渐宽终不悔,为伊消得⼈憔悴。"此第⼆境界也。"众⾥寻他千百度,蓦然回⾸,那⼈却在灯⽕阑珊处。"此第三境界也。这三种境界分别代表:打下坚实的基础,不懈的坚持,峰回路转的提升,你在学习过程中,⼀定会⾯对这样的阶段和情形,所以要有⼀定的思想准备,坚持不懈。5.由点及⾯、深⼊浅出在学习⽅法上,我主张由点及⾯、深⼊浅出,在《深⼊浅出Oracle》⼀书的序⾔中,我这样写道:书中贯彻的也是我⼀直主张的"由点到线再及⾯"的学习⽅法。特别是对于初学者,如果没有经过专门的培训和系统学习,那么⾃⼰通过实践的学习和思考就应当深⼊,在知识上,从某个⾓度来说,是"不患寡,⽽患不精深"。在我们遇到问题时,就应该不断深⼊研究,直⾄问题的核⼼本质,这样通过⼀个案例或实际问题的诊断学习和研究,我们就可以带动很多连带知识的学习,这样从⼀个点深⼊下去就形成⼀条线,再横向扩展就可以形成⼀个知识⽹,解决和研究的问题多了,就可以逐渐覆盖⼀个⾯,形成⼀个知识体系,这样慢慢的你就会觉得学习不再困难,⽽是⼀件得⼼应⼿的事情。6.⼯作机会在⼯作选择上,如果能够快速进⼊Oracle的领域可能是幸运的,但是如果第⼀份⼯作没有找到理想的位置,那么接下来的职业道路可能就会稍微曲折⼀些。很多朋友在进⾏了⼀段时间的学习之后,对转型迫不及待甚⾄焦虑不堪,这是不对的,在⼯作中应当切忌浮躁,我们每个⼈从毕业到⼯作、再到找到适合⾃⼰的位置,这通常都要经过⼀个较长的时期,学习、思考、进步、再次出发,所以要知道有时候等待是过程的必须。如果你⼿上已经有了⼀份⼯作,那你需要做的是,做好它,哪怕那不是你喜欢的!你必须证明给别⼈看你有做好⼀件事情的能⼒,别⼈才会给你下⼀个机会,如果你从来没能很好的完成⼀项任务,那你应该冷静的反省⼀下。对于处在这样境地的朋友们,我有16个字可供借鉴:去除浮躁,认真学习,不断积累,寻找机遇7.如何在有限的环境中学习?很多朋友的⼯作环境、条件有限,可能没有⼩型机、可能没有UNIX,那么如何学习和提⾼呢?我想说的是不⼀定要在多⼤的⽣产环境⾥才能锻炼出⾼⼿。据我所知很多⾼⼿都是从个⼈的简单环境中学习成长起来的,最重要的是⾃⼰学习⼀定要深⼊,多思考,多试验。有朋友说:⼩库⼀样练⽔平。这句话是很有道理的。也有朋友在ITPUB上不断试验和重复别⼈有价值的试验或测试,说:不是⾃⼰的,通过试验动⼿,变成⾃⼰的。也说得⾮常好。成为Oracle DBA最基本的⼗步随着Oracle技术和市场的快速发展,⽬前从事Oracle DBA⼯作的⼈群越来越庞⼤,从⼀些我经常去的论坛和社区中⼤家发的帖⼦上看的出,很多⼈都渴望在现在或将来从事这⼀领域的⼯作,现在的市场需求也很⼤,但不难看出,各个公司对DBA这个岗位的要求也越来越⾼,当然了,⾼薪、⾼挑战和可持续发展的职业通道吸引了⼤量的年轻⼈去尝试进⼊这⼀领域⼯作.对⼀个以前没怎么接触过Oracle Database的新⼿来说,如何才能快速的成为⼀个Oracle DBA,是他们⽬前所迫切渴望的.很多⼈因为学习的⽅法不对,⾛⼊了误区,感觉到越学越累,越学越糊涂,越学越不明⽩...关于学习⽅法这个问题,可以说是仁者见仁,智者见智.每个⼈都有⼀套⾃⼰已经习惯了学习模式和接收新事物的习惯.Oracle ACE 盖国强先⽣为后来的学弟学妹们提出了很多宝贵的意见和建议.下⾯摘录⼀些盖国强先⽣对Oracle爱好者关于学习⽅法和思路⽅⾯曾经提谈到的经典建议1)克服⼼理恐惧障碍2)学会认真阅读,基础重于⼀切3)由点及⾯、由浅⼊深4)通过实践检验所学知识5)见微知著具备了这些基本的素质,再加上强烈的兴趣和爱好,成为⼀个Oracle DBA也不是⼀件多么困难的事,就象学习其他的技能⼀样,⼊门并不是很难,但在这个⾏业能不能⾛的更远做的更好,⼀⽅⾯除了⾃⼰勤奋的努⼒外,另⼀⽅⾯也要看⼀些机缘!如果你决定打算做⼀个Oracle DBA,那么请先完成如下的这些基本功练习,等扎好了基础,再逐步的循序渐进,由浅⼊深!在下⾯的每个步骤⾥,都蕴涵了⼤量的知识,我只是给出了⼀个学习的纲要,你能不能超越就看⾃⼰的造化了!第⼀步:先认识Oracle1)认识Oracle Database2)了解Oracle Database的体系结构和⼯作原理3)了解管理Oracle Database的常⽤⼯具有哪些?4)了解⼀般DBA的⽇常⼯作内容第⼆步:安装你的第⼀套Oracle1)选择安装平台和软件2)快速阅读Installation Guide,了解安装需求3)安装Oracle相关软件4)利⽤DBCA创建、配置你的第⼀个Oracle数据库5)利⽤DBUA升级你的第⼀个数据库到较⾼版本第三步:认识EM,DBA 2.0时代的必备⼯具1)创建、配置你的第⼀个dbcontrol2)通过EM来管理你的第⼀个Oracle Database第四步:配置Oracle⽹络服务1)理解Oracle network原理2)利⽤netca配置你的第⼀个监听和服务3)启动和停⽌监听第五步:认识Instance1)了解Instnace内存结构2)了解Oracle后台进程3)了解Oracle初始化参数的作⽤、并学会管理这些参数4)启动和停⽌数据库 --了解数据库启动/关闭的过程第六步:认识Oracle的物理、逻辑结构1)控制⽂件2)数据⽂件3)参数⽂件4)⽇志⽂件5)密码⽂件6)归档⽂件7)备份⽂件8)其他⽂件9)认识表空间10)了解各种Segment11)创建、管理、删除你的第⼀个表空间和Segment12)创建、管理、删除你的第⼀个pl/sql Object第七步:管理Oracle帐户1)了解Oracle数据库⽤户的分类2)了解Oracle权限和⾓⾊的概念3)了解Profile作⽤4)创建并管理你的第⼀个Oracle user5)删除⼀个user第⼋步:熟悉Oracle数据字典和常⽤动态性能视图1)了解Oracle的数据字典2)熟悉常⽤的Oracle动态性能视图第九步:了解Oracle备份/恢复的概念1)了解Oracle备份/恢复的基本原理2)了解常⽤的备份/恢复⽅法及⼯具3)完成你的第⼀个备份4)完成你的第⼀个恢复第⼗步:学会监控数据库1)了解被监控的对象和⽬的2)熟悉Oracle⽇常诊断和调优的基本知识3)配置你的第⼀个监控4)诊断你的第⼀个问题(思路--⽅法)5)利⽤EM查看你的监控和报告在上⾯的每⼀步⾥,都包含很多的知识点(我只是列了个⼤概,因为是刚刚看到⼀个puber在问类似的问题,所以就随便写了⼀点),如果你能坚持把这些东西完整的学习下来,那么你就基本上具备了⼊门的基础知识,接下来,你需要戒骄戒躁,继续深⼊,不断的积累和完善,在进⼀步深⼊学习的基础上,逐步的把Oracle的变更管理、诊断诊断、调整管理、配置管理等各类程序逐⼀的学习和实践。然后,等你对Oracle Database有了⽐较全⾯的认识以后,可以慢慢的学习Oracle的其他Option,⽐如RAC、DataGuard、Partition、Streams、XML DB、Timesten、OLAP、Security⽅⾯的选件,同时对Oracle MAA的整体解决⽅案中的技术做⼀个全⾯的review(其实你在学习其他各种Option的时候已经涉及到了)。学习Oracle过程中的⼀些忌讳1)⽂不对题我经常看到很多⼈拿着8i,9i的资料在10g,11g上做实验,碰了⿐⼦不说,还说Oracle这不好那不好!2)少⾛弯路学习Oracle Database,应该仔细的阅读Oracle Database Concepts(有时间的话,能通读+实践多次才好),不要上来就拿个什么宝典在那⾥捣⿎,在概念没弄清楚的情况下,你能确定你每个enter下去,会导致系统如何吗?不要饶了⼤半天,最后还是因为⼀个概念的问题,跑回来重新啃书本,四处灌⽔求助3)⼼浮⽓躁学习,要耐得住寂寞,经得起诱惑。如果今天看到这个新潮就学这个,明天感觉那个热门⼜学那个,蜻蜓点⽔⼀带⽽过,那么我们就可能始终停留在⼀知半解的⽔平上⽽难以具备真知灼见。古⼈说:“世事洞明皆学问。”要做到世事洞明,就必须下⼀番苦功,认真去学习钻研,从⽽获得真谛。最后,祝愿各位Oracle fans能够通过对Oracle技术的学习,成就⾃⼰的未来,改变的命运!祝⼤家好运!怎样成为⼀个真正的DBA数据库管理员——DBA,简单讲是很多事情对很多⼈。在⼀个中⼩型企业⾥,他的⼯作范围⾮常⼴,⽽在⼀个正规管理的⼤型企业⾥,他的⼯作就会⾮常专⼀。不管你的公司是做开发的,还是应⽤第三⽅的开发⼯具,都需要决定是否雇⽤⼀个DBA.清楚⾃⼰公司是否需要的这⼀位置和这⼀位置真正做什么,以及那⼀个层次的DBA适合这⼀位置,对⼀个公司或被雇⽤的⼈来讲,是⾄关重要的。数据库管理员DBA什么是DBA数据库管理员,英⽂是Database Administrator,简称DBA。这个职位对不同的⼈意味着不同的意义。⼀个⼩的软件开发⼯作室和⼀个分⼯⾼度明细的⼤公司相⽐,DBA的职责来得更加宽泛⼀些。⼀个公司,不管它是⾃⼰开发应⽤软件,还是购买第三⽅的应⽤软件,只要涉及到数据库(有多少不涉及数据库的应⽤软件呢?数据库是商业的灵魂和⼤脑啊),就需要确定是否雇佣⼀个或⼏个DBA。知道DBA这个职位有哪些要求,对于企业内部这个职位的定义或者对于那些未来的DBA将是⾄关重要的。DBA的个性特点很多时候管理⼈员都忽视了DBA的个性特点,他们只关注DBA的技术能⼒。实际上,上⾯谈到的每个职责都意味着:DBA需要跟各种⼈员打交道,这些⼈员可能是销售商、⽤户、开发⼈员或者管理⼈员。这说明:DBA必须具有下⾯的个性特点:⾃信⼼好奇⼼坚韧的意志⼒⽼练⾃我驱动注意细节为什么这些个性特点很重要呢?我就有⼏个缺乏⾃信⼼的部下,他们反复问我⼀些事⽆巨细的问题,他们
发布评论