版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Version 1.0厦门理工学院计算机系大型数据库技术大型数据库技术第第2 2章章 OracleOracle数据库体系结构数据库体系结构教 师:陈玉明E-Mail:Page 1内容简介内容简介2厦门理工学院计算机系概概 要要DBA的职责的职责Oracle体系结构由内存结构、进程结构、体系结构由内存结构、进程结构、存储结构组成存储结构组成内存结构由内存结构由SGA、PGA组成组成存储结构由逻辑存储、物理存储组成存储结构由逻辑存储、物理存储组成进程结构由用户进程和进程结构由用户进程和Oracle进程组成进程组成.3厦门理工学院计算机系什么是什么是DBA?数据库管理员是一个或一组全面负责管理和控制
2、数据库系统的人员。简称:DBA(Data Base Administrator)4厦门理工学院计算机系DBA的主要职责的主要职责了解了解ORACLE数据库的体系结构数据库的体系结构负责数据库管理系统的安装和升级负责数据库管理系统的安装和升级启动和关闭数据库启动和关闭数据库管理和监控数据库用户管理和监控数据库用户管理数据库特权管理数据库特权管理存储空间管理存储空间建立数据库建立数据库后备和恢复数据库后备和恢复数据库5厦门理工学院计算机系DBA与理论知识与理论知识作为一名合格的DBA,必须深入地掌握Oracle 10g数据库的体系结构.在理论知识的指导下,才会使许多难以理解和掌握的操作变得容易.6
3、厦门理工学院计算机系Oracle工作原理工作原理客户客户服务器服务器服务器进程服务器进程(PGA区区)用户进程用户进程(SQL语句语句)Oracle server数据库系统处理过程示意数据库系统处理过程示意7厦门理工学院计算机系处理过程可以简单的描述为处理过程可以简单的描述为:1.用户在其机器上运行基于用户在其机器上运行基于Oracle的应用程序的应用程序(如如:SQL*PLUS、PL/SQL Developer等等),即启动用户进程即启动用户进程.2.客户机、服务器之间建立连接客户机、服务器之间建立连接(Connect).3.服务器为用户建立会话服务器为用户建立会话(Session),并为该
4、会话建立一个并为该会话建立一个PGA(Program Global Area,程序全局区程序全局区)以存储与该会话相关的信息以存储与该会话相关的信息.在同一个连接中在同一个连接中,不同的用户有不同的会话不同的用户有不同的会话.4.启动服务进程启动服务进程,由该服务进程负责执行该会话的各项任务由该服务进程负责执行该会话的各项任务.5.用户进程发送用户进程发送SQL语句语句(select、update、commit.)6.服务器进程解析、编译、执行服务器进程解析、编译、执行SQL语句,然后将结果写入数据库并返回语句,然后将结果写入数据库并返回结果给用户进程。结果给用户进程。7.用户进程接收返回的用
5、户进程接收返回的SQL执行结果。执行结果。8.在应用程序中显示在应用程序中显示SQL执行结果执行结果.Oracle工作原理工作原理客户客户服务器服务器进程服务器进程(PGA区)用户进程(SQL语句)Oracle server8厦门理工学院计算机系处理查询处理查询用户进程用户进程服务器进程服务器进程解析解析StatementOKHandle执行执行OKHandle提取提取ResultsSELECT *FROM empORDER BY ename;9厦门理工学院计算机系总体结构总体结构总体结构的三大部分总体结构的三大部分10厦门理工学院计算机系总体结构总体结构11厦门理工学院计算机系总体结构总体结
6、构其中其中:内存结构:内存结构:包括包括SGA和和PGA.使用内存最多的使用内存最多的是是SGA,同时也是影响数据库性能的最大参数同时也是影响数据库性能的最大参数.进程结构:进程结构:包括前台进程、后台进程包括前台进程、后台进程.前台进程前台进程是指服务进程和用户进程是指服务进程和用户进程.前台进程是根据实际前台进程是根据实际需要而运行的,并在需要结束后立刻结束。后台需要而运行的,并在需要结束后立刻结束。后台进程是指在进程是指在Oracle数据库启动后数据库启动后,自动启动的几自动启动的几个操作系统进程个操作系统进程.存储结构:存储结构:包括控制文件、数据结构、日志文包括控制文件、数据结构、日
7、志文件等操作系统文件件等操作系统文件.12厦门理工学院计算机系存储结构存储结构Oracle数据库的存储结构分为逻辑存储结构和物理存数据库的存储结构分为逻辑存储结构和物理存储结构储结构,这两种存储结构既相互独立又相互联系这两种存储结构既相互独立又相互联系.数数据据库库结结构构数据文件数据文件日志文件日志文件控制文件控制文件参数文件参数文件物理结构物理结构表空间表空间段段范围范围数据库块数据库块逻辑结构逻辑结构13厦门理工学院计算机系物理存储结构物理存储结构物理存储结构主要描述物理存储结构主要描述Oracle数据库的数据库的外部存储结构外部存储结构,即在操作系统种如何组织、即在操作系统种如何组织、
8、管理数据管理数据.因此,物理存储结构是和操作系统平台因此,物理存储结构是和操作系统平台有关的有关的.14厦门理工学院计算机系逻辑存储结构逻辑存储结构逻辑存储结构主要描述逻辑存储结构主要描述Oracle数据库的数据库的内部存储结构内部存储结构,即从技术概念上描述在即从技术概念上描述在Oracle数据库种如何组织、管理数据数据库种如何组织、管理数据.因此因此,逻辑存储结构是和操作系统平台无逻辑存储结构是和操作系统平台无关的关的,是由是由Oracle数据库创建和管理的数据库创建和管理的.15厦门理工学院计算机系DBA注意注意DBA必须对这两种存储结构有清晰的理解,并且要清楚在一个具体数据库应用系统中
9、,这两种存储结构的具体对应关系,否则就不能进行正常的管理操作、数据库备份与恢复、性能优化等。16厦门理工学院计算机系存储结构存储结构物理存储结构与逻辑存储结构之间的关系物理存储结构与逻辑存储结构之间的关系从物理上看从物理上看,数据库数据库由由控制文件、数据文控制文件、数据文件、重做日志文件件、重做日志文件等等操作系统文件组成;操作系统文件组成;从逻辑上来看,数据从逻辑上来看,数据库是由库是由系统表空间、系统表空间、用户表空间等用户表空间等组成。组成。表空间是最大的逻辑表空间是最大的逻辑单位,块是最小的逻单位,块是最小的逻辑单位。辑单位。逻辑存储结构中的块逻辑存储结构中的块最后对应到操作系统最后
10、对应到操作系统中的块中的块.17厦门理工学院计算机系Version 1.0厦门理工学院计算机系大型数据库技术大型数据库技术Oracle 10g体系结构体系结构- 2.1 物理结构物理结构Page 18Oracle数据库物理结构数据库物理结构 数据文件数据文件 日志文件日志文件 控制文件控制文件 参数文件参数文件19厦门理工学院计算机系 数据文件数据文件(Data File)是物理存储是物理存储Oracle数数据库数据的文件。其特点如下:据库数据的文件。其特点如下: 每一个数据文件只与一个数据库相联系。每一个数据文件只与一个数据库相联系。 数据文件一旦被建立则不能修改其大小。数据文件一旦被建立则
11、不能修改其大小。 一个表空间可包含一个或多个数据文件。一个表空间可包含一个或多个数据文件。 一个数据文件只能属于一个表空间一个数据文件只能属于一个表空间.数据文件数据文件(Data File)20厦门理工学院计算机系重做日志文件重做日志文件(Redo File) 重做日志文件重做日志文件(Redo Log File)记录所有对数据记录所有对数据库数据的修改,以备恢复数据时使用。其特点如下:库数据的修改,以备恢复数据时使用。其特点如下: 每一个数据库至少包含两个日志文件组。每一个数据库至少包含两个日志文件组。 日志文件组以循环方式进行写操作。日志文件组以循环方式进行写操作。 每一个日志文件成员对
12、应一个物理文件。每一个日志文件成员对应一个物理文件。21厦门理工学院计算机系日志切换日志切换(Log Switch) 日志切换日志切换(Log Switch)是为实现日志文件组是为实现日志文件组的循环使用而设置的。出现日志开关的情况如下:的循环使用而设置的。出现日志开关的情况如下: 当一个日志文件组被填满时当一个日志文件组被填满时 关闭数据库时关闭数据库时 DBA手动切换日志手动切换日志22厦门理工学院计算机系日志文件写操作日志文件写操作Log File 1Log File 2Member 2.1Member 1.123厦门理工学院计算机系镜像日志文件镜像日志文件 镜像日志文件镜像日志文件是为
13、防止日志文件的丢失,在不是为防止日志文件的丢失,在不同磁盘上同时维护两个或多个联机日志文件的同磁盘上同时维护两个或多个联机日志文件的副本。副本。 其特点如下:其特点如下: 每个日志文件组至少包含两个日志文件成员。每个日志文件组至少包含两个日志文件成员。 每组的成员数目相同。每组的成员数目相同。 同组的所有成员同时被修改。同组的所有成员同时被修改。 同组的成员大小相同同组的成员大小相同,不同组的成员大小可不同不同组的成员大小可不同.24厦门理工学院计算机系镜像日志文件操作镜像日志文件操作Log File 1Log File 2Member 2.1Member 1.1Log File 3Log F
14、ile 4Member 2.2Member 1.2Disk 1Disk 225厦门理工学院计算机系控制文件控制文件 控制文件(Control File)是一个较小的是一个较小的二进制文件,用于描述数据库结构。二进制文件,用于描述数据库结构。描述信息如下:描述信息如下:数据库建立的日期。数据库建立的日期。数据库名。数据库名。数据库中所有数据数据库中所有数据文件和日志文件的文件和日志文件的文件名及路径。文件名及路径。恢复数据库时所需恢复数据库时所需的同步信息。的同步信息。要点注意:要点注意:在打开和存取数据库时在打开和存取数据库时都要访问该文件。都要访问该文件。镜像控制文件。镜像控制文件。记录控制
15、文件名及路径记录控制文件名及路径的参数为:的参数为:CONTROL_FILES26厦门理工学院计算机系参数文件参数文件 参数文件(参数文件(Parameter File)是一个文本文件,是一个文本文件,可直接使用操作系统下的文本编辑器对其内容进行修可直接使用操作系统下的文本编辑器对其内容进行修改。该文件只在建立数据库或启动实例时才被访问,改。该文件只在建立数据库或启动实例时才被访问,在修改该文件之前必须关闭实例。在修改该文件之前必须关闭实例。 初始参数文件:初始参数文件:init.ora 生成参数文件:生成参数文件:initSID.ora config.ora位于OracleHome下,如:C
16、:oracleadminTestDBpfile27厦门理工学院计算机系参数文件的作用参数文件的作用参数文件的作用:参数文件的作用: 确定存储结构的大小。确定存储结构的大小。 设置数据库的全部缺省值。设置数据库的全部缺省值。 设置数据库的范围。设置数据库的范围。 设置数据库的各种物理属性。设置数据库的各种物理属性。 优化数据库性能。优化数据库性能。28厦门理工学院计算机系参数文件的数据类型参数文件的数据类型参数文件中参数的数据类型:参数文件中参数的数据类型: 整型整型 例:例:DB_BLOCK_SIZE = 2048 字符型字符型 例:例:DB_NAME = ora9 逻辑型逻辑型 例:例:CH
17、ECKPOINT_PROCESS = true29厦门理工学院计算机系Version 1.0厦门理工学院计算机系大型数据库技术大型数据库技术Oracle 10g体系结构体系结构-2.2 逻辑结构逻辑结构Page 30Oralce的逻辑结构组成的逻辑结构组成Oracle的逻辑结构的逻辑结构是由一个或多个表空间组成。是由一个或多个表空间组成。 一个表空间一个表空间(tablespace)由一组段组成由一组段组成 一个段一个段(segment)由一组区组成由一组区组成 一个区一个区(extent)由一批数据库块组成由一批数据库块组成 一个数据库块一个数据库块(block)对应一个或多个物理块对应一个
18、或多个物理块31厦门理工学院计算机系逻辑结构示意图逻辑结构示意图TablespaceDatabase BlocksExtent84KSegment112KDatabaseDataFile表空间表空间段段区区块块32厦门理工学院计算机系数据库块数据库块(Block) 数据库块(数据库块(Database Block)是数据库是数据库使用的使用的I/O最小单元,又称逻辑块或最小单元,又称逻辑块或ORACLE块。块。 一个数据库块对应一个或多个物理块,一个数据库块对应一个或多个物理块,块的大小由参数块的大小由参数DB_BLOCK_SIZE确定。确定。33厦门理工学院计算机系数据库块数据库块(Bloc
19、k) 块的大小是操作系统块大小的整数倍块的大小是操作系统块大小的整数倍. 以以Win2K为例为例,操作系统块操作系统块(OS block)的大的大小为小为4kb,所以,所以Oracle Block的大小可以是的大小可以是4kb,8kb,16kb等等。等等。 如果块的大小为如果块的大小为4kb,某表每行的数据是,某表每行的数据是100 bytes.,如果某查询语句只返回,如果某查询语句只返回1行数据行数据,那么,在将数据读入到数据高速缓存时那么,在将数据读入到数据高速缓存时,读取读取的数据量时的数据量时4kb而不是而不是100 bytes.34厦门理工学院计算机系区区(extent) 区区(Ex
20、tent)是数据库存储空间分配是数据库存储空间分配的逻辑单位,一个的逻辑单位,一个区区由一组数据库由一组数据库块组成,块组成,区区是由段分配的,分配的是由段分配的,分配的第一个第一个区区称称初始初始区区,以后分配的,以后分配的区区称称增量增量区区。35厦门理工学院计算机系段段(segment) 段(段(Segment)是表空间中一个指定是表空间中一个指定类型的逻辑存储结构,它由一个或多个类型的逻辑存储结构,它由一个或多个区组成组成,段将占用并增长存储空间。,段将占用并增长存储空间。36厦门理工学院计算机系段的分类段的分类引导段引导段(Bootstrap Segment)存储数据字典表的定义段的
21、分类段的分类回滚段回滚段(Rollback Segment)存储修改之前的位置和值索引段索引段(Index Segment)存储表上最佳查询的所有索引数据临时段临时段(Temporary Segment)存储表排序操作期间建立的临时表的数据数据数据(表表)段段(Data Segment)存储表中的所有数据37厦门理工学院计算机系表空间表空间(tablespace) 表空间是最大的逻辑单位表空间是最大的逻辑单位,对应一个或对应一个或多个数据文件,表空间的大小是它多个数据文件,表空间的大小是它所对应的数据文件大小的总和所对应的数据文件大小的总和。38厦门理工学院计算机系表空间与数据库之间的关系表空
22、间与数据库之间的关系数据库、表空间、数据文件、方案对象数据库、表空间、数据文件、方案对象(schema object)之间的关系之间的关系39厦门理工学院计算机系Oracle 10g创建的表空间创建的表空间 Oracle 10g自动创建的表空间有自动创建的表空间有:Example(实例表空间实例表空间)Sysaux(辅助系统表空间辅助系统表空间)System(系统表空间系统表空间)Temp(临时表空间临时表空间)Undotbs(重做表空间重做表空间)Users(用户的表空间用户的表空间)40厦门理工学院计算机系SYSTEM(系统系统)表空间表空间 System : 系统表空间系统表空间,存放关
23、于表空存放关于表空间的名称、控制文件、数据文件等管理间的名称、控制文件、数据文件等管理信息,是最重要的表空间信息,是最重要的表空间. 它属于它属于Sys、System两个两个schema(方案方案),仅被这两个或其他具有,仅被这两个或其他具有足够权限的用户使用。足够权限的用户使用。 但是均不可删除或者重命名但是均不可删除或者重命名System表空间表空间.41厦门理工学院计算机系其他表空间其他表空间 Temp: 临时表空间存放临时表和临时数临时表空间存放临时表和临时数据,用于排序。据,用于排序。 Users: 用户表空间,永久存放用户对象用户表空间,永久存放用户对象和私有信息,也被成为数据表空
24、间。和私有信息,也被成为数据表空间。 Sysaux:辅助系统表空间,用于减少系辅助系统表空间,用于减少系统负荷,提高系统的作业效率统负荷,提高系统的作业效率. 一般地:系统用户使用一般地:系统用户使用system表空表空间间,非系统用户使用非系统用户使用Users表空间表空间42厦门理工学院计算机系Version 1.0厦门理工学院计算机系大型数据库技术大型数据库技术Oracle 10g体系结构体系结构-2.3 软件结构软件结构Page 43例程例程(instance)Oracle数据库结构又称为例程结构数据库结构又称为例程结构.数据库启动时:数据库启动时: Oracle首先要在内存中获取、划
25、分、保留首先要在内存中获取、划分、保留各种用途的区域各种用途的区域,运行各种用途的后台运行各种用途的后台,即:即:创建一个例程创建一个例程(instance); 然后由该例程装载然后由该例程装载(mount)、打开、打开(open)数据库;数据库; 最后由这个例程来访问和控制数据库的各种最后由这个例程来访问和控制数据库的各种物理结构物理结构44厦门理工学院计算机系例程例程(instance)如果把如果把Oracle数据库比作一部汽车,数据库比作一部汽车,instance相当于汽车的发动机一样相当于汽车的发动机一样,启动启动oracle数据库前提应先启动数据库前提应先启动instance.45厦
26、门理工学院计算机系例程例程(instance)当用户连接到数据库并使用数据库时,实际上当用户连接到数据库并使用数据库时,实际上是连接到该数据库的例程,通过例程来连接、是连接到该数据库的例程,通过例程来连接、使用数据库。使用数据库。所以例程是用户和数据库之间的中间层。所以例程是用户和数据库之间的中间层。例程与数据库的区别:例程与数据库的区别: 数据库指的是存储数据的物理结构,总是实际存在数据库指的是存储数据的物理结构,总是实际存在的;的; 例程则是由内存结构和一系列进程组成,可以启动例程则是由内存结构和一系列进程组成,可以启动和关闭。和关闭。46厦门理工学院计算机系Oracle Instance
27、的组成的组成实例实例( INSTANCE ) 是存取和控制数据库的软件机制,它由系统全局区是存取和控制数据库的软件机制,它由系统全局区(System Global Area,简称简称SGA)和后台进程组成。和后台进程组成。后台进程后台进程实例实例SGA数据数据高速缓存高速缓存共享池共享池日志日志高速缓存高速缓存47厦门理工学院计算机系软件结构软件结构内存结构内存结构进程结构进程结构内存结构内存结构和和进程结构进程结构共同组成了软件结构共同组成了软件结构48厦门理工学院计算机系内存结构内存结构内存结构是内存结构是Oracle数据库体系中最为重数据库体系中最为重要的一部分,内存也是影响数据库性能要
28、的一部分,内存也是影响数据库性能的第一因素的第一因素.按照内存的使用方法的不同按照内存的使用方法的不同,Oracle数据数据库的内存又可以分为库的内存又可以分为SGA(Syste Global Area)和和PGA(Program Global Area).49厦门理工学院计算机系系统全局区系统全局区(SGA) SGA是是ORACLE系统为实例分配的一组共系统为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。息,以实现对数据库数据的管理和操作。 每个例程都只有一个每个例程都只有一个SGA. 它是不同用户进程与服
29、务进程进行通信的它是不同用户进程与服务进程进行通信的中心中心,数据库的各种操作主要在数据库的各种操作主要在SGA中进行中进行,所所以称其为系统全局区以称其为系统全局区. 创建例程时,Oracle为SGA分配内存; 终止例程时,释放SGA所占用的内存.50厦门理工学院计算机系系统全局区系统全局区(SGA)系统全局区由以下几个部分组成:51厦门理工学院计算机系数据高速缓存数据高速缓存(Database Buffer Cache)保存最近从数据文件中读取的数据块保存最近从数据文件中读取的数据块,其中的其中的数据被所有用户共享数据被所有用户共享.两个参数影响两个参数影响DBC: DB_BLOCK_SI
30、ZE 缓冲区数据块大小缓冲区数据块大小 DB_BLOCK_BUFFERS 缓冲区数据块个数缓冲区数据块个数52厦门理工学院计算机系初次访问数据时初次访问数据时,Oracle将将读取磁盘上的数据文件读取磁盘上的数据文件,将数将数据放入数据高速缓存,再处据放入数据高速缓存,再处理数据;理数据;如果数据已经位于数据高速如果数据已经位于数据高速缓存中时缓存中时,Oracle直接操作直接操作数据。数据。数据缓冲区数据文件数据高速缓存数据高速缓存(Database Buffer Cache)53厦门理工学院计算机系数据高速缓存数据高速缓存(DBC)DBC的缓存块分为三类的缓存块分为三类:脏缓存块 存放已经
31、被修改过的缓存块存放已经被修改过的缓存块. 当当SQL修改某个缓存块中的数据,则这修改某个缓存块中的数据,则这个缓存块被标记为脏缓存块个缓存块被标记为脏缓存块空闲缓存块 等待写入数据的空闲缓存块等待写入数据的空闲缓存块.命中缓存块 最近正在被访问的缓存块最近正在被访问的缓存块.54厦门理工学院计算机系管理缓存块的列表管理缓存块的列表Oracle通过通过2个列表来管理上述缓存块个列表来管理上述缓存块: 脏列表脏列表(DIRTY) 包括被修改过但尚未写到数据文件的包括被修改过但尚未写到数据文件的缓冲块。缓冲块。 LRU(Least Recently Used)列表列表 包括空闲缓冲块、命中缓存块包
32、括空闲缓冲块、命中缓存块,以及以及还没有移到脏列表的缓冲块。还没有移到脏列表的缓冲块。55厦门理工学院计算机系数据高速缓存工作原理数据高速缓存工作原理1.读数据入读数据入DBC之前之前,先在先在LRU中搜索空闲缓存块中搜索空闲缓存块;在搜索过程中如果发现脏缓在搜索过程中如果发现脏缓存块存块,则将其移入则将其移入DIRTY;2.找到足够的空闲块找到足够的空闲块,将所有数据读入;将所有数据读入;3.3,4.如果空闲块不足,则暂停搜索,如果空闲块不足,则暂停搜索,Oralce立刻启动立刻启动DBWR进程进程,将将DIRTY中的脏缓存块数据写入数据文件释放足够的空闲缓存块。中的脏缓存块数据写入数据文件
33、释放足够的空闲缓存块。数据库写进程数据库写进程56厦门理工学院计算机系重做日志高速缓存重做日志高速缓存 当执行当执行DML(Data Manipulation Language, 数据操纵语言数据操纵语言)如如:update、delete、insert或者或者create、alter、drop 等语句时等语句时,Oracle都会为这些操作都会为这些操作生成重做记录生成重做记录. 重做日志高速缓存就是用于存储重重做日志高速缓存就是用于存储重做记录的缓存做记录的缓存.57厦门理工学院计算机系重做日志高速缓存工作原理重做日志高速缓存工作原理为提高效率为提高效率,重做记录并不直接写入磁盘的重做日志文件
34、重做记录并不直接写入磁盘的重做日志文件,而是先写入重做日而是先写入重做日志缓存志缓存;当重做日志缓存中的重做记录达到一定数量时当重做日志缓存中的重做记录达到一定数量时,由由LGWR进程写入重做日进程写入重做日志志.(先内存后磁盘先内存后磁盘)当当2个个(至少至少2个个)重做日志切换时重做日志切换时,由由ARCH将重做日志中的数据写入归档日将重做日志中的数据写入归档日志文件,以做备份志文件,以做备份.日志写进程日志写进程归档进程归档进程58厦门理工学院计算机系共享池共享池(Shared Pool) 共享池保存了最近执行的共享池保存了最近执行的SQL语句、语句、PL/SQL程序和数据字典信息程序和
35、数据字典信息,是对是对SQL语句和语句和PL/SQL程序进行语法分析、编程序进行语法分析、编译、执行的内存区译、执行的内存区.59厦门理工学院计算机系共享池共享池(Shared Pool)共享池共享池由库缓存和数据字典缓存组成。参数SHARED_POOL_SIZE 确定共享池的大小。库缓存库缓存(Library Cache)区包括区包括解析用户进程提交的解析用户进程提交的SQL语句或语句或PL/SQL程序程序保存最近解析过的保存最近解析过的 SQL语句或语句或PL/SQL程序程序数据字典区数据字典区(Dictionary cache)用于存放数据字典信息用于存放数据字典信息行。行。60厦门理工
36、学院计算机系 Oracle DBMS执行各种执行各种SQL、PL/SQL之前之前,要对其进行语法上的解析、对象上的确认、权要对其进行语法上的解析、对象上的确认、权限上的判断、操作上的优化等一系列操作,并限上的判断、操作上的优化等一系列操作,并生成执行计划。生成执行计划。 库缓存保存了已经解析的库缓存保存了已经解析的SQL和和PL/SQL。 库缓存库缓存61厦门理工学院计算机系数据字典缓存数据字典缓存 在在Oracle运行过程中运行过程中,Oracle会频繁的对数会频繁的对数据字典中的表、视图进行访问,以便确定操作据字典中的表、视图进行访问,以便确定操作的数据对象是否存在、是否具有合适的权限等的
37、数据对象是否存在、是否具有合适的权限等信息。信息。 数据字典缓保存了最常用的数据字典信息。数据字典缓保存了最常用的数据字典信息。 数据字典缓存中存放的记录是一条一条的数据字典缓存中存放的记录是一条一条的, 而其他缓存区中保存的是数据块而其他缓存区中保存的是数据块.62厦门理工学院计算机系大池大池大池用于需要大内存操作提供相对独立的内存空大池用于需要大内存操作提供相对独立的内存空间,以便提高性能。间,以便提高性能。大池是可选的内存结构。大池是可选的内存结构。 DBA可以决定是否需要在可以决定是否需要在SGA中创建大池。中创建大池。 需要大池的操作需要大池的操作: 数据库备份和恢复数据库备份和恢复
38、 大量排序的大量排序的SQL语句语句 并行化的数据库操作并行化的数据库操作63厦门理工学院计算机系Java池池 8i以后提供的对以后提供的对Java的支持的支持,用于存用于存放放Java代码、代码、Java程序等程序等. 一般不小于一般不小于20M,以便虚拟机运行以便虚拟机运行.64厦门理工学院计算机系PGA(Program Global Area) PGA是用户进程连接到数据库是用户进程连接到数据库,并创建一个并创建一个对应的会话时,由对应的会话时,由Oracle为服务进程分配的,为服务进程分配的,专门用于当前用户会话的内存区。专门用于当前用户会话的内存区。 PGA是非共享的,而是非共享的,
39、而SGA是共享的。是共享的。 PGA大小由操作系统决定,并且分配后保大小由操作系统决定,并且分配后保持不变;持不变; 会话终止时,自动释放会话终止时,自动释放PGA所占的内存。所占的内存。65厦门理工学院计算机系PGA的组成的组成排序区会话区游标区堆栈区PGA服务器进程服务器进程66厦门理工学院计算机系排序区排序区 执行执行order by、group by等包含排序等包含排序操作的操作的SQL语句时所产生的临时数据语句时所产生的临时数据. Oracle将准备排序的数据先临时存储将准备排序的数据先临时存储到排序区中,并在排序区中排序,然后到排序区中,并在排序区中排序,然后将排序好的数据返回给用
40、户将排序好的数据返回给用户.67厦门理工学院计算机系会话区会话区 保存会话所具有的权限、角色、性能保存会话所具有的权限、角色、性能统计信息统计信息.68厦门理工学院计算机系游标区游标区 当运行带有游标当运行带有游标(course)的的PL/SQL语句时,语句时,Oracle会在共享池中为该语句会在共享池中为该语句分配上下文分配上下文(Context),游标实际上是,游标实际上是指向该上下文的指针。指向该上下文的指针。69厦门理工学院计算机系堆栈区堆栈区 保存会话中的绑定变量、会话变量以保存会话中的绑定变量、会话变量以及及SQL语句运行时的内存结构信息。语句运行时的内存结构信息。 例如:例如:
41、select * from emp where emp=:a; :a就是绑定变量就是绑定变量,提示用户输入提示用户输入. 在等待用户输入时,先将该变量存入在等待用户输入时,先将该变量存入堆栈,以便可以同时运行其他语句堆栈,以便可以同时运行其他语句.70厦门理工学院计算机系进程结构进程结构 进程时操作系统中的一个概念,是一个可以进程时操作系统中的一个概念,是一个可以独立调用的活动,用于完成指定的任务。独立调用的活动,用于完成指定的任务。 进程与程序的区别是:进程与程序的区别是: 进程是动态创建的,完成后销毁;程序是静态的实进程是动态创建的,完成后销毁;程序是静态的实体,可以复制、编辑。体,可以复
42、制、编辑。 进程强调执行过程,程序仅仅是指令的有序集合。进程强调执行过程,程序仅仅是指令的有序集合。 进程在内存中,程序在外存中。进程在内存中,程序在外存中。 71厦门理工学院计算机系进程种类进程种类Oracle包括用户进程和包括用户进程和Oracle进程两类:进程两类:用 户 进 程服务器进程后 台 进 程Oracle进程进程72厦门理工学院计算机系用户进程用户进程 当用户运行一个应用程序当用户运行一个应用程序时,就建立一个用户进程。时,就建立一个用户进程。73厦门理工学院计算机系服务器进程服务器进程 服务器进程服务器进程:处理用户进程的请求。处理用户进程的请求。 处理过程:分析分析SQL命
43、令并生成执行方案。命令并生成执行方案。从数据缓冲存储区中读取数据。从数据缓冲存储区中读取数据。将执行结果返回给用户。将执行结果返回给用户。74厦门理工学院计算机系后台进程后台进程后台进程后台进程 为所有数据库用户异步完成各种任务。主要的后台进程有主要的后台进程有 DBWR 数据库写进程数据库写进程 LGWR 日志写进程日志写进程 CKPT 检查点写进程检查点写进程 SMON 系统监控进程系统监控进程 PMON 进程监控进程进程监控进程 ARCH 归档进程归档进程 RECO 恢复进程恢复进程 LCKn 封锁进程封锁进程75厦门理工学院计算机系DBWR(数据写数据写)DBWR(Data Base
44、Writer) 将数据缓冲区中所有修改过的缓冲块将数据缓冲区中所有修改过的缓冲块数据写到数据文件中,并使用数据写到数据文件中,并使用LRU算法算法来保持缓冲区中的数据块为最近经常使来保持缓冲区中的数据块为最近经常使用的,以减少用的,以减少I/O次数。次数。 该进程在启动实例时自动启动。该进程在启动实例时自动启动。76厦门理工学院计算机系LGWR(日志写日志写)LGWR(Log Writer) 将日志缓冲区中的所有记录将日志缓冲区中的所有记录项写到日志文件中。项写到日志文件中。 该进程在启动实例时自动启该进程在启动实例时自动启动。动。77厦门理工学院计算机系启动启动LGWR进行写操作的条件进行写
45、操作的条件用户进程提交一个事务(用户进程提交一个事务(Commit)日志缓冲区达到日志缓冲区达到1/3范围范围DBWR对一个检查点需要清除缓冲对一个检查点需要清除缓冲块块出现超时(出现超时(3秒钟内未活动,则进行秒钟内未活动,则进行一次写操作。)一次写操作。)78厦门理工学院计算机系ARCH(归档进程归档进程)ARCH(Archiver) 在日志文件组出现切换时,将在日志文件组出现切换时,将旧日志文件的内容拷贝到脱机存储旧日志文件的内容拷贝到脱机存储介质上,出现介质失败时用于恢复介质上,出现介质失败时用于恢复数据。数据。ARCH存储介质79厦门理工学院计算机系其他后台进程其他后台进程SMON(
46、System Monitor,系统监控进程系统监控进程) 负责完成自动实例恢复。该进程在启动实例时自负责完成自动实例恢复。该进程在启动实例时自动启动。动启动。PMON(Process Monitor,进程监控进程进程监控进程) 撤消异常中断的用户进程,并释放该进程已获得撤消异常中断的用户进程,并释放该进程已获得的系统资源或锁。的系统资源或锁。80厦门理工学院计算机系RECO(Recover,恢复进程恢复进程) 在分布式操作的情况下,恢复一个事在分布式操作的情况下,恢复一个事务的失败。务的失败。LCKn(Lock,锁进程锁进程) 在并行服务器系统间加锁,最多可加在并行服务器系统间加锁,最多可加1
47、0个锁,分别为个锁,分别为LCK0,LCK1,LCK9。其他后台进程其他后台进程81厦门理工学院计算机系体系结构的示例体系结构的示例处理SQL语句的三个阶段 语法分析语法分析 执行执行 返回指令返回指令Server共享池数据缓冲区日志缓冲区UserUserUserSQL SELECT ename FROM emp ;Server共享池数据缓冲区日志缓冲区UserUserUserSMITHALLENWARD Server共享池数据缓冲区日志缓冲区82厦门理工学院计算机系体系结构的示例体系结构的示例SELECT操作操作SQL SELECT sal FROM emp WHERE job = CLER
48、K ;Server共享池数据缓冲区UserUserUserB1B2EMP TableBlock 1Block283厦门理工学院计算机系体系结构的示例体系结构的示例UPDATE操作 为了支持读一致性,恢复和回滚,所有修为了支持读一致性,恢复和回滚,所有修改操作需要回滚段。修改操作执行:改操作需要回滚段。修改操作执行: 将数据块送到数据缓冲区将数据块送到数据缓冲区 将回滚块送到数据缓冲区将回滚块送到数据缓冲区 在修改行上设置行锁在修改行上设置行锁 保存回滚数据到回滚段块保存回滚数据到回滚段块 将修改写到数据块将修改写到数据块84厦门理工学院计算机系体系结构的示例体系结构的示例SQL SELECT
49、sal FROM emp WHERE job = CLERK ;Server1UserUserUser1Server2UserUserUser2共享池数据缓冲区B1B2R2R1EMP TableBlock 1Block2RB01R1R2Data File 1Data File 2 SQL UPDATE emp SET sal = sal * 1.1 WHERE job = CLERK ;UPDATE操作85厦门理工学院计算机系Version 1.0厦门理工学院计算机系大型数据库技术大型数据库技术Oracle 10g体系结构体系结构-2.4 数据字典数据字典Page 86数据字典数据字典 数据字典是数据字典是Oracle数据库的核心组件数据库的核心组件,它由一系列只读的数据字典表和数据字它由一系列只读的数据字典表和数据字典视图组成典视图组成. 数据字典中记录了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度工程建设项目保证担保借款合同2篇
- 二零二五年度文学出版赞助协议3篇
- 《财政收入概述 》课件
- 2025版智能制造集资合作协议书3篇
- 2025年青岛版六三制新七年级生物下册阶段测试试卷含答案
- 二零二五年度城市更新拆迁补偿协议4篇
- 编外人员报名资格审核登记表
- 2025年冀少新版四年级语文下册月考试卷
- 2025年北师大版第二册生物上册阶段测试试卷含答案
- 专职工作人员报名表
- 安全隐患大排查大整治专项行动方案
- 蓝军战略课件
- 科学计算语言Julia及MWORKS实践 课件8 - 基本数据类型
- 湖北省黄冈市2023-2024学年高一上学期期末考试化学试题(含答案)
- 物流公司安全生产监督检查管理制度
- DB22T 277-2011 建筑电气防火检验规程
- DB52T 1696-2022 口腔综合治疗台用水卫生管理规范
- 2025届上海市复旦附中浦东分校物理高二上期末教学质量检测试题含解析
- 快乐读书吧:童年(专项训练)-2023-2024学年六年级语文上册(统编版)(含答案)
- 2023-2024学年广东省广州市海珠区九年级(上)期末英语试卷
- 红色蛇年大吉年终总结汇报
评论
0/150
提交评论