为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

数据库入门

2013-09-29 32页 pdf 585KB 114阅读

用户头像

is_247489

暂无简介

举报
数据库入门 数据库管理员,英文是Database Administrator,简称DBA。这个职位对不 同的人意味着不同的意义。一个小的软件开发工作室和一个分工高度明细的大公 司相比,DBA的职责来得更加宽泛一些。一个公司,不管它是自己开发应用软件, 还是购买第三方的应用软件,只要涉及到数据库(有多少不涉及数据库的应用 软件呢?数据库是商业的灵魂和大脑啊),就需要确定是否雇佣一个或几个 DBA。知道DBA这个职位有哪些要求,对于企业内部这个职位的定义或者对于那 些未来的DBA将是至关重要的。下面我列出了DBA的一些职责: ...
数据库入门
数据库管理员,英文是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 一般也不会启动图形界面, 都是远程连过去用 指令操作。 如何成为 DBA 1.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 是十分关键的。对于一个初学者来说, Oracle Concepts 这本书应该是一个必读的读物。Oracle概 念里面的很多东西是很深的,因此对于一个初学 者来说不一定能够完全明白。对于看不明白的地 方,建议跳过去,等以后再来看,而不要强行去 阅读。如果理解错了,可就后患无穷了。Oracle概 念这本书是可以看很多遍的,每看一遍,都会让你感觉有所收 获,现在你看不懂的地方,可能半年后你再来看,就能够理解了。另外在看 Oracle概念的时候,也要注意动手能力的培养,很多概念需要做过实验后才会 在你的脑子里形成永久的记忆,因此建议在看 Oracle概念的时 候,自己装一套 Oracle,并把能够实验的东西都 逐个实验一下。 大型数据库的基本组成都是十分类似的,ORACLE 主要是由存储数据的文件、提供数据库服务的后 台进程、存储数据缓冲的共享内存和防止访问冲 突的信号灯组成的。 经常有朋友说,Oracle数据库组成的一些基本概念,了解的那么清楚有什 么用。确实是这样的,如果你的工作只是启动关闭数据库、创建一些表空间和数 据文件,那么你没有必要对Oracle的基本组成有个清晰的认识,而如果你想 要做一些更深层次的工作,或者你想成为一个高 级的 DBA,那么这些基本概念是必需要掌握的。 如何成为真正的 Oracle DBA a. 首先,必须懂 ORACLE,别告诉我在 WINDOWS上装过就算懂差远着呢 b. 其次,必须让别人也知道你懂 ORACLE,最好的方法是考个认证(OCP) c. Oracle的好处是在 N多平台都可以运行,坏处呢,就是你必须明白如何让它 在 Solaris, HP-UX, WINDOWS, Linux, AIX,Tru64.......上跑起来系统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 吧, hoho   g. 现在用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 Query Language)是关系数据库的操作语言 范式的概念更理论化一些, 如果有兴趣, 可以找些关系数据库理论方面的书看,在 应用系统中用的是第二和第三范式, 不知道也问题不大.    (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 ora 2、检查文件系统的使用(剩余空间)。如果文件系统的剩余空间小于 20%, 需删除不用的文件以释放空间。#df -k 3、检查日志文件和trace文件记录 alert和 trace文件中的错误。 cd $Oracle_BASE/oradata//bdump tail -f alert_.log 发现任何新的 ORA_错误,记录并解决 4、检查数据库当日备份的有效性 对 RMAN备份方式,检查第三方备份工具的备份日志以确定备份是否成功 对 EXPORT备份方式,检查 exp日志文件以确定备份是否成功 对其它备份方式,检查相应的日志文件 5、检查数据文件的状态记录状态不是“online"的数据文件,并做恢复。 select file_name from dba_data_files where status="OFFLINE" 6、检查表空间的 使用情况 select a.tablespace_name,round((total-free)/total,3)*100 pecent from (select tablespace_name,sum(bytes) free from dba_free_space group by tablespace_name) a, (select tablespace_name,sum(bytes) total from dba_data_files group by tablespace_name) b where a.tablespace_name=b.tablespace_name 7、检查剩余表空 间 select tablespace_name,sum(blocks) as free_blk,trunc(sum(bytes)/(1024*1024)) as free_m, max(bytes)/(1024) as big_chunk_k,count(*) as num_chunks from dba_free_space group by tablespace_name; 8、监控数据库性 能 运行 utlbstat.sql/utlestat.sql生成系统报告,或者使用statspace收集 统计数据 9、检查数据库性能,记录数据库的 CPU使用、IO、Buffer命中率等等,使用 vmstat,iostat,glance,top 10、日常出现问题的处理 每周的工作 1、控制数据库对象的空间扩展情况,根据本周每天的检查情况找到空间扩 展很快的数据库对象,并采取相应的措施。 删除历史数据、扩展表空间 alter tablespace add datafile '' size 调整数据对象的 存储参数 next extent pct_increase 2、监控数据量的增长情况 根据本周每天的检查情况找到记录数据数量增长很快的数据库对象,并采 取相应的措施 删除历史数据、扩表空间 alter tablespace add datafile '' size 3、系统健康检查 检查以下内容: init.ora controlfile redo log file archiveing sort area size tablespace(system,temporary,tablespace fragment) datafiles(autoextend,location) object(number of extent,next extent,index) rollback segment logging & tracing(alert.log,max_dump_file_size,sqlnet) 4、检查无效的数 据库对象 select owner,object_name,object_type from dba_objects where status='INVALID' 5、检查不起作用 的约束 select owner,constraint_name,table_name,constraint_type,status from dba_constraints where status='DISABLED' and constraint_type='p' 6、检查无效的 trigger select owner,trigger_name,table_name,status from dba_triggers where status='DISABLED' 每月的工 作 1、Analyze tables/indexes/cluster analyze 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,后来才上ORACLE.COM.CN。随着公司的发展,一些小的 ORACLE问题就由我自己来解决,这时每个月的收入大约是 4K。慢慢的在公司里 也小有名气,只要有数据库的问题就只有我来搞定了。慢慢的,我的开发任务就 越来越少,后来就直接做DBA了,两年后,也许是太累了,通过了华为面试 (8K+1K,全球技术支持,可以经常出国),正打算去 SZ工作的时候,体检出来 身体不达标,也就直接辞职,先休息几个月或一年,再上班,也是对家人负责 吧。说句实在话,现在的大学生能真正坐下来好好学习的不多,尤其是扩招之后。 我觉得还是静下心来好好学习吧,好好的为自己规划一下,祝大家一路走好! DBA成长 1.快速有多快? 很多人都喜欢寻找捷径,所以经常问起快速,但是我经常反复告诉大家的是, 没有捷径,或者说没有轻而易举的捷径可循。 当然快速两个字也是有意义的,这是这个快速的社会对于年轻人的要求,在《深 入解析 Oracle 》一书的序言 中,我写过这样一段话:随着技术以及时代的不 断进步,社会留给 DBA 的成长时间越来越短,一个DBA从入门到 成长为资深的时间不会超过 2年。。。 。张爱玲说过,成名要 趁早。做技术的也是如此,成长越早越好,越快越好。理解快速两个字的涵 义,推荐仔细阅读我的《深入解析Oracle》一书序言,这里了很多我的学习 经验和学习历程 2.该读什么书? Oracle方面的书籍无疑已经是汗牛充栋了,那么在杂陈的书籍中,我们该读什 么书来入门?该读什么书来深入进阶呢? 我曾经推荐了几本书,并且我的观点是:书不在多,精读则灵。所以,认真细致 的阅读对于学习是必不可少的。 等你进入了Oracle的大门,然后怎么阅读,读什么,就完全可以自己把握了。 推荐阅读:书不在多 , 精读则灵 - Oracle 入门书籍推荐 http://www.eygle.com/archives/2006/08/oracle_fundbook_recommand.html 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,那么请先完成如下的这些基本功练 习,等扎好了基础,再逐步的循序渐进,由浅入深!  在下面的每个步骤里,都蕴涵了大量的知识,我只是给出了一个学习的纲要, 你能不能超越就看自己的造化了! 第一步:先认识Oracle 1)认识Oracle Database 2)了解Oracle Database的体系结构和工作原理 3)了解管理Oracle Database的常用工具有哪些? 4)了解一般 DBA的日常工作内容 第二步:安装你的第一套 Oracle 1)选择安装平台和软件 2)快速阅读 Installation Guide,了解安装需求 3)安装Oracle相关软件 4)利用DBCA创建、配置你的第一个Oracle数据库 5)利用DBUA升级你的第一个数据库到较高版本 第三步:认识 EM,DBA 2.0时代的必备工具 1)创建、配置你的第一个dbcontrol 2)通过EM来管理你的第一个Oracle Database 第四步:配置Oracle网络服务 怎样成为一个真正的DBA 数据库管理员——DBA,简单讲是很多事情对很多人。在一个中小型企业里, 他的工作范围非常广,而在一个正规管理的大型企业里,他的工作就会非常专 一。不管你的公司是做开发的,还是应用第三方的开发工具,都需要决定是否 雇用一个DBA. 清楚自己公司是否需要的这一位置和这一位置真正做什么,以 及那一个层次的DBA适合这一位置,对一个公司或被雇用的人来讲,是至关重 要的。   数据库管理员DBA什么是DBA   数据库管理员,英文是Database Administrator,简称DBA。这个职位对不 同的人意味着不同的意义。一个小的软件开发工作室和一个分工高度明细的大 公司相比,DBA的职责来得更加宽泛一些。一个公司,不管它是自己开发应用软 件,还是购买第三方的应用软件,只要涉及到数据库(有多少不涉及数据库的 应用软件呢?数据库是商业的灵魂和大脑啊),就需要确定是否雇佣一个或几 个DBA。知道DBA这个职位有哪些要求,对于企业内部这个职位的定义或者对于 那些未来的DBA将是至关重要的。 DBA的个性特点   很多时候管理人员都忽视了DBA的个性特点,他们只关注 DBA的技术能力。 实际上,上面谈到的每个职责都意味着:DBA需要跟各种人员打交道,这些人 员可能是销售商、用户、开发人员或者管理人员。这说明:DBA必须具有下面的个 性特点:自信心 好奇心 坚韧的意志力 老练 自我驱动 注意细节 为什么这些个性特点很重要呢?   我就有几个缺乏自信心的部下,他们反复问我一些事无巨细的问题,他们 没有信心哪怕做最小的决定。他们也缺乏工作的主动性。这对于初级DBA来说可 能问题不太大,但对于那些高级DBA来说,如果他们缺乏自信心,他们又可以 依赖谁帮他们决策呢?在DBA的面试中,即使你不能回答某个技术问 题,你也要表现出足够的自信心。最致命的不是不知道问题的答 案,而是不知道从哪儿得到答案。   几乎所有的数据库系统都在不停地更新。但并不是所有的更新都有技术文 档。对于好的DBA来说,好奇心是必需的。没有好奇心和求知欲的DBA总是等待 有人告诉他们答案。而一个求知欲强的DBA将安装最新版本 的数据库系统,并立即开始搜寻那些哪怕是细微的 功能和性能上的差异和增强,从而改进自己的工作。 应试时一个必然问及的问题是:你手头有哪些参考资料?你如何使用它们?毫 无疑问,如果你只回答了数据库的文档,或者你甚至没有读过他们,你的"股 票市值"将大大下降。好奇心会驱使DBA们理解数据字典(Data Dictionary)、管 理工具(Tools)或者其他支持包(Packages)。   DBA常常会碰到棘手的问题。寻找答案是一个需要坚韧意志力、可以经受摔 打的个性特点。我常常在一些讨论组或者论坛上看到DBA们提出的问题,这些问 题往往是提问者自己可以解决的,如果他们具有坚韧的个性特点,并努力寻求 问题的答案。   自我驱动对每个人都是很重要的,对DBA尤其如此。DBA要能想办法 成为 Oracle DBA 的必备技能 一个称职的数据库DBA仅仅取得ORACLE厂家认证是不够的,关键是真实环境的 历练,笔者从事 ORACLE DBA多年,经历 ORACLE版本从8i到 10g(注:对于一个 公司或单位的真实环境,对于版本的追求首要的,关键的稳定性),操作系统从 windows单机、双机到主流 IBM、HP的 UNIX操作系统,以下是笔者多年从事 ORACLE DBA的一些心得,希望能给初学者一些启示和鼓励,与同道中人带来一 些共鸣。 作为一个专业的DBA必须具备以下技能: 一、os : linux,solaris或其他 unix起码要一种 二、bash (不精通也要熟) LINUX与 UNIX SHELL编程 指南.pdf 三、perl (精通):Perl_CD_BookShelf.chm,包括 learning perl、perl pragramming  四、java(掌握)包括jdbc thin,oci等 4类不同的 连接方式,性能设置,一些中间件的知识了解一些就 够了 五、oracle performance tuning(范围很广) OCP performance book下tom的书《Wrox - Expert one-on- one Oracle》(Oracle专家高级编程) 本书是一本关于使用Oracle成功开发应用程序的工具手册,由 Oracle公司的资 深开发人员 Thomas Kyte集自己多年开发经验编写。学习本书能帮助读者彻底理 解Oracle的工作原理,并将Oracle作为一个强大的计算环境来使用,书中内容 可以迅速解决大多数信息管理问题。 Oracle SQL High-Performance Tuning (2nd Edition): 六、PL/SQL: OReilly_oracle_Bookshelf 包括: Oracle PL/SQL Programming, 2nd Edition by Steven Feuerstein 介绍:PL/SQL Guru Steven Feuerstein 的经典之作 Oracle PL/SQL Programming个人认为是一本很好的参 考书,从 1995 年到 2005 年的 10 年间,千千万万的程序员从这本书收益良多. 这恐怕也是关于 PL/SQL 方面最好的一本书了,特别是第四版涵盖了 Oracle 10gR2 的相关特性,并且相对第三版来说多了安全、IO、I18N等新的章节。 Oracle Built-in Packages by Steven Feuerstein 介绍:Oracle is the most popular database management system in use today, and PL/SQL plays a pivotal role in current and projected Oracle products and applications…… 七、oracle network ocp network book 八、os tuning system performance tuning 2nd editon by gian-paolo《系统性能优化(第二版)》,介绍:本书 解答了读者对计算机系统提出的两个最基本的问题:如何在不购买新硬件的条 件下完成更多的工作?何时才真正需要添加硬件(更多的内存,更快的磁盘、 CPU 以及网络接口)?有时只需消除一些简单的瓶颈即可解决许多性能问题——但是 要实现它,你必须充分了解自己的计算机和网络,从而找到真正的瓶颈所在… … 九、sql loader & exp/imp,有很多这样的资料: export one to one by Tom:很经典的一本书,很难在网 上找到电子版,估计只能老老实实买书 十、oracle sql: 可阅读 OCP OracleXX Database Performance Tuning 十一、oracle rac: 可阅读 OCP OracleXX Database Performance Tuning Dataguard配置Step by Step 十二、存储:hds、netapp、emc、nfs、san、nasas、iscsi等... Data ONTAP 7.1® Cluster Installation and Administration Guide 十三、安全控制 practice oracle 8i by jenathon metalink bug and patch search 十四、数据库安装升级,OS安装升级 十五、数据库备份与恢复 十六、数据库迁移 做 java太苦了,如何成为一名高薪的 DBA 呢 ? 我做 php 和 java已经很久了,真的是太苦了,而且人太多,我想凭我的资质在 java里是混不出什么名堂的了,想转 dba了。老师说过在 IT里面有一黄金行业: DBA,有一个可以干一辈子的 IT职位:DBA,因为它是吃经验的,干的时间越久越 好。我不想浪费我的时间了,希望从今天开始进入 DBA 的行列。 我做了一个简单的计划:想找到第一份 DBA 的工作要有两 个基本的东西:你英语好,有一个精通的数据库 oracle9i 。 java 的基本知识,struts,spring.数据结构,基本算法,设计模式,离散数学, 线形代数,高数,概率统计,但这
/
本文档为【数据库入门】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索