《Oracle的体系结构课件.ppt》由会员分享,可在线阅读,更多相关《Oracle的体系结构课件.ppt(39页珍藏版)》请在三一办公上搜索。
1、专题二 Oracle的体系结构(重点),1.体系结构概述2.逻辑存储结构3.物理存储结构4.实例的内存结构5.实例的进程结构6.数据字典,1.体系结构概述,完整的Oracle数据库系统通常由两个部分组成:实例(INSTANCE)+数据库(DATABASE)数据库是由一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等)。实例是由一组Oracle后台进程/线程以及在服务器分配的共享内存区。数据库和实例之间的关系:数据库可以由多个实例装载和打开实例可以在任何时间装载和打开一个数据库一个实例在其生存期最多只能装载和打开一个数据库,1.体系结构概述,在启动Oracle数据库服务器时,实际上是
2、在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台进程),然后由这个实例来访问和控制磁盘中的数据文件。,Oracle实例和数据库,2.逻辑存储结构,逻辑存储单元从小到大依次为:数据块(Data Blocks)盘区(Extent)段(Segments)表空间(Table Spaces),数据库的逻辑存储组成,2.逻辑存储结构,2.1数据块(Data Blocks)数据块是Oracle用来管理存储空间的最小单元,也是执行数据库输入输出操作时的最小单位。数据块的组成:块头部、表目录、行目录、空闲空间、行空间。,SQL select name,value from
3、V$parameter where name=db_block_size;NAME VALUE-db_block_size 8192,2.逻辑存储结构,2.2盘区盘区是Oracle存储分配的最小单位。盘区是由一系列物理上连续存放的数据块所构成的Oracle存储结构,由一个或多个数据块组成一个盘区,而一个或多个盘区组成一个段。当一个段中的所有空间被使用完后,系统将自动为该段分配一个新的盘区。,2.逻辑存储结构,2.3段段是由一系列盘区组成,它也不再是存储空间的分配单位,而是一个独立的逻辑存储结构。对于具有独立存储结构的对象,它的数据全部存储在保存它的段中。一个段只属于一个特定的数据库对象,每当创
4、建一个具有独立段的数据库对象时,Oracle将为它创建一个段。在Oracle中,不同类型的数据库对象拥有不同类型的段。根据段中存放的数据库对象类型,将段分为几种类型:数据段、索引段、临时段、回退段和LOB段。,2.逻辑存储结构,2.4表空间表空间是在Oracle中可以使用的最大的逻辑存储结构,在数据库中建立的所有内容都被存储在表空间中。一个表空间由一个或多个数据文件组成,一个数据文件只可以属于一个表空间,这是逻辑与物理的统一。存储空间在物理上表现为数据文件,在逻辑上表现为表空间。表空间的大小等于构成该表空间的所有数据文件的大小之和。数据库的大小等于其中所有表空间的大小之和。,2.逻辑存储结构,
5、2.4表空间在创建数据库时,Oracle会自动创建一些默认的表空间,其中除了用于存储用户数据的普通表空间外,还有SYSTEM表空间、撤销表空间、临时表空间。(1).SYSTEM表空间(SYSAUX表空间加以辅助),用于存储:数据字典、内部系统表基表PL/SQL程序的源代码和解析代码数据库对象的定义,2.逻辑存储结构,2.4表空间(2).撤销表空间,专门用来在自动撤销管理方式下存储撤销信息,即回退信息。(3).临时表空间。在实例运行过程中,Oracle使用一些临时空间来保存SQL语句执行过程中所产生的临时数据。,2.逻辑存储结构,3.物理存储结构,物理存储结构并不是独立存在的,它与数据库逻辑存储
6、结构之间有着不可分割的联系。从整体上看,Oracle的数据在逻辑上存储在表空间中,而物理上存储在表空间所对应的数据文件中。,物理存储结构与逻辑存储结构之间的关系,3.物理存储结构,3.1数据文件数据库物理存储结构主要包括3类物理文件:数据文件(data file)(*.dbf)控制文件(control file)(*.ctl)重做日志文件(redo log file)(*.log)及一些参数文件,查看数据库文件命令:SQLselect name from v$datafile;,3.物理存储结构,数据文件大致分为以下几类:系统数据文件(SYSTEM01.DBF、SYSTEMAUX01.DBF)
7、存放系统表和数据字典。撤销段文件(UNDOTBS01.DBF):存放撤销段数据文件,在数据修改中存储修改之前的记录。用户数据文件(USER01.DBF、EXAMPLE01.DBF):存放用户数据。,注意:临时表空间所对应的临时数据文件是一类比较特殊的数据文件。临时文件的信息只能通过数据字典视图DBA_TEMP_FILE和动态性能视图V$TEMPFILE来查看;不能像普通数据文件一样通过DBA_DATA_FILES和V$DATAFILE视图来查看。,3.物理存储结构,3.2控制文件数据库控制文件是一个很小的二进制文件,在其中包含了关于数据库物理结构的重要信息。通过在加载数据库时读取控制文件,Or
8、acle才能找到自己所需的操作系统文件(数据文件、重做日志文件等)。控制文件对于数据库的成功启动和正常运行是至关重要的。在加载数据库时,实例必须首先找到数据库的控制文件。如果控制文件正常,实例才能加载并打开数据库。但是如果控制文件中记录了错误的信息,或者实例无法找到一个可用的控制文件,数据库将无法加载,当然也法打开。,3.物理存储结构,3.2控制文件在数据库运行过程中,Oracle会不断更新控制文件的内容,因此控制文件必须在整个数据库打开期间保持可用状态。如果由于某种原因导致控制文件不可用,则数据库将崩溃。每个数据库必须至少拥有一个控制文件,一个数据库可以同时拥有多个控制文件,但是一个控制文件
9、只能属于一个数据库。控制文件中的主要信息包括:数据库的名字、检查点信息、数据库创建的时间戳、所有的数据文件、重做日志文件、归档日志文件信息和备份信息等。,3.物理存储结构,3.2控制文件控制文件信息可以从V$controfile中查询获得,3.物理存储结构,3.3重做日志文件重做日志文件是记录数据库中所有修改信息的文件重做日志文件记录两类数据:1.修改前的数据2.修改后的数据 当满足一定条件时先将修改操作所产生的重做记录写入重做日志文件中,然后才将内存中的修改结果成批的写入数据文件,最后再提交事务。重做日志文件是由重做记录组成的,重做记录是由修改向量组成的。当用户执行一条update语句对某一
10、个表中的记录进行修改时,会生成一条记录。这条记录用多个向量记录下了被这条语句修改过的各个数据块中的信息。,3.物理存储结构,3.3重做日志文件一旦数据库崩溃,Oracle服务器就使用重做日志文件中的记录来进行数据库的恢复工作。引入重做日志文件的目的就是数据库的恢复。Oracle使用了多组(group)重做日志。重做日志写进程(LGWR)在任意时刻只能写一组重做日志组,LGWR后台进程正在写的重做日志组称作当前(current)重做日志组。LGWR把完全相同的信息从重做日志缓冲区(redo log buffer)中复制到该组的每个重做日志文件中。它是以循环的方式写重做日志组的。当LGWR写满了一
11、组重做日志时,它就开始写下一组重做日志。这称为日志切换。当写满了最后一组时,LGWR开始写第一组重做日志。,3.物理存储结构,3.3重做日志文件Oracle用以上这种循环的操作方式的确解决了为了提高数据库系统的效率而产生日志文件不够大的难题。但这种循环操作的方式本身又带来了另一个严重的问题。那就是当LGWR循环写了一圈之后再写重做日志文件组中的文件时,这些重做日志中的信息就要被覆盖掉,从这时起Oracle数据库就无法保证数据库崩溃后能恢复全部提交的数据。为了解决这一问题,Oracle引入了归档(archive)日志的结构。,3.物理存储结构,3.4其他文件除了上述三种类型的文件外,Oracle
12、还提供了其他一些类型的文件,如:归档日志文件参数文件密码文件预警日志文件后台或用户跟踪文件P27-30,4.实例的内存结构,内存结构是Oracle数据库体系结构中最为重要的部分之一,内存也是影响数据库性能的主要因素。在Oracle数据库中,服务器内存的大小将直接影响数据库的运行速度,特别是多个用户连接数据库时,服务器必须有足够的内存支持,否则有的用户可能连接不到服务器,或查询速度明显下降。在Oracle系统的体系结构中,有许多不同的内存区域。不同的内存区域用于不同的目的。Oracle的服务器进程和许多后台进程负责在内存区域中写入、更新、读取和删除数据。,4.实例的内存结构,Oracle的2个主
13、要的内存结构系统全局区(System Global Area,SGA)程序全局区(Program Global Area,PGA),4.实例的内存结构,4.1系统全局区SGA位于系统的共享内存段中,SGA区中的数据可以被所有的服务和后台进程共享。如果多个用户连接到同一个数据库实例,则实例的SGA区中的数据可被多个用户共享。在数据库实例启动时,SGA的内存被自动分配;当数据库实例关闭时,SGA被回收。SGA区中的主要包含如下内存结构:数据缓存区、共享池、重做日志缓存、Java池和大型池等结构。,4.实例的内存结构,4.1系统全局区SGA,4.实例的内存结构,4.2程序全局区PGA程序全局区(PG
14、A)是保存特定服务进程的数据和控制信息的内存结构,这个内存结构是非共享的,只有服务进程本身才能够访问它自己的PGA区。每个服务进程都有它自己的PGA区。包含如下结构:私有SQL工作区会话内存区,5.实例的进程结构,进程是操作系统中一个独立的可以调度的活动,用于完成指定的任务。进程与程序的区别在于前者是一个动态概念,后者是一个静态实体。程序仅仅是指令的有序集合,而进程则强调执行过程。进程可以动态地创建,当完成任务后即会消亡。,5.实例的进程结构,Oracle的进程包括三类:用户进程服务器进程后台进程,5.实例的进程结构,服务器进程、用户进程和后台进程之间的关系,5.实例的进程结构,5.1用户进程
15、用户执行一个Oracle应用程序或启动一个Oracle工具(如SQL*Plus)时,创建一个用户进程来执行相应的用户任务。,相关概念:(1)连接:是一个用户进程与数据库实例之间的一条通信路径,这条通信路径通过操作系统平台中的进程间通信机制或网络连接来实现。(2)会话:是一个用户到数据库的指定连接。例如当一个用户启动SQL*Plus,并输入正确的用户名和密码连接到一个数据库库后,就为该用户创建了一个会话。会话在用户连接到实例的过程中始终存在,直到用户断开连接或终止应用程序为止。,会话是通过连接来建立的;同一个用户可以通过建立多个连接来创建到Oracle数据库的多个会话。,5.实例的进程结构,5.
16、2服务器进程服务器进程就是代表客户会话完成工作的进程。负责在用户进程和Oracle实例之间调度请求和响应。应用向数据库发送的SQL语句就是由这些进程接收并执行。当用户进程提交查询之后,服务器进程则负责执行该查询语句,即将数据从磁盘读入缓存,获取查询结果,然后向用户进程返回结果。即使响应出现了某些错误,服务器进程也会把错误信息发回用户进程,以便用户进程进行合适的处理。在Oracle数据库中可以同时存在两种类型的服务器进程:专用服务器进程:只能为一个用户进程提供服务。共享服务进程:可以为多个用户进程提供服务。,5.实例的进程结构,5.3后台进程Oracle实例包括两部分:SGA和一组后台进程。在任
17、意一个刻,Oracle数据库可以处理多个并发用户请求,进行复杂的数据操作,与此同时还要维护数据库系统使其始终具有良好的性能。为了完成这些任务,Oracle具有一组后台进程保证数据库运行所需的实际维护任务。,5.实例的进程结构,中心后台进程,5.实例的进程结构,Oracle的实例所必需的后台进程:DBWR(数据写进程)LGWR(日志写进程)CKPT(检查点进程)SMON(系统监视进程)PMON(进程监视进程),此外,常用的其他进程:ARCn(归档进程)RECO(恢复进程)Dnnn(调度进程),数据字典是由一系列对于用户而言是只读的基础表和视图组成,它保存了关于数据库本身以及其中存储的所有对象的基
18、本信息。对数据字典的管理和维护由Oracle系统负责,任何数据库用户都无法对数据字典中的内容进行修改,但是用户可以查看数据字典中的内容。数据字典中的信息是通过表和视图的形式组织起来的,数据字典和视图都保存在SYSTEM表空间中。视图好比一本关于当前Oracle数据库的参考手册,可以通过SELECT语句查询。,6.数据字典,Oracle中的数据字典有静态和动态之分。静态数据字典:在用户访问数据字典时不会发生改变,主要是由表和视图组成,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*、all_*、dba_*。动态数据
19、字典:依赖数据库运行的性能的,反映数据库运行的一些内在信息,会不断进行更新。,6.数据字典,静态数据字典3类视图:user_*该视图存储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)all_*该试图存储了当前用户能够访问的对象的信息。(与user_*相比,all_*并不需要拥有该对象,只需要具有访问该对象的权限即可)dba_*该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限),6.数据字典,查看当前用户的缺省表空间 SQL select username,default_tablespacefrom user_users
20、;查看当前用户的角色 SQLselect*fromuser_role_privs;查看当前用户的系统权限和表级权限 SQLselect*fromuser_sys_privs;SQLselect*fromuser_tab_privs;查看用户下所有的表 SQLselect*fromuser_tables;显示指定用户所具有的系统权限 SQLselect*fromdba_sys_privswheregrantee=SCOTT;,数据字典查询举例:,6.数据字典,5、世上最美好的事是:我已经长大,父母还未老;我有能力报答,父母仍然健康。6、没什么可怕的,大家都一样,在试探中不断前行。7、时间就像一张
21、网,你撒在哪里,你的收获就在哪里。纽扣第一颗就扣错了,可你扣到最后一颗才发现。有些事一开始就是错的,可只有到最后才不得不承认。8、世上的事,只要肯用心去学,没有一件是太晚的。要始终保持敬畏之心,对阳光,对美,对痛楚。9、别再去抱怨身边人善变,多懂一些道理,明白一些事理,毕竟每个人都是越活越现实。10、山有封顶,还有彼岸,慢慢长途,终有回转,余味苦涩,终有回甘。11、人生就像是一个马尔可夫链,你的未来取决于你当下正在做的事,而无关于过去做完的事。12、女人,要么有美貌,要么有智慧,如果两者你都不占绝对优势,那你就选择善良。13、时间,抓住了就是黄金,虚度了就是流水。理想,努力了才叫梦想,放弃了那
22、只是妄想。努力,虽然未必会收获,但放弃,就一定一无所获。14、一个人的知识,通过学习可以得到;一个人的成长,就必须通过磨练。若是自己没有尽力,就没有资格批评别人不用心。开口抱怨很容易,但是闭嘴努力的人更加值得尊敬。15、如果没有人为你遮风挡雨,那就学会自己披荆斩棘,面对一切,用倔强的骄傲,活出无人能及的精彩。5、人生每天都要笑,生活的下一秒发生什么,我们谁也不知道。所以,放下心里的纠结,放下脑中的烦恼,放下生活的不愉快,活在当下。人生喜怒哀乐,百般形态,不如在心里全部淡然处之,轻轻一笑,让心更自在,生命更恒久。积极者相信只有推动自己才能推动世界,只要推动自己就能推动世界。6、人性本善,纯如清溪
23、流水凝露莹烁。欲望与情绪如风沙袭扰,把原本如天空旷蔚蓝的心蒙蔽。但我知道,每个人的心灵深处,不管乌云密布还是阴淤苍茫,但依然有一道彩虹,亮丽于心中某处。7、每个人的心里,都藏着一个了不起的自己,只要你不颓废,不消极,一直悄悄酝酿着乐观,培养着豁达,坚持着善良,只要在路上,就没有到达不了的远方!8、不要活在别人眼中,更不要活在别人嘴中。世界不会因为你的抱怨不满而为你改变,你能做到的只有改变你自己!9、欲戴王冠,必承其重。哪有什么好命天赐,不都是一路披荆斩棘才换来的。10、放手如拔牙。牙被拔掉的那一刻,你会觉得解脱。但舌头总会不由自主地往那个空空的牙洞里舔,一天数次。不痛了不代表你能完全无视,留下
24、的那个空缺永远都在,偶尔甚至会异常挂念。适应是需要时间的,但牙总是要拔,因为太痛,所以终归还是要放手,随它去。11、这个世界其实很公平,你想要比别人强,你就必须去做别人不想做的事,你想要过更好的生活,你就必须去承受更多的困难,承受别人不能承受的压力。12、逆境给人宝贵的磨炼机会。只有经得起环境考验的人,才能算是真正的强者。自古以来的伟人,大多是抱着不屈不挠的精神,从逆境中挣扎奋斗过来的。13、不同的人生,有不同的幸福。去发现你所拥有幸运,少抱怨上苍的不公,把握属于自己的幸福。你,我,我们大家都可以经历幸福的人生。14、给自己一份坚强,擦干眼泪;给自己一份自信,不卑不亢;给自己一份洒脱,悠然前行
25、。轻轻品,静静藏。为了看阳光,我来到这世上;为了与阳光同行,我笑对忧伤。15、总不能流血就喊痛,怕黑就开灯,想念就联系,疲惫就放空,被孤立就讨好,脆弱就想家,不要被现在而蒙蔽双眼,终究是要长大,最漆黑的那段路终要自己走完。5、从来不跌倒不算光彩,每次跌倒后能再站起来,才是最大的荣耀。6、这个世界到处充满着不公平,我们能做的不仅仅是接受,还要试着做一些反抗。7、一个最困苦、最卑贱、最为命运所屈辱的人,只要还抱有希望,便无所怨惧。8、有些人,因为陪你走的时间长了,你便淡然了,其实是他们给你撑起了生命的天空;有些人,分开了,就忘了吧,残缺是一种大美。9、照自己的意思去理解自己,不要小看自己,被别人的意见引入歧途。10、没人能让我输,除非我不想赢!11、花开不是为了花落,而是为了开的更加灿烂。12、随随便便浪费的时间,再也不能赢回来。13、不管从什么时候开始,重要的是开始以后不要停止;不管在什么时候结束,重要的是结束以后不要后悔。14、当你决定坚持一件事情,全世界都会为你让路。15、只有在开水里,茶叶才能展开生命浓郁的香气。,