DBA-I 第一章 ORACLE体系结构(一).docx
第一章Orac1.e的体系架构这章理论比较多,可能有点枯燥。大家要打起精神。从本章开始我们正式进入DBA1,DB是一个岗位的缩写(databasead11>instrator),也就是数据库管理员。要做个称职的DBA,需要全面和深入的了解ORAC1.E的内部机制,包括ORAC1.E的实例(内存结构和后台进程)、ORAC1.E物理结构,ORAC1.E逻辑结构、ORAc1.E的安装,()RAC1.E维护、ORAC1.E网络配置、ORAC1.E备份与恢复、ORAC1.E高可用性(DG,RAC,流,高级复制)、ORAC1.E性能优化,另外还需要了解操作系统的维护和管理知识,存储知识,HA的知识等。所以需要非常多的知识进行串联才能做一个合格的DB.A。这些理论基础上都是环环相扣,另外每个知识点还需要大量了实践,来提升DBA的解决问题的思维和能力。接卜.来我们的课先从ORAe1.E的核心组件学习。本章的主要内容描述Orac1.e效劳落的体系结构及其主要组件列出将用户连接到Orac1.e例程所涉及的结构列出以下语句处理过程的各个阶段:查询舟DM1.语句COMMITORAC1.E主要组件我们先来学习ORAC1.E的主要组件,来看一下ORAC1.E组件架构图。OverviewofPrimaryComponents这是张全电ORAC1.E核心组件框架图。每个核心组件会仃很多小的组件构成,我们的DBAI就是来全面介绍每个核心组件的细节,r解每个组件里面的细节确实不容易,这也是我们走向DBA的重中之重。ORAC1.E主要体系结构包括左上局部是用户进程,效劳器进程右上局部是实例下面是数据库库文件我们先脑子里有这么个概念,接下来会用一些生活化的故事来了解ORAC1.E机制,了解ORAC1.E为什么设计出这样张图。我们先来看什么是OKACI.E效劳ORAC1.E效劳我们现在各行各业抓的都是效劳,有J'好的效劳,顾客才会选择它的产品.我们现在IT界非常流行一个SoM面向效劳的体系结构)的概念,它将应用程序的不同功能单元(称为效劳)通过这些效劳之间定义良好的接口和契约联系起来。ServiceConsumersConfiguration&Ru1.esManagement&Reporting公共总务系n三I1.UUI1.(CH上图是一个SOA的实用例子。ORAC1.E也同样提供了一个效劳,我们叫ORM1.ESERYER,我们来看卜.面这张图Orac1.eServerAnOrac1.eserver: Isadatabasemanagementsystemthatprovidesanopen,comprehensive,integratedapproachtoinformationmanagement ConsistsofanOrac1.eInstanceandanOrac1.edatabaseORAC1.eI1-5Co(rr1.gM0Orac1.eC«rp<xaticn3)01.AI1.rQh1.steeerved图例IO一个ORAC1.E效劳提供r开放的完整性的信息管理系统.ORAC1.E效劳由一个实例和一个数据库组成。我们用个生活中的例子来便于理解,大家都去过图书馆,它存放的数据就是书,这书可以被学生借来看,或者被学生买来看,也可能是被采购员从外地采购来。图书馆就是提供一个图书买卖和借阅的数据库系统。但是我们知道大型图书馆个城市就个,学生们要想买书借书必须跑老远到图书馆去,那精明的商家都会在各自的街道开有分店。比方我们所有的书籍都能在上海图书馆能买到,但是我们不用老远跑到上海图书馆去买,我可以在自己行政区的图书馆去买,比方静安区静安书城店。我们可以在静安区开一家店叫静安书城店,那如果静安区的学生要买的书在静安书城店如果有了,那就会马上买到,因为学生离岸安书城店可比在黄浦区的上海图书馆近。如果该书在静安书城店已经传完,或在静安书城店从来没有进过这本书,那就需要去上海图书馆去进货。书的买卖和借阅就好比1.)1.I.ETI-,INSERT,SE1.ECT,那岸安书城店会有各个为位的人负贡进货、销售、库存管理等工作,如何快速的进货也需要这个采购房采用不同的规则这个规则就好比我们的执行方案。所以我们看到上海图书馆和静安书城店都是为学生效劳的,这个就是SERVER(效劳)。我们这电看到上海图书馆就是我们的DATABASE库文件,静安出城店是我们的INSTANCE,它来有效的管理维持书籍的采购借阅和其它管理工作。那我们的ORAC1.ESERVER的概念是,一个ORAC1.ESERYER就是一个DATABASE库文件加上一个INSTANCE,也就是上海图书馆的静安书城店提供的就是一个ORN1.ESERVER,我们知道了什么是ORAC1.E效劳那我们了解下什么是ORA1.CE实例.Orac1.e实例Orac1.eInstanceAnOrac1.einstance: IsameanstoaccessanOrac1.edatabase A1.waysopensoneandon1.yonedatabase ConsistsofmemoryandprocessstructuresSharedpoo1.三112三SGADatabasebuffercacheRedo1.ogbuffercacheMemorystructuresSMON)6bWIGWRCKPT!Other*BackgroundstructuresORAC1.eI14CngrOOrac1.eCorporation,2001AIIrigKsrMafved一例2我们现在就明白ORM1.EINSTANCE是个数据库库文件进行实例化提供的效劳,而它也是我们体系结构的核心。那实例它由什么组成呢?实例的组成一个实例只能访问一个数据库,但是你可以改变实例的初始化参数(如控制文件)来指向另一个数据库。我们前面理解r静安书城店实例化一个上海图书馆,那也意味着我可以再开一个分店,如黄浦区黄浦书城店,录属于上海图书馆,那就是第二个ORAC1.E效劳。两个书城店关联同一个图书馆对外提供效劳,这就是RAC的概念,多个实例关联个数据库.这时黄浦区的学生可以选择黄浦旧城店,也可以选择静安书城店提供的效劳,但是往往会选择离自己近的,而且顾客不拥挤的书店,否则买书交费都要排个长队。ORAC1.E也会选择负载相比照较低的实例或者1.【STENER,这叫负载均衡.如果一个店拆1.还可以到另一个店买东西,这在ORAC1.E中称为FAI1.OVERoO实例由内存和后台进程组成那我们拿净安书城店来举例,店要开张,我们需要租房子,每间房子有它特定的功能,比方营业厅、仓库、总经理办公室,这些房子在ORAC1.E中称为内存。仃些房间也许是我们存放书籍的仓库.也许是记录采购员采购的历史信息的采购室。那要筹备这个店所需要盘下或者购汽的店面需要写在筹备方案中,这个筹备方案IoRV1.E'1'称为初始化参数。现在有了店,那店里是不是需要有不同岗位的管理人员来维持店的正常运转?这些勤劳的管理人员在ORAC1.E中就称为后台进程。包括干轻活的ckpt干重活的dbwr而采购员/售货仍在ORAC1.E中就称为效劳器进程,来效劳于学生。而学生在ORAC1.E中就称为客户端进程。我们理解r上面的例子,现在来总结下。我们知道ORAC1.ESERVER是提供了数据库效劳:ORAC1.ESERVER=1个DB+1个INSTANCEINSTANCE-MEMORY+PROCESSRC=N个ORAC1.ESERVER=1.个DB+N个INSTANCE有了这些概念,我们就好理解什么是共享效劳器进程,什么是SGA,什么是PGA,什么是UGA,什么是CGA,什么是CURSoR了。用户连接谛求我们知道学生要想买书,就会去书店找营业员,或者打电话订购,需要沟通书店的客服中心。当学生和营业员或者客服中心建立了连接,学生就可以提出自己想要做的事情,比方买某某书。C)RAC1.E实例给用户提供的效劳也类似,用户进程发出请求,关联IJSTENER再与效劳器进程建立了连接,或者用户直接连接到效劳港进程。17CoprgMOOr×teCofporabcn2001A1.1.rf1.ttsresenred图例3上图我们看到,用户会发出请求到指定的效劳,这个用户我们叫userProCeSS,也叫c1.ientprocess.是在客户端的。用户请求指定了效劳(instance),指定了监听地址,监听地址的端口上检查这个请求是否合法,是否属丁我效劳的INSTANCE范围内,如果合法,就在instance机器上建立效劳器进程”这就在userprocess和serverprocess间建立了连接会话,会话是效劳器进程和客户进程间的。这好比,小丽要去静安店买机会有一个前台脸证你是否可以到这个店买甘,是否有小丽要找的静安H城店存在,如果可以,而且书店确实存在,她会指派一个售货员来效劳小困.这时候小明和售货员就建立了会话.这里详细的过程我们将在DBAII网络用部介绍。接下来售货员会帮小丽去静安店京货(内存),如果优没有,就去上海图书馆进货.小丽和件货员分别就是用户进程和效劳唇进程.而般个前介”ORAa.E,|啕:为监听程八Orac1.eDB的旭成我们接下来该了解最关心的业务数据存放的地方,那就是DB库文件Orac1.eDatabaseAnOrac1.edatabase: Isaco1.1.ectionofdatathatIstreatedasaunit Consistsofthreefi1.etypesCDRAC1.e19Ccpjngt1.COrx1.eCorpcfSI,2001AJIngrtsreMrvod图例4我们看到DB是组不同类型的文件集合它由三类文件组成第一类是文本离线文件,如上图左边的参数文件、口令文件(SPfiIe是效劳端的)第二类也是离线文件,上图右边归档文件第三类是我们最关心的文件,DB在线文件,它按功能分如下几种DTAF11.EContro1.fi1.eRedofi1.e这三种文件组成了DB在线文件这里涉及到DB的物理结构和逻辑结构,我们在后面的课中会学习.Orac1.e物理结构接下来学习ORAC1.E的物理结构,这里只是学习一些框架的知识,详细知识将在后面章节介绍.110Physica1.StructureThephysica1.structureofanOrac1.edatabaseisdeterminedbytheoperatingsystemfi1.esthatprovidetheactua1.physica1.storagefordatabaseinformation. Contro1.fi1.es Datafi1.es Redo1.ogfi1.esOn1.ineredo1.ogfi1.es)HeaderDatafi1.es(Inc1.udesdatadictionary)C<1)*9rtOOrac1.eCorpcratn,3301.A1.1.rg1.srsenreaORAC1.eContro1.111.es图例5ORAC1.E的物理结构指的是OS里直接能查看到的文件,可以是文件系统,可以是裸设备.但文件里的内部逻辑数据,只有ORAC1.E的命令才能查阅和修改。比方一个txt文件,是不是一个OS级别的文件?我们可以用notpad(windows系统)命令或者Vi(1.inUX系统)命令杳询编辑内容。Pfi1.e是不是样?但是SPfiIe,tab1.espace(XXX.dbf)的数据文件呢?SPfiIe大家是不能通过OS直接编辑的,SPfiIe里的东东都是二进制的。同样,tab1.espace的数据文件我们通过OS命令也是看不出任何内容的,你用OS命令翻开全是二进制乱码,没法看懂。那tabi。SPaCe里的数据怎么看?你只有登陆OraCIe后用SeICCt命令查看或用insert插入。表就是种逻辑结构.文件里的内部逻辑数据,只有ORAC1.E的命令才能查阅和修改。就是这个意思。大家理解了吧?我们看到3组文件类里,他们的文件头都有一些描述信息、状态信息、一致性信息和控制信息。这对备份和恢发及一致性事务操作至关重要。大家知道SCN吗?SCN就是上面信息里的一局部,属于一致性信息。这些文件可以存储在本机硬盘(非RAe),也可以存储在磁盘柜,甚至是共享存储系统支持(RAC),称为COnCUrren1.设备。好,我们小结下.ORAC1.E的物理结构讲的是什么概念?就是从OS角度看到的数据库组成文件。Orac1.e内存结构那ORAC1.E效劳中的另一块核心就是实例,而谈到实例就先要谈到内存。也就是你要为静安区学生提供图书效劳而要开家静安书店,你必须选好地址,把店的门面租下来,这店的门面就是内存。我们这单先不涉及怎么租这个门面,而是要了解要开这家店至少要租卜几个门面来完成各自的只能,而每个门面各自乂有什么功能呢?好,我们看一下内存结构MemoryStructureOrac1.e'smemorystructureconsistsoftwomemoryareasknownas: SystemG1.oba1.Area(SGA):A1.1.ocatedatinstancestartup,ponentofanOrac1.eInstance ProgramG1.oba1.Area(PGA):A1.1.ocatedwhentheserverprocessIsstartedORAC1.eI1.”Cotr,n9MOOr*gCpOQ0g200tA1.1.mMsrB图例6内存的坦成内存由SGA和PG组成,分别代表系统全局区和进程全局区.S可以理解成SYSTI-M1也可以理解成SHARE.P可以理解成PROCESS,PRIVATE.所以S是共享的,P是私有的每个实例只仃个SGA,生命周期是实例,实例停止,SGA消亡。什么是实例?才讲了的.实例=ORAC1.E主内存结构(SGA)+后台进程而照个大例有很多PGA1对应的是进程,一个进程一个PGM牛.命周期是进程,进程结束,则PGA消亡。我们的一个SQ1.P1.US会话是不是个进程?是的你连了100个SQ1.P1.US,就出现了100个PGA,但是SGA就一个。可以在参数文件里设置process-XXX来限制PGA的数量,其实就是进程的数量。默认是150个进程.SGA:系统全同区,用于存储数据库信息的内存区,该信息为数据库所有进程所共享。它包含orac1.e效劳器的数据和控制信息。PGA:程序全同区,包含单个效劳涔进程或单个后台进程的数据和控制信息,与几个进程共享的SGA正好相反,PGA只被一个进程使用,在进程创立时分配,进程终止时回收,也就是说小丽提出请求,要买2009-3-1号后出版的经济类书。监听审核合法后,分配了一个售货员来她它办理此事。这个售货S就是一个效劳器进程,而小丽和售货员建立的就是SESSION,基于利益的目的,那其它售货员是不允许知道效劳于小丽的这个售货员的信息及小丽这次买书的信息,比方小丽的名字、提出/什么任务、什么时候提出的.怕他们热客户。所以效劳器进程是私有的,而小丽这次活动的信息我们称会话信息,住ORAC1.E中称为1.G,IGA=1.serG1.oba1.Area第章体系结构(D.完