数据库入门.docx

上传人:b****8 文档编号:23856968 上传时间:2023-05-21 格式:DOCX 页数:36 大小:58.54KB
下载 相关 举报
数据库入门.docx_第1页
第1页 / 共36页
数据库入门.docx_第2页
第2页 / 共36页
数据库入门.docx_第3页
第3页 / 共36页
数据库入门.docx_第4页
第4页 / 共36页
数据库入门.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

数据库入门.docx

《数据库入门.docx》由会员分享,可在线阅读,更多相关《数据库入门.docx(36页珍藏版)》请在冰豆网上搜索。

数据库入门.docx

数据库入门

数据库管理员,英文是DatabaseAdministrator,简称DBA。

这个职位对不同的人意味着不同的意义。

一个小的软件开发工作室和一个分工高度明细的大公司相比,DBA的职责来得更加宽泛一些。

一个公司,不管它是自己开发应用软件,还是购买第三方的应用软件,只要涉及到数据库(有多少不涉及数据库的应用软件呢?

数据库是商业的灵魂和大脑啊),就需要确定是否雇佣一个或几个DBA。

知道DBA这个职位有哪些要求,对于企业内部这个职位的定义或者对于那些未来的DBA将是至关重要的。

下面我列出了DBA的一些职责:

安装和升级数据库服务器(如Oracle、MicrosoftSQLserver),以及应用程序工具。

数据库设计系统存储方案,并制定未来的存储需求计划。

一旦开发人员设计了一个应用,就需要DBA来创建数据库存储结构(tablespaces)。

一旦开发人员设计了一个应用,就需要DBA来创建数据库对象(tables,views,indexes)。

根据开发人员的反馈信息,必要的时候,修改数据库的结构。

登记数据库的用户,维护数据库的安全性。

保证数据库的使用符合知识产权相关法规。

控制和监控用户对数据库的存取访问。

监控和优化数据库的性能。

制定数据库备份计划,灾难出现时对数据库信息进行恢复

维护适当介质上的存档或者备份数据

备份和恢复数据库

联系数据库系统的生产厂商,跟踪技术信息。

·把监视数据库实例当作每日必做工作以保证其可用性。

解决不可用的问题。

·收集系统统计和性能信息以便定向和配置分析。

·配置和调整数据库实例以便在应用程序特定要求下达到最佳性能。

·分析和管理数据库安全性。

控制和监视用户对数据库的访问。

必要时审计数据库的使用。

·监视备份程序。

必要时提供恢复。

测试备份与恢复程序。

·升级RDBMS软件并且在必要时使用补丁。

必要时升级或者迁移数据库实例。

·通过数据库相关动作来支持应用程序开发人员。

·跟随数据库趋向和技术。

当可应用时使用新技术。

安装,测试和评估Oracle新的相关产品。

·执行存储和物理设计。

均衡设计问题以完成性能优化。

·创建,配置和设计信的数据库实例。

·诊断,故障检测和解决任何数据库相关问题。

必要时联系Oracle支持人员以便使问题得到较好的解决。

·确保Oracle网络软件(SQL*Net,Net8,Names,OiD)配置和运行的很好。

·与系统管理员(Unix&NT)一起工作以保证Oracle相关事务得到很好的处理。

·为有效的,定期的维护数据库创建任何必要的脚本

SQLSERVER是可视化的数据库,一般用SQLSERVER的公司,都是网络、硬件维护员、系统维护员兼数据库管理员,不会专属请一个SQLSERVER数据库管理员,SQLSERVER的管理备份等都和操作QQ一样,可视化的。

数据库管理员能具备开发能力那更好,没有的话一般也要会写存储过程、触发器和基本的SQL查询。

现在真正需要数据库管理员的,一般是在LINUX/UNIX下管理ORACLE等命令式的数据库。

熟悉LINUX/UNIX的操作指令,会写SHELL,了解ORACLE的体系结构,会在命令行下用指令操作ORACLE,大企业的数据库不会装在WINDOWS下的,LINUX一般也不会启动图形界面,都是远程连过去用指令操作。

如何成为DBA

1.1DBA的应该具有的性格特点

   每个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.2DBA的起点

   经常有人问我,我想成为一个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/SCOUNIX或者SOLARIS。

   1.3理解什么是Oracle数据库

   对于刚刚入门的初学者来说。

理解什么是RDBMS,什么是OracleRDBMS是十分关键的。

对于一个初学者来说,OracleConcepts这本书应该是一个必读的读物。

Oracle概念里面的很多东西是很深的,因此对于一个初学者来说不一定能够完全明白。

对于看不明白的地方,建议跳过去,等以后再来看,而不要强行去阅读。

如果理解错了,可就后患无穷了。

Oracle概念这本书是可以看很多遍的,每看一遍,都会让你感觉有所收获,现在你看不懂的地方,可能半年后你再来看,就能够理解了。

另外在看Oracle概念的时候,也要注意动手能力的培养,很多概念需要做过实验后才会在你的脑子里形成永久的记忆,因此建议在看Oracle概念的时候,自己装一套Oracle,并把能够实验的东西都逐个实验一下。

大型数据库的基本组成都是十分类似的,ORACLE主要是由存储数据的文件、提供数据库服务的后台进程、存储数据缓冲的共享内存和防止访问冲突的信号灯组成的。

   经常有朋友说,Oracle数据库组成的一些基本概念,了解的那么清楚有什么用。

确实是这样的,如果你的工作只是启动关闭数据库、创建一些表空间和数据文件,那么你没有必要对Oracle的基本组成有个清晰的认识,而如果你想要做一些更深层次的工作,或者你想成为一个高级的DBA,那么这些基本概念是必需要掌握的。

如何成为真正的OracleDBA

a.首先,必须懂ORACLE,别告诉我在WINDOWS上装过就算懂差远着呢

b.其次,必须让别人也知道你懂ORACLE,最好的方法是考个认证(OCP)

c.Oracle的好处是在N多平台都可以运行,坏处呢,就是你必须明白如何让它在Solaris,HP-UX,WINDOWS,Linux,AIX,Tru64.......上跑起来系统DOWN了找别人?

那可以你自己的DATABASESERVER有什么办法,下定决心当系统管理员吧

  d.ORACLE是基于网络的,所以在管理的时候,免不了用到N多网络东东总麻烦别人会遭白眼的,客户也不干,所以DBA最好也是网络管理员.恩,拿个CCNA保底也不错

  e.从8i之后,ORACLE全面转向JAVA,所以为了保住饭碗,弄懂JAVA是必需的所以DBA也要是JAVAPROGRAMMER,向不会JAVA的同志们默哀,抓紧学吧

  f.除了管理之外,另一方面也要协助开发人员做PROJECT,不管是B/S还是C/S那个S(server)总跑不了,所以DBA还要懂软件工程,去学UML和ROSE吧,hoho

  g.现在用ORACLE做网站的很多,不管是APPLICATIONSERVER用的是ASP,JSP,ColdFusion还是别的什么,出了问题DBA也跑不了。

说你不管这个?

没门趁早学学那些东西,免得到时候弄不明白错儿出在什么地方。

学习Oracle认证的一些心得技巧

1、如果有一定的数据库基础,知道SQL是怎么回事,即使写不出来简单的SQL,但可以看动它们,你就可以跳到2。

否则请先看一下数据库基础和SQL语言,不需要很深,更不需要去记忆那些复杂的SQL命令,这些可以留在以后边应用边学习、记忆。

2、要想学好ORACLE,首先要学习ORACLE的体系结构,现在你不需要深入理解它们,但要分清几个关键的概念:

instance&database,memorystructure,process&thosefiles,suchasdatafile,controlfile,initparameterfileetc 以及database,tablespace,datafile和tablespace,segmnet,extent&block它们之间的关系。

  当然还要分清undotablespace&redologfile等,对于很多初学者来说,能够对这些概念有个较为清晰的认识并不是一件容易的事,而这些并非Oracle的全部。

  3、是有关ORACLE的一些基本概念,下面要学习的是一些简单的的实际操作,就是如何去管理ORACLE数据库,当然不是管理全部的ORACLE。

在此过程中你将对SQL和ORACLE体系结构有个更深入的了解。

  4、到了这一步你基本上算是初步掌握了ORACLE,下面将要根据你的方向来具体学习其它的ORACLE知识了。

如果你是开发人员,则需要更多地去学习PL/SQL以及DEVELOPER,而这将是一门新的课程。

如果你是一名DBA,请继续。

  5、现在你可以根据自己的实际情况,进行有选择的学习,也就是说下面的内容没有特别顺序要求。

可以选择深入学习ORACLE的管理、备份与恢复、性能调整、网络等。

当然在学习这些知识的过程中,如果有实际的工作更好,这样你可以在实际中成长,学会TROUBLESHOOTING。

  6、当然在学习的过程中,你可以在网站或论坛中与他人进行交流,可以看别人的一些经验文章,也可以自己写一些心得体会。

(1)对象类型目前不实用吧?

  我认为是这样.

(2)OCP考试中对象类型的成分有多重?

  不多,完全不通也通得过.

(3)成为DBA的经验知识可以用其他途径,而不是实际工作,获得吗?

  我觉得很难.

(4)DBA与Developer

  <1>你认为哪个更好?

  我觉得DBA工作更需要经验,而年龄大些也能胜任,而Developer工作如果年龄大了,干起来可能太累.

  <2>他们得知识结构有何不同?

  Developer主要是编程方面的知识,加一些performancetuning方面的知识

  DBA需要管理系统的知识,例如安全性,可用性,扩展能力等等,需要的系统的未来有一些预见,这些都需要经验.

  <3>脚踩两只船容易吗?

  不容易,但如果有developer的background,作dba更顺手些,而你如果成了dba,可能就不原意再做developer了.

  (5)Oracle应用开发目前的重点在哪里?

  不同的工具有不同的特点,适合不同的应用,关键不是重点在哪里,而是你的应用有什么

  具体的要求.

  <1>PB<2>VB,Delphi

  <3>C++持久对象->ODBC->Oracle

  <4>perl包访问

  <5>Java->JDBCDriver->Oracle

  <6>ASP,JSP,Servlet

  <7>RationalRoseUML建模->Oracle

  <8>PL/SQL

  <9>Access客户端访问

  <10>XML?

Oracle

  <11>Corba?

Oracle

  <12>其他

  (6)您管理您的Oracle是最常用的几个命令是什么?

  select

  (7)您为什么选择Oracle?

  因为oracle的用户最多.

  (8)您一般定义几个角色,各有什么权限?

  与应用有关

  (9)NCA还有人提吗?

  这里有两个东西,1NC(Networkcomputer)2NCA(Networkcomputingarchitecture)先在原来概念中的NC不存在了,因为PC的价格下降太快.但广义上说,先在能上网的手机能上网的电视,可以说是NC的一种延伸.

  关于NCA,就算应用系统运行在一台大服务器上,而client只通过普通的browser操作系统(不同于以前的client/server结构),现在已经证明NCA更加优越,NCA的系统先在已经很多,例如这个网易虚拟社区,就是典型的NCA系统.

  (10)关系型数据库、表模型、SQL标准与范式各有什么关系?

  提起这个问题的起因是我发现大量的例子中表不规范(如没有关键字)关系与表可以说是同义词.SQL(StructuredQueryLanguage)是关系数据库的操作语言  范式的概念更理论化一些,如果有兴趣,可以找些关系数据库理论方面的书看,在应用系统中用的是第二和第三范式,不知道也问题不大.

  (11)事务处理是不是与Java多线程的同步方法有些类似?

  举例说,在一个银行系统中,如果要从两个帐号间转帐,就是A帐号减100元,B帐号加100元,必须保证,两个操作要么都成功,要么都失败,否则系统就会出现不一致.这两个操作就是一个事务.而事务的这个特征,就叫做原子性.事务的原子性是由Oracle系统保证的.

  (12)SQL3标准走得有多远?

Oracle8离它有多远?

  不知道

  (13)推荐几本应试的好书吧!

  最好就是OCP的培训教材了.

  (14)在SQL*Plus中如何访问数据字典?

所有字典都用select访问,关键你要知道字典的名字,有多少column,含义是什么

OracleDBA职责及日常工作分析

每天工作

   1、确认所有的instance状态正常登录到所有数据库或实例,检测Oracle后台进程:

#ps-ef|grepora

   2、检查文件系统的使用(剩余空间)。

如果文件系统的剩余空间小于20%,需删除不用的文件以释放空间。

#df-k

   3、检查日志文件和trace文件记录alert和trace文件中的错误。

cd$Oracle_BASE/oradata//bdump

tail-falert_.log

   发现任何新的ORA_错误,记录并解决

   4、检查数据库当日备份的有效性

   对RMAN备份方式,检查第三方备份工具的备份日志以确定备份是否成功

   对EXPORT备份方式,检查exp日志文件以确定备份是否成功

   对其它备份方式,检查相应的日志文件

   5、检查数据文件的状态记录状态不是“online"的数据文件,并做恢复。

selectfile_namefromdba_data_fileswherestatus="OFFLINE"

   6、检查表空间的使用情况

selecta.tablespace_name,round((total-free)/total,3)*100pecent

from(selecttablespace_name,sum(bytes)freefromdba_free_spacegroupbytablespace_name)a,

(selecttablespace_name,sum(bytes)totalfromdba_data_filesgroupbytablespace_name)b

wherea.tablespace_name=b.tablespace_name

   7、检查剩余表空间

selecttablespace_name,sum(blocks)asfree_blk,trunc(sum(bytes)/(1024*1024))asfree_m,

max(bytes)/(1024)asbig_chunk_k,count(*)asnum_chunks

fromdba_free_spacegroupbytablespace_name;

   8、监控数据库性能

   运行utlbstat.sql/utlestat.sql生成系统报告,或者使用statspace收集统计数据

   9、检查数据库性能,记录数据库的CPU使用、IO、Buffer命中率等等,使用vmstat,iostat,glance,top

   10、日常出现问题的处理

   每周的工作

   1、控制数据库对象的空间扩展情况,根据本周每天的检查情况找到空间扩展很快的数据库对象,并采取相应的措施。

   删除历史数据、扩展表空间

altertablespaceadddatafile'

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1