




已阅读5页,还剩104页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Oracle10g(一),体系结构,课程介绍,本课程主要讲授Oracle10g体系结构适用于数据库管理员(DBA)面向的学员是对SQL有基本了解的应用开发工程师Oracle9i同样适用全部课程时间大约是270分钟,概要,DBA的职责Oracle体系结构由内存结构、进程结构、存储结构组成内存结构由SGA、PGA组成存储结构由逻辑存储、物理存储组成进程结构由用户进程和Oracle进程组成.,什么是DBA?,数据库管理员是一个或一组全面负责管理和控制数据库系统的人员。简称:DBA(DataBaseAdministrator),DBA的主要职责,了解ORACLE数据库的体系结构负责数据库管理系统的安装和升级启动和关闭数据库管理和监控数据库用户管理数据库特权管理存储空间建立数据库后备和恢复数据库,DBA与理论知识,作为一名合格的DBA,必须深入地掌握Oracle10g数据库的体系结构.在理论知识的指导下,才会使许多难以理解和掌握的操作变得容易.,Oracle工作原理,数据库系统处理过程示意,处理过程可以简单的描述为:用户在其机器上运行基于Oracle的应用程序(如:SQL*PLUS、PL/SQLDeveloper等),即启动用户进程.客户机、服务器之间建立连接(Connect).服务器为用户建立会话(Session),并为该会话建立一个PGA(ProgramGlobalArea,程序全局区)以存储与该会话相关的信息.在同一个连接中,不同的用户有不同的会话.启动服务进程,由该服务进程负责执行该会话的各项任务.用户进程发送SQL语句(select、update、commit.)服务器进程解析、编译、执行SQL语句,然后将结果写入数据库并返回结果给用户进程。用户进程接收返回的SQL执行结果。在应用程序中显示SQL执行结果.,Oracle工作原理,处理查询,用户进程,服务器进程,SELECT*FROMempORDERBYename;,总体结构,总体结构的三大部分,总体结构,其中:内存结构:包括SGA和PGA.使用内存最多的是SGA,同时也是影响数据库性能的最大参数.进程结构:包括前台进程、后台进程.前台进程是指服务进程和用户进程.前台进程是根据实际需要而运行的,并在需要结束后立刻结束。后台进程是指在Oracle数据库启动后,自动启动的几个操作系统进程.存储结构:包括控制文件、数据结构、日志文件等操作系统文件.,存储结构,Oracle数据库的存储结构分为逻辑存储结构和物理存储结构,这两种存储结构既相互独立又相互联系.,逻辑存储结构,逻辑存储结构主要描述Oracle数据库的内部存储结构,即从技术概念上描述在Oracle数据库种如何组织、管理数据.因此,逻辑存储结构是和操作系统平台无关的,是由Oracle数据库创建和管理的.,物理存储结构,物理存储结构主要描述Oracle数据库的外部存储结构,即在操作系统种如何组织、管理数据.因此,物理存储结构是和操作系统平台有关的.,DBA注意,DBA必须对这两种存储结构有清晰的理解,并且要清楚在一个具体数据库应用系统中,这两种存储结构的具体对应关系,否则就不能进行正常的管理操作、数据库备份与恢复、性能优化等。,存储结构,物理存储结构与逻辑存储结构之间的关系,从物理上看,数据库由控制文件、数据文件、重做日志文件等操作系统文件组成;从逻辑上来看,数据库是由系统表空间、用户表空间等组成。表空间是最大的逻辑单位,块是最小的逻辑单位。逻辑存储结构中的块最后对应到操作系统中的块.,Oracle10g(一)体系结构,1.1逻辑结构,Oralce的逻辑结构组成,Oracle的逻辑结构是由一个或多个表空间组成。一个表空间(tablespace)由一组段组成一个段(segment)由一组区组成一个区(extent)由一批数据库块组成一个数据库块(block)对应一个或多个物理块,逻辑结构示意图,表空间,段,区,块,数据库块(Block),数据库块(DatabaseBlock)是数据库使用的I/O最小单元,又称逻辑块或ORACLE块。一个数据库块对应一个或多个物理块,块的大小由参数DB_BLOCK_SIZE确定。,数据库块(Block),块的大小是操作系统块大小的整数倍.以Win2K为例,操作系统块(OSblock)的大小为4kb,所以OracleBlock的大小可以是4kb,8kb,16kb等等。如果块的大小为4kb,某表每行的数据是100bytes.,如果某查询语句只返回1行数据,那么,在将数据读入到数据高速缓存时,读取的数据量时4kb而不是100bytes.,数据块的结构,标题:包括通用的块信息,如块地址/段类型等,最佳大小为85-100bytes。表目录:存储聚集中表的信息,这些信息用于聚集段。行目录:包括这块中的有效行信息,允许使用每行开头的2bytes。自由空间:这块中能插入或修改的一组空间。行数据:存储表或索引的数据。,数据块的结构,数据库块的结构格式,控制块的几个参数,pctfree20%左右它们是互相消涨的pctused40%左右Inittrans在单一块中最初活动的交易事务数Maxtrans在单一块中最大交易事务数,PCTUSED,PCTUSED(占用百分比)用于行的INSERT的操作,当块的百分比小于PCTUSED时,可通过行DELETE或UPDATE来减少列存储。,PCTFREE,PCTFREE(自由百分比)用于行的UPDATE操作,在遇到PCTFREE后,这块被填满且不能进行INSERT操作。,数据块自由空间的结构,PCTFREE=20%,PCTUSED=40%,区(extent),区(Extent)是数据库存储空间分配的逻辑单位,一个区由一组数据库块组成,区是由段分配的,分配的第一个区称初始区,以后分配的区称增量区。,决定extent的参数,initial最初分配的空间数(缺省为10k,5个数据块)next下一步分配的空间数maxextents最大分配的extent数minextents最小分配的extnet数,所有重做日志回滚段的存储结构,必须成对地分配extentpctincrease增长率,指数级增长,optimal尽量设小,或为0(缺省为空,仅用于回滚段)freelist,pctincrease,100,(,),n,1+,段(segment),段(Segment)是表空间中一个指定类型的逻辑存储结构,它由一个或多个区组成,段将占用并增长存储空间。,段的分类,段的分类,表空间(tablespace),表空间是最大的逻辑单位,对应一个或多个数据文件,表空间的大小是它所对应的数据文件大小的总和。,表空间与数据库之间的关系,数据库、表空间、数据文件、方案对象(schemaobject)之间的关系,Oracle10g创建的表空间,Oracle10g自动创建的表空间有:Example(实例表空间)Sysaux(辅助系统表空间)System(系统表空间)Temp(临时表空间)Undotbs(重做表空间)Users(用户的表空间),SYSTEM(系统)表空间,System:系统表空间,存放关于表空间的名称、控制文件、数据文件等管理信息,是最重要的表空间.它属于Sys、System两个schema(方案),仅被这两个或其他具有足够权限的用户使用。但是均不可删除或者重命名System表空间.,其他表空间,Temp:临时表空间存放临时表和临时数据,用于排序。Users:用户表空间,永久存放用户对象和私有信息,也被成为数据表空间。Sysaux:辅助系统表空间,用于减少系统负荷,提高系统的作业效率.一般地:系统用户使用system表空间,非系统用户使用Users表空间,Oracle10g(一)体系结构,1.2物理结构,Oracle数据库物理结构,数据文件日志文件控制文件参数文件,数据文件(DataFile)是物理存储Oracle数据库数据的文件。其特点如下:每一个数据文件只与一个数据库相联系。数据文件一旦被建立则不能修改其大小。一个表空间可包含一个或多个数据文件。一个数据文件只能属于一个表空间.,数据文件(DataFile),重做日志文件(RedoFile),重做日志文件(RedoLogFile)记录所有对数据库数据的修改,以备恢复数据时使用。其特点如下:每一个数据库至少包含两个日志文件组。日志文件组以循环方式进行写操作。每一个日志文件成员对应一个物理文件。,日志开关(LogSwitch),日志开关(LogSwitch)是为实现日志文件组的循环使用而设置的。出现日志开关的情况如下:当一个日志文件组被填满时关闭数据库时DBA手动转移日志开关,日志文件写操作,Group1,Group2,Member2.1,Member1.1,镜像日志文件,镜像日志文件是为防止日志文件的丢失,在不同磁盘上同时维护两个或多个联机日志文件的副本。其特点如下:每个日志文件组至少包含两个日志文件成员。每组的成员数目相同。同组的所有成员同时被修改。同组的成员大小相同,不同组的成员大小可不同.,镜像日志文件操作,Group1,Group2,Disk1,Disk2,控制文件,控制文件(ControlFile)是一个较小的二进制文件,用于描述数据库结构。,描述信息如下:数据库建立的日期。数据库名。数据库中所有数据文件和日志文件的文件名及路径。恢复数据库时所需的同步信息。,要点注意:在打开和存取数据库时都要访问该文件。镜像控制文件。记录控制文件名及路径的参数为:CONTROL_FILES,参数文件,参数文件(ParameterFile)是一个文本文件,可直接使用操作系统下的文本编辑器对其内容进行修改。该文件只在建立数据库或启动实例时才被访问,在修改该文件之前必须关闭实例。初始参数文件:init.ora生成参数文件:initSID.oraconfig.ora,参数文件的作用,参数文件的作用:确定存储结构的大小。设置数据库的全部缺省值。设置数据库的范围。设置数据库的各种物理属性。优化数据库性能。,参数文件的数据类型,参数文件中参数的数据类型:整型例:DB_BLOCK_SIZE=2048字符型例:DB_NAME=ora9逻辑型例:CHECKPOINT_PROCESS=true,Oracle10g(一)体系结构,1.3软件结构,例程(instance),Oracle数据库结构又称为例程结构.数据库启动时:Oracle首先要在内存中获取、划分、保留各种用途的区域,运行各种用途的后台,即:创建一个例程(instance);然后由该例程装载(mount)、打开(open)数据库;最后由这个例程来访问和控制数据库的各种物理结构,例程(instance),如果把Oracle数据库比作一部汽车,instance相当于汽车的发动机一样,启动oracle数据库前提应先启动instance.,例程(instance),当用户连接到数据库并使用数据库时,实际上是连接到该数据库的例程,通过例程来连接、使用数据库。所以例程是用户和数据库之间的中间层。例程与数据库的区别:数据库指的是存储数据的物理结构,总是实际存在的;例程则是由内存结构和一系列进程组成,可以启动和关闭。,SID(系统标识符号),一台计算机上可以创建多个Oracle数据库,一个数据库上可以有多个例程。为了使例程间不混淆,每个例程都称为:SID(SystemIDentify)加以区分。,OracleInstance的组成,实例(INSTANCE)是存取和控制数据库的软件机制,它由系统全局区(SystemGlobalArea,简称SGA)和后台进程组成。,数据高速缓存,共享池,日志高速缓存,软件结构,内存结构,进程结构,内存结构和进程结构共同组成了软件结构,内存结构,内存结构是Oracle数据库体系中最为重要的一部分,内存也是影响数据库性能的第一因素.按照内存的使用方法的不同,Oracle数据库的内存又可以分为SGA(SysteGlobalArea)和PGA(ProgramGlobalArea).,系统全局区(SGA),SGA是ORACLE系统为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。每个例程都只有一个SGA.它是不同用户进程与服务进程进行通信的中心,数据库的各种操作主要在SGA中进行,所以称其为系统全局区.创建例程时,Oracle为SGA分配内存;终止例程时,释放SGA所占用的内存.,DBA注意,DBA必须对SGA的组成和原理有所了解.,系统全局区(SGA),系统全局区由以下几个部分组成:,数据高速缓存(DatabaseBufferCache),保存最近从数据文件中读取的数据块,其中的数据被所有用户共享.两个参数影响DBC:DB_BLOCK_SIZE缓冲区数据块大小DB_BLOCK_BUFFERS缓冲区数据块个数,初次访问数据时,Oracle将读取磁盘上的数据文件,将数据放入数据高速缓存,再处理数据;如果数据已经位于数据高速缓存中时,Oracle直接操作数据。,数据高速缓存(DatabaseBufferCache),数据高速缓存(DBC),DBC的缓存块分为三类:脏缓存块存放已经被修改过的缓存块.当SQL修改某个缓存块中的数据,则这个缓存块被标记为脏缓存块空闲缓存块等待写入数据的空闲缓存块.命中缓存块最近正在被访问的缓存块.,管理缓存块的列表,Oracle通过2个列表来管理上述缓存块:脏列表(DIRTY)包括被修改过但尚未写到数据文件的缓冲块。LRU(LeastRecentlyUsed)列表包括空闲缓冲块、命中缓存块,以及还没有移到脏列表的缓冲块。,数据高速缓存工作原理,读数据入DBC之前,先在LRU中搜索空闲缓存块;在搜索过程中如果发现脏缓存块,则将其移入DIRTY;找到足够的空闲块,将所有数据读入;3,4.如果空闲块不足,则暂停搜索,Oralce立刻启动DBWR进程,将DIRTY中的脏缓存块数据写入数据文件释放足够的空闲缓存块。,数据库写进程,重做日志高速缓存,当执行DML(DataManipulationLanguage,数据操纵语言)如:update、delete、insert或者create、alter、drop等语句时,Oracle都会为这些操作生成重做记录.重做日志高速缓存就是用于存储重做记录的缓存.,重做日志高速缓存工作原理,为提高效率,重做记录并不直接写入磁盘的重做日志文件,而是先写入重做日志缓存;当重做日志缓存中的重做记录达到一定数量时,由LGWR进程写入重做日志.(先内存后磁盘)当2个(至少2个)重做日志切换时,由ARCH将重做日志中的数据写入归档日志文件,以做备份.,日志写进程,归档进程,共享池(SharedPool),共享池保存了最近执行的SQL语句、PL/SQL程序和数据字典信息,是对SQL语句和PL/SQL程序进行语法分析、编译、执行的内存区.,共享池(SharedPool),共享池由库缓存和数据字典缓存组成。参数SHARED_POOL_SIZE确定共享池的大小。,库缓存(LibraryCache)区包括解析用户进程提交的SQL语句或PL/SQL程序保存最近解析过的SQL语句或PL/SQL程序,数据字典区(Dictionarycache)用于存放数据字典信息行。,OracleDBMS执行各种SQL、PL/SQL之前,要对其进行语法上的解析、对象上的确认、权限上的判断、操作上的优化等一系列操作,并生成执行计划。库缓存保存了已经解析的SQL和PL/SQL。所以,请尽量使用预处理查询.,库缓存,数据字典缓存,在Oracle运行过程中,Oracle会频繁的对数据字典中的表、视图进行访问,以便确定操作的数据对象是否存在、是否具有合适的权限等信息。数据字典缓保存了最常用的数据字典信息。数据字典缓存中存放的记录是一条一条的,而其他缓存区中保存的是数据块.,大池,大池用于需要大内存操作提供相对独立的内存空间,以便提高性能。大池是可选的内存结构。DBA可以决定是否需要在SGA中创建大池。需要大池的操作:数据库备份和恢复大量排序的SQL语句并行化的数据库操作,Java池,8i以后提供的对Java的支持,用于存放Java代码、Java程序等.一般不小于20M,以便虚拟机运行.,PGA(ProgramGlobalArea),PGA是用户进程连接到数据库,并创建一个对应的会话时,由Oracle为服务进程分配的,专门用于当前用户会话的内存区。PGA是非共享的,而SGA是共享的。PGA大小由操作系统决定,并且分配后保持不变;会话终止时,自动释放PGA所占的内存。,PGA的组成,排序区会话区游标区堆栈区,排序区,执行orderby、groupby等包含排序操作的SQL语句时所产生的临时数据.Oracle将准备排序的数据先临时存储到排序区中,并在排序区中排序,然后将排序好的数据返回给用户.,会话区,保存会话所具有的权限、角色、性能统计信息.,游标区,当运行带有游标(course)的PL/SQL语句时,Oracle会在共享池中为该语句分配上下文(Context),游标实际上是指向该上下文的指针。,堆栈区,保存会话中的绑定变量、会话变量以及SQL语句运行时的内存结构信息。例如:select*fromempwhereemp=:a;:a就是绑定变量,提示用户输入.在等待用户输入时,先将该变量存入堆栈,以便可以同时运行其他语句.,进程结构,进程时操作系统中的一个概念,是一个可以独立调用的活动,用于完成指定的任务。进程与程序的区别是:进程是动态创建的,完成后销毁;程序是静态的实体,可以复制、编辑。进程强调执行过程,程序仅仅是指令的有序集合。进程在内存中,程序在外存中。,进程种类,Oracle包括用户进程和Oracle进程两类:用户进程服务器进程后台进程,Oracle进程,用户进程,当用户运行一个应用程序时,就建立一个用户进程。,服务器进程,服务器进程处理用户进程的请求。处理过程分析SQL命令并生成执行方案。从数据缓冲存储区中读取数据。将执行结果返回给用户。,后台进程,后台进程为所有数据库用户异步完成各种任务。,DBWR(数据写),DBWR(DataBaseWriter)将数据缓冲区中所有修改过的缓冲块数据写到数据文件中,并使用LRU算法来保持缓冲区中的数据块为最近经常使用的,以减少I/O次数。该进程在启动实例时自动启动。,启动DBWR进行写操作的条件,脏列表达到最低限制。相当于参数DB_BLOCK_WRITE_BATCH值的一半。一个进程在LRU列表中扫描指定数目的缓冲块,未找到空闲缓冲块。参数DB_BLOCK_MAX_SCAN_CNT确定扫描数目。出现超时3秒钟内该进程未活动,则该进程将在LRU列表中查找尚未查找的缓冲块,这组缓冲块的数目相当于参数DB_BLOCK_WRITE_BATCH值的2倍。出现检查点。,Checkpoint(检查点),检查点(Checkpoint):在检查点出现期间,DBWR进程将数据缓冲区中的所有脏缓冲块写到数据文件中,LGWR进程将日志缓冲区中的所有记录项写到日志文件中,以确保上一个检查点至今修改过的所有数据块都被写到磁盘上。,Checkpoint(检查点)的任务,检查点:预定数目的记录项被填满。参数LOG_CHECKPOINT_INTERVAL确定了预定数目。设置指定的秒数。参数LOG_CHECKPOINT_TIMEOUT确定了间隔秒数。每个日志开关处关闭实例时,LGWR(日志写),LGWR(LogWriter)将日志缓冲区中的所有记录项写到日志文件中。该进程在启动实例时自动启动。,启动LGWR进行写操作的条件,用户进程提交一个事务(Commit)日志缓冲区达到1/3范围DBWR对一个检查点需要清除缓冲块出现超时(3秒钟内未活动,则进行一次写操作。),CKPT(检查点进程),CKPT(Checkpointer)在控制文件中记录检查点。参数CHECKPOINT_PROCESS确定了检查点的启动/不启动状态。若CKPT进程不启动,则该进程的工作将由LGWR进程代劳。(如果数据库的数据文件过多,这样操作会降低系统性能。),ARCH(归档进程),ARCH(Archiver)在日志文件组出现切换时,将旧日志文件的内容拷贝到脱机存储介质上,出现介质失败时用于恢复数据。LOG_ARCHIVE_START确定了该进程的启动/不启动状态,ARCH(归档进程),LOG_ARCHIVE_DEST当数据库在归档模式下操作时,该参数确定了日志文件的归档目标。LOG_ARCHIVE_FORMAT当数据库在归档模式下操作时,该参数确定了归档日志文件的缺省文件名格式。,其他后台进程,SMON(SystemMonitor,系统检视进程)负责完成自动实例恢复。该进程在启动实例时自动启动。PMON(ProcessMonitor,进程检视进程)撤消异常中断的用户进程,并释放该进程已获得的系统资源或锁。,RECO(Recover,恢复进程)在分布式操作的情况下,恢复一个事务的失败。LCKn(Lock,锁进程)在并行服务器系统间加锁,最多可加10个锁,分别为LCK0,LCK1,LCK9。,其他后台进程,体系结构的示例,处理SQL语句的三个阶段语法分析执行返回指令,体系结构的示例,SELECT操作,SQLSELECTsalFROMempWHEREjob=CLERK;,体系结构的示例,UPDATE操作为了支持读一致性,恢复和回滚,所有修改操作需要回滚段。修改操作执行:,将数据块送到数据缓冲区将回滚块送到数据缓冲区在修改行上设置行锁保存回滚数据到回滚段块将修改写到数据块,体系结构的示例,SQLSELECTsalFROMempWHEREjob=CLERK;,SQLUPDATEempSETsal=sal*1.1WHEREjob=CLERK;,UPDATE操作,Oracle10g(一)体
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中考英语第一轮复习:形容词(含答案解析)
- 2025标准国际贸易合同范本
- 2025内蒙古额尔古纳市第一中学人才引进(第二号)模拟试卷及参考答案详解一套
- 2025网约车服务合同简化版范本
- 2025广西百色市平果市道路运输发展中心城镇公益性岗位人员招聘1人考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025海南海口市秀英区事业单位招聘59人(第一号)模拟试卷及答案详解(夺冠系列)
- 2025保险公司合同
- 2025江苏泰州市兴化市医疗卫生事业单位招聘高层次人才78人(全年)考前自测高频考点模拟试题及答案详解(典优)
- 2025湖北黄冈市武穴市事业单位第二批考核招聘三支一扶服务期满人员1人考前自测高频考点模拟试题及一套答案详解
- 2025年河南金铂来矿业有限公司市场化选聘1人考前自测高频考点模拟试题及答案详解(有一套)
- 2024年企业所得税年度纳税申报表(A类2017 年版2025年01月修订)-(2025 0323)
- 母女亲子断绝协议书范本
- 物联网导论(第四版)课件:感知技术
- 客户关系管理(CRM)系统项目总结报告范文
- 抖音外卖合同协议
- 学校突发事件应急处置全套流程图(可编辑)
- 派单业务合同模版模板
- 印刷厂应急救援预案
- 2025年体育与健康初中学业水平考试体育综合知识考试题库(附答案)
- 恒温烙铁焊接温度验证报告
- T-CWEC 45-2024 水利水电工程帷幕灌浆水下施工及质量验收规范
评论
0/150
提交评论