《Oracle体系结构培训课件11320.pptx》由会员分享,可在线阅读,更多相关《Oracle体系结构培训课件11320.pptx(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Oracle体系结构体系结构1-2主要内容主要内容Oracle体系结构及其组件体系结构及其组件例程例程数据库数据库 例程例程 内存结构内存结构 后台进程后台进程 数据库数据库 物理结构物理结构 逻辑结构逻辑结构1-3OracleOracle服务器的工作原理服务器的工作原理客户机客户机服务器服务器服务器进程服务器进程(PGA区区)用户进程用户进程(SQL语句语句)Oracle server1-4处理过程可以简单的描述为处理过程可以简单的描述为:1.1.用户在其机器上运行基于用户在其机器上运行基于OracleOracle的应用程序的应用程序(如如:SQL*PLUS:SQL*PLUS、PL/SQL
2、DeveloperPL/SQL Developer等等),),即启动用户进程即启动用户进程.2.2.客户机、服务器之间建立连接客户机、服务器之间建立连接(Connect).(Connect).3.3.服务器为用户建立会话服务器为用户建立会话(Session),(Session),并为该会话建立一并为该会话建立一个个PGA(Program Global Area,PGA(Program Global Area,程序全局区程序全局区)以存储与该以存储与该会话相关的信息会话相关的信息.在同一个连接中在同一个连接中,不同的用户有不不同的用户有不同的会话同的会话.4.4.启动服务进程启动服务进程,由该服
3、务进程负责执行该会话的各项由该服务进程负责执行该会话的各项任务任务.5.5.用户进程发送用户进程发送SQLSQL语句语句(select(select、updateupdate、commit.)commit.)6.6.服务器进程解析、编译、执行服务器进程解析、编译、执行SQLSQL语句,然后将结语句,然后将结果写入数据库并返回结果给用户进程。果写入数据库并返回结果给用户进程。7.7.用户进程接收返回的用户进程接收返回的SQLSQL执行结果。执行结果。8.8.在应用程序中显示在应用程序中显示SQLSQL执行结果执行结果.1-5口令文件口令文件体系结构及其组件综述体系结构及其组件综述例程例程SGA重
4、做日志缓冲区重做日志缓冲区共享池共享池数据字典高速缓存数据字典高速缓存库高速缓存库高速缓存DBWRSMONPMONCKPTLGWROthers用户进程用户进程服务器进程服务器进程PGA控制文件控制文件数据文件数据文件数据库数据库数据高速缓存数据高速缓存重做日志重做日志Java 池池大缓冲池大缓冲池参数文件参数文件归档日志归档日志1-6图示内容如下图示内容如下:OracleOracle的体系结构可分客户端、服务器两大部分。的体系结构可分客户端、服务器两大部分。客户端:在客户机上安装管理工具后,运行工具客户端:在客户机上安装管理工具后,运行工具启动用户进程。启动用户进程。服务器:包括例程和数据库两
5、部分。服务器:包括例程和数据库两部分。例程:包括例程:包括SGASGA及后台进程。及后台进程。数据库:数据库:包括控制文件、数据文件、日志文件等操作包括控制文件、数据文件、日志文件等操作系统文件系统文件.1-7涉及三种结构:涉及三种结构:OracleOracle的内存结构的内存结构 OracleOracle的进程结构的进程结构OracleOracle数据库的存储结构数据库的存储结构物理结构物理结构逻辑结构逻辑结构1-8内存结构:内存结构:SGA SGA和和PGAPGA,使用内存最多的是,使用内存最多的是SGA,SGA,同时也是影响数据库性能的最大参数同时也是影响数据库性能的最大参数.进程结构:
6、包括前台进程、后台进程。前台进程进程结构:包括前台进程、后台进程。前台进程是指服务进程和用户进程是指服务进程和用户进程.前台进程是根据实际前台进程是根据实际需要而运行的,并在需要结束后立刻结束。后需要而运行的,并在需要结束后立刻结束。后台进程是指在台进程是指在OracleOracle数据库启动后数据库启动后,自动启动的几自动启动的几个操作系统进程个操作系统进程.存储结构:分为逻辑存储结构、物理存储结构。存储结构:分为逻辑存储结构、物理存储结构。逻辑存储结构是描述逻辑存储结构是描述OracleOracle数据库中如何组织数据库中如何组织和管理数据。与操作系统平台无关。和管理数据。与操作系统平台无
7、关。物理存储结构是物理存储结构是OracleOracle数据库的外部存储结构。数据库的外部存储结构。它对应操作系统相关文件。包括控制文件、数它对应操作系统相关文件。包括控制文件、数据文件、日志文件等操作系统文件据文件、日志文件等操作系统文件.1-9Oracle Oracle 服务器服务器Oracle Oracle 数据库服务器数据库服务器:主要由两部分组成:主要由两部分组成:物理数据库和数据库管理系统。物理数据库和数据库管理系统。物理数据库是保存数据的物理物理数据库是保存数据的物理存储设备。存储设备。数据库管理系统是用户与物理数据库管理系统是用户与物理数据库之间的一个中间是软件数据库之间的一个
8、中间是软件层,又称例程。有一定的结构。层,又称例程。有一定的结构。或称数据库服务器由例程和数或称数据库服务器由例程和数据库组成据库组成Oracle server1-10数据库服务器启动时:数据库服务器启动时:OracleOracle首先要在内存中获取、划分、保留各种用首先要在内存中获取、划分、保留各种用途的区域途的区域,运行各种用途的后台运行各种用途的后台,即:创建一个例即:创建一个例程程(instance)(instance);然后由该例程装载然后由该例程装载(mount)(mount)、打开、打开(open)(open)数据库;数据库;最后由这个例程来访问和控制数据库的各种物理最后由这个例
9、程来访问和控制数据库的各种物理结构结构1-11 如果把如果把OracleOracle数据库比作一部汽车,数据库比作一部汽车,instanceinstance相当于汽车的发动机一样相当于汽车的发动机一样,启动启动oracleoracle数据数据库前提应先启动库前提应先启动instance.instance.1-12当用户连接到数据库并使用数据库时,实际上当用户连接到数据库并使用数据库时,实际上是连接到该数据库的例程,通过例程来连接、是连接到该数据库的例程,通过例程来连接、使用数据库。使用数据库。所以例程是用户和数据库之间的中间层。所以例程是用户和数据库之间的中间层。例程与数据库的区别:例程与数据
10、库的区别:数据库指的是存储数据的物理结构,总是实际数据库指的是存储数据的物理结构,总是实际存在的;存在的;例程则是由内存结构和一系列进程组成,可以例程则是由内存结构和一系列进程组成,可以启动和关闭。启动和关闭。1-13SID(SID(系统标识符系统标识符)一台计算机上可以创建多个一台计算机上可以创建多个OracleOracle数据库,一个数据库,一个数据库上可以有多个例程。数据库上可以有多个例程。为了使例程间不混淆,每个例程都称为:为了使例程间不混淆,每个例程都称为:SID(SystemIDentify)SID(SystemIDentify)加以区分。加以区分。1-14例例 程的组成程的组成
11、一个一个OracleOracle例程是存取和控制一个数据库的例程是存取和控制一个数据库的软件机制,是接触软件机制,是接触OracleOracle数据库的方式,存取数数据库的方式,存取数据库中数据的一种手段,或者称之据库中数据的一种手段,或者称之OracleOracle数据库数据库管理系统。它由系统全局区(管理系统。它由系统全局区(System Global AreaSystem Global Area,简称,简称SGASGA)和后台进程组成。)和后台进程组成。例程例程SGA重做日志缓冲区重做日志缓冲区共享池共享池数据字典高速缓存数据字典高速缓存库高速缓存库高速缓存DBWRSMONPMONCKP
12、TLGWROthers数据高速缓存数据高速缓存Java 池池大缓冲池大缓冲池SGA后台后台进程进程1-15连接到例程连接到例程建立连接和会话建立连接和会话 :建立用户连接建立用户连接建立会话建立会话建立会话建立会话数据库用户数据库用户用户进程用户进程服务器进程服务器进程建立连接建立连接Oracle server1-16建立连接:建立连接:是一个安全审核的过程。包括:提交的网络服是一个安全审核的过程。包括:提交的网络服务名是否正确;输入的用户名及密码是否存在且务名是否正确;输入的用户名及密码是否存在且正确,连接的数据库对象是否存在等等,对这些正确,连接的数据库对象是否存在等等,对这些一系列的过程
13、进行审核。一系列的过程进行审核。通过用户进程来连接。通过用户进程来连接。一旦建立了连接,一旦建立了连接,OracleOracle服务器会给该用户调度一服务器会给该用户调度一个服务器进程来完成该用户的请求命令服务。个服务器进程来完成该用户的请求命令服务。建立会话:建立会话:服务器进程解析用户进程提供来的服务器进程解析用户进程提供来的SQLSQL语句,完语句,完成该次会话执行的各种任务。成该次会话执行的各种任务。1-17数据库数据库口令文件口令文件控制文件控制文件数据文件数据文件数据库数据库重做日志重做日志参数文件参数文件归档日志归档日志 Oracle Oracle 保存数据的容器。保存数据的容器
14、。分物理存储分物理存储结构及逻辑存储结构。结构及逻辑存储结构。1-18OracleOracle数据库物理存储结构数据库物理存储结构 物理存储结构是现实的数据存储单元,对应物理存储结构是现实的数据存储单元,对应于操作系统文件。于操作系统文件。OracleOracle数据库就是由驻留在服数据库就是由驻留在服务器的磁盘上的这些操作系统文件所组成的。务器的磁盘上的这些操作系统文件所组成的。这些文件有数据文件、日志文件、控制文件。这些文件有数据文件、日志文件、控制文件。1-19物理存储结构物理存储结构物理结构主要包括以下三种文件物理结构主要包括以下三种文件:控制文件控制文件数据文件数据文件重做日志重做日
15、志控制文件控制文件数据文件数据文件重做日志重做日志1-20数据文件数据文件(Data File)(Data File)数据文件数据文件(Data File)Data File)是物理存储是物理存储OracleOracle数据库数据的文件。数据库数据的文件。其特点如下:其特点如下:每一个数据文件只与一个数据库相联系。每一个数据文件只与一个数据库相联系。一个表空间可包含一个或多个数据文件。一个表空间可包含一个或多个数据文件。一个数据文件只能属于一个表空间。一个数据文件只能属于一个表空间。1-21重做日志文件重做日志文件(Redo File)(Redo File)重做日志文件重做日志文件(Redo(
16、Redo Log File)Log File)记录所有对数据库数据的记录所有对数据库数据的修改,以备恢复数据时使用。修改,以备恢复数据时使用。其特点如下:其特点如下:每一个数据库至少包含两个日志文件组。每一个数据库至少包含两个日志文件组。日志文件组以循环方式进行写操作。日志文件组以循环方式进行写操作。每一个日志文件成员对应一个物理文件。每一个日志文件成员对应一个物理文件。1-22控制文件控制文件 控制文件控制文件(Control FileControl File)是一个较小的二进制文件,是一个较小的二进制文件,用于描述数据库结构。用于描述数据库结构。描述信息如下:描述信息如下:数据库建立的日期
17、。数据库建立的日期。数据库名。数据库名。数据库中所有数据数据库中所有数据文件和日志文件的文件和日志文件的文件名及路径。文件名及路径。恢复数据库时所需恢复数据库时所需的同步信息。的同步信息。要点注意:要点注意:在打开和存取数据库时在打开和存取数据库时都要访问该文件。都要访问该文件。记录控制文件名及路径记录控制文件名及路径的参数为:的参数为:CONTROL_FILES1-23参数文件参数文件 参数文件(参数文件(Parameter FileParameter File)也被称为初始化)也被称为初始化参数文件,用于存储参数文件,用于存储SGASGA、可选的、可选的OracleOracle特性特性和后
18、台进程的配置参数。和后台进程的配置参数。当数据库启动,并在创建例程或读取控制文当数据库启动,并在创建例程或读取控制文件之前,会先按其中的参数进行例程的配置。件之前,会先按其中的参数进行例程的配置。位置:位置:$Oracle_home dbs$Oracle_home dbs1-24口令文件:是个二进制文件,验证特权用户。口令文件:是个二进制文件,验证特权用户。位置:位置:$Oracle_home databasePWD%.ora$Oracle_home databasePWD%.ora归档日志文件:非活动的重做日志文件的备份。归档日志文件:非活动的重做日志文件的备份。1-25逻辑存储结构逻辑存储
19、结构主要描述主要描述OracleOracle数据库的内部存储结构,从技数据库的内部存储结构,从技术概念上描述术概念上描述OracleOracle数据库中如何组织、管理数据库中如何组织、管理数据。数据。可以分为可以分为4 4部分:表空间、段、区、块。部分:表空间、段、区、块。表空间表空间段段数据块数据块区区段段1-26OracleOracle的逻辑结构是由一个或多个表空间组成。的逻辑结构是由一个或多个表空间组成。一个表空间一个表空间(tablespace)(tablespace)由一组段组成由一组段组成 一个段一个段(segment)(segment)由一组区组成由一组区组成 一个区一个区(ex
20、tent)(extent)由一批数据库块组成由一批数据库块组成 一个数据库块一个数据库块(block)(block)对应一个或多个物理操作系对应一个或多个物理操作系统块。统块。1-27表空间表空间 表空间是数据库的逻辑划分的最大单元,表空间是数据库的逻辑划分的最大单元,一个一个OracleOracle数据库至少有一个表空间,即数据库至少有一个表空间,即systemsystem表空间。表空间。数据库数据库表空间表空间1表空间表空间2表空间表空间3数据数据文件文件数据数据文件文件数据数据文件文件数据数据文件文件数据数据文件文件表空间表空间1表空间表空间2表空间表空间3数据数据文件文件数据数据文件文
21、件数据数据文件文件数据数据文件文件数据数据文件文件表表表表表表1-28安装完安装完Oracle 10gOracle 10g后后,自动创建的表空间为自动创建的表空间为:Example Example 示示例表空间,存放例子数据库的方案对象。例表空间,存放例子数据库的方案对象。SYSTEM SYSTEM 系统表空间,存放关于表空间名称、控制系统表空间,存放关于表空间名称、控制文件、数据文件等管理信息,它属于文件、数据文件等管理信息,它属于syssys、systemsystem方方案。不能删除或重命名。案。不能删除或重命名。SYSAUX SYSAUX 辅助系统表空间辅助系统表空间 ,用于减少系统表空
22、间,用于减少系统表空间的负荷,提高效率。是的负荷,提高效率。是Oracle 10gOracle 10g新增加的表空间。新增加的表空间。TEMP TEMP 临时表空间,存放临时表和临时数据,用临时表空间,存放临时表和临时数据,用于排序。于排序。USERS USERS 用户表空间,存放永久性用户对象及私有用户表空间,存放永久性用户对象及私有信息,也称数据表空间。注意:每一个数据库都应信息,也称数据表空间。注意:每一个数据库都应该有一个用户表空间,以便在创建用户时分配给用该有一个用户表空间,以便在创建用户时分配给用户,否则用户的数据将会使用户,否则用户的数据将会使用SYSTEMSYSTEM表空间。表
23、空间。UNDOTBS1 UNDOTBS1 重做表,重做表,1-29段段 (SegmentSegment)段段数据(表)段数据(表)段索引段索引段临时段临时段回退段回退段段是表空间的下一个逻辑单位,是表空间中一个段是表空间的下一个逻辑单位,是表空间中一个指定类型的逻辑存储结构,它由一个或多个区组指定类型的逻辑存储结构,它由一个或多个区组成成,段将占用并增长存储空间。,段将占用并增长存储空间。分类如下分类如下 :1-30区区(extent)(extent)区区(Extent)Extent)是由是由物理上连续存放的物理上连续存放的块块构构成,成,区区是是OracleOracle存储分配的最小单位存储
24、分配的最小单位,由一个或多个块由一个或多个块 组成。组成。当在数据库中创建带有实际存储结构的方案对象当在数据库中创建带有实际存储结构的方案对象(如表、索引)时,(如表、索引)时,OracleOracle将为该方案对象分配若干将为该方案对象分配若干个区,以便组成一个对应的段来为该方案对象提供个区,以便组成一个对应的段来为该方案对象提供初始的存储空间。当段中已分配的区都写满后,初始的存储空间。当段中已分配的区都写满后,OracleOracle就为该段分配一个新的区,以便容纳更多的数就为该段分配一个新的区,以便容纳更多的数据。据。分配的第一个分配的第一个区区称称初始初始区区,以后分配的,以后分配的区
25、区称称增量增量区区。1-31数据库块数据库块(Block)(Block)数据库块(数据库块(Database BlockDatabase Block)是数据库使用的)是数据库使用的I/OI/O最小单元,又称逻辑块或最小单元,又称逻辑块或ORACLEORACLE块。块。一个数据库块对应一个或多个物理操作系统一个数据库块对应一个或多个物理操作系统块,块的大小由参数块,块的大小由参数DB_BLOCK_SIZEDB_BLOCK_SIZE确定。确定。数据块的大小是操作系统块大小的整数倍数据块的大小是操作系统块大小的整数倍.以以Win2KWin2K为例为例,操作系统块操作系统块(OS block)(OS
26、block)的大小的大小为为4kb4kb,所以,所以Oracle BlockOracle Block的大小可以是的大小可以是4kb,8kb,16kb4kb,8kb,16kb等等。等等。1-32存储结构总结存储结构总结物理存储结构与逻辑存储结构之间的关系物理存储结构与逻辑存储结构之间的关系从物理上看从物理上看,数据库数据库由控制文件、数据由控制文件、数据文件、重做日志文文件、重做日志文件等操作系统文件件等操作系统文件组成;组成;从逻辑上来看,数从逻辑上来看,数据库是由系统表空据库是由系统表空间、用户表空间等间、用户表空间等组成。组成。表空间是最大的逻表空间是最大的逻辑单位,块是最小辑单位,块是最
27、小的逻辑单位。的逻辑单位。逻辑存储结构中的逻辑存储结构中的块最后对应到操作块最后对应到操作系统中的块系统中的块.1-33内存结构内存结构OracleOracle内存结构由两个部分组成内存结构由两个部分组成:系统全局区系统全局区(SGA):SGA):在启动例程时分配在启动例程时分配,是是OracleOracle例程的基础组件。例程的基础组件。程序全局区程序全局区(PGA):PGA):当启动服务器进程时分当启动服务器进程时分配。配。1-34系统全局区系统全局区(SGA)(SGA)SGASGA是是ORACLEORACLE系统为实例分配的一组共享缓冲存储区,系统为实例分配的一组共享缓冲存储区,用于存放
28、数据库数据和控制信息,以实现对数据库用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。数据的管理和操作。每个例程都只有一个每个例程都只有一个SGA.SGA.它是不同用户进程与服务进程进行通信的中心它是不同用户进程与服务进程进行通信的中心,数数据库的各种操作主要在据库的各种操作主要在SGASGA中进行中进行,所以称其为系统所以称其为系统全局区全局区.创建例程时创建例程时,Oracle,Oracle为为SGASGA分配内存分配内存;终止例程时终止例程时,释放释放SGASGA所占用的内存所占用的内存.1-35系统全局区系统全局区SGASGA由以下内存结构组成由以下内存结构组成:共享池共享
29、池数据高速缓存数据高速缓存重做日志缓冲区重做日志缓冲区在在SGASGA内可以配置以下内存结构内可以配置以下内存结构:大缓冲池大缓冲池JavaJava池池SGA重做日志缓冲区重做日志缓冲区共享池共享池数据字典高速缓存数据字典高速缓存库高速缓存库高速缓存数据高速缓存数据高速缓存Java 池池大缓冲池大缓冲池SGA1-36共享池共享池用于存储用于存储:最近执行的最近执行的SQLSQL语句语句最近使用的数据定义最近使用的数据定义由两个关键的内存结构组成由两个关键的内存结构组成:库高速缓存库高速缓存数据字典高速缓存数据字典高速缓存尺寸由参数尺寸由参数SHARED_POOL_SIZESHARED_POOL
30、_SIZE控制控制共享池共享池数据字典数据字典高速缓存高速缓存库高速缓存库高速缓存ALTER SYSTEM SET SHARED_POOL_SIZE=64M;1-37库高速缓存库高速缓存存储最近解析使用的存储最近解析使用的SQLSQL和和PL/SQLPL/SQL语语句信息句信息 Oracle Oracle 在执行用户进程提交的各种在执行用户进程提交的各种SQLSQL语句、语句、PL/SQLPL/SQL前要对其进行解析(包前要对其进行解析(包括语法解析、对象确认、权限判断、操括语法解析、对象确认、权限判断、操作优化等)并生成执行计划,占用一定作优化等)并生成执行计划,占用一定的系统资源。的系统资
31、源。由两个部分组成由两个部分组成:共享共享SQLSQL区区共享共享PL/SQLPL/SQL区区1-38数据字典高速缓存数据字典高速缓存最近使用的对象定义集合最近使用的对象定义集合包括数据库文件、表、索引、列、用户、权包括数据库文件、表、索引、列、用户、权限和其它数据库对象的信息限和其它数据库对象的信息在解析阶段在解析阶段,服务器进程查看数据字典信息以服务器进程查看数据字典信息以解析对象名解析对象名数据字典缓存信息到内存,以提高查询和数据字典缓存信息到内存,以提高查询和DMLDML响应时间响应时间尺寸由共享池尺寸确定尺寸由共享池尺寸确定1-39数据高速缓存数据高速缓存存储从数据文件检索的数据块副
32、本存储从数据文件检索的数据块副本通过通过LRULRU算法管理算法管理DB_BLOCK_SIZEDB_BLOCK_SIZE确定了缓冲区数据块确定了缓冲区数据块大小大小数据高速缓存数据高速缓存1-40数据缓冲区数据缓冲区数据文件数据文件 初次访问数据时初次访问数据时,Oracle,Oracle将读取将读取磁盘上的数据文件磁盘上的数据文件,将数据放入数将数据放入数据高速缓存,再处理数据;据高速缓存,再处理数据;如果数据已经位于数据高速缓如果数据已经位于数据高速缓存中时存中时,Oracle,Oracle直接操作数据。直接操作数据。1-41数据高速缓存的缓存块分为三类数据高速缓存的缓存块分为三类:脏缓存
33、块:脏缓存块:存放已经被修改过的缓存块存放已经被修改过的缓存块.当当SQLSQL修改某个缓存块中的数据,则这个缓存修改某个缓存块中的数据,则这个缓存块被标记为脏缓存块块被标记为脏缓存块空闲缓存块:空闲缓存块:等待写入数据的空闲缓存块等待写入数据的空闲缓存块.命中缓存块:命中缓存块:最近正在被访问的缓存块最近正在被访问的缓存块.1-42管理缓存块的列表管理缓存块的列表OracleOracle通过通过2 2个列表来管理上述缓存块个列表来管理上述缓存块:脏列表脏列表(DIRTY)(DIRTY)包括被修改过但尚未写到数据文件的缓冲包括被修改过但尚未写到数据文件的缓冲块。块。LRU(Least Rece
34、ntly Used)LRU(Least Recently Used)列表列表 包括空闲缓冲块、命中缓存块包括空闲缓冲块、命中缓存块,以及还没有以及还没有移到脏列表的缓冲块。移到脏列表的缓冲块。1-43数据高速缓存工作原理数据高速缓存工作原理1.1.读数据入数据高速缓存之前读数据入数据高速缓存之前,先在先在LRULRU中搜索空闲缓存中搜索空闲缓存块块;在搜索过程中如果发现脏缓存块在搜索过程中如果发现脏缓存块,则将其移入则将其移入DIRTY;DIRTY;2.2.找到足够的空闲块找到足够的空闲块,将所有数据读入;将所有数据读入;3 3,如果空闲块不足,则暂停搜索,如果空闲块不足,则暂停搜索,Oral
35、ceOralce立刻启动立刻启动DBWRDBWR进程进程,将将DIRTYDIRTY中的脏缓存块数据写入数据文件释放足中的脏缓存块数据写入数据文件释放足够的空闲缓存块。够的空闲缓存块。数据库写进程数据库写进程1-44重做日志缓冲区重做日志缓冲区记录所有数据块变化。当执行记录所有数据块变化。当执行DML,DML,如如:update:update、deletedelete、insertinsert或者或者createcreate、alteralter、drop drop 等语句时等语句时,Oracle,Oracle都会为这些操作生成重做记录都会为这些操作生成重做记录.主要目的是恢复主要目的是恢复Or
36、acleOracle总是先记录日志、后记录数据总是先记录日志、后记录数据由由LOG_BUFFERLOG_BUFFER初始化参数定义初始化参数定义重做日志缓冲区重做日志缓冲区1-45重做日志高速缓存工作原理重做日志高速缓存工作原理日志写进程日志写进程归档进程归档进程为提高效率为提高效率,重做记录并不直接写入磁盘的重做日志文件重做记录并不直接写入磁盘的重做日志文件,而是先写而是先写入重做日志缓存入重做日志缓存;当重做日志缓存中的重做记录达到一定数量时当重做日志缓存中的重做记录达到一定数量时,由由LGWRLGWR进程写入重进程写入重做日志做日志.(.(先内存后磁盘先内存后磁盘)当当2 2个个(至少至
37、少2 2个个)重做日志切换时重做日志切换时,由由ARCHARCH将重做日志中的数据写入将重做日志中的数据写入归档日志文件,以做备份归档日志文件,以做备份.1-46大池大池 大池用于需要大内存操作提供相对独立的内存空间,大池用于需要大内存操作提供相对独立的内存空间,以便提高性能。以便提高性能。大池是可选的内存结构。大池是可选的内存结构。DBADBA可以决定是否需要在可以决定是否需要在SGASGA中创建大池。中创建大池。需要大池的操作需要大池的操作:数据库备份和恢复数据库备份和恢复 大量排序的大量排序的SQLSQL语句语句 并行化的数据库操作并行化的数据库操作1-47JavaJava池池8i 8i
38、以后提供的对以后提供的对JavaJava的支持的支持,用于存放用于存放JavaJava代代码、码、JavaJava程序等程序等.一般不小于一般不小于20M,20M,以便虚拟以便虚拟机运行机运行.尺寸由尺寸由JAVA_POOL_SIZEJAVA_POOL_SIZE控制控制1-48程序全局区(程序全局区(PGAPGA)为每个连接到数据库的用为每个连接到数据库的用户进程预留内存户进程预留内存当建立服务器进程时分配当建立服务器进程时分配当终止服务器进程时释放当终止服务器进程时释放只能由一个进程使用只能由一个进程使用用户进程用户进程PGA服务器进程服务器进程1-49进程结构进程结构OracleOracl
39、e使用各种类型进程使用各种类型进程:用户进程用户进程:当用户请求连接到当用户请求连接到Oracle serverOracle server时时启动启动服务进程服务进程:连接到例程,并且当用户建立会连接到例程,并且当用户建立会话时启动话时启动后台进程后台进程:当启动例程时启动当启动例程时启动1-50用户进程用户进程请求与请求与Oracle serverOracle server交互的程序交互的程序必须首先建立连接必须首先建立连接不会与不会与Oracle serverOracle server直接交互直接交互数据库用户数据库用户服务进程服务进程用户进程用户进程建立连接建立连接1-51服务器进程服务
40、器进程直接与直接与Oracle serverOracle server交互的程序交互的程序完成调用并返回结果完成调用并返回结果可以是专用的或者共享的可以是专用的或者共享的建立连接建立连接建立会话建立会话数据库用户数据库用户用户进程用户进程服务器进程服务器进程Oracle server1-52后台进程后台进程作用:维护并加强物理结构和内存结构的关系。作用:维护并加强物理结构和内存结构的关系。必需后台进程必需后台进程:DBWnDBWnPMONPMONCKPTCKPTLGWRLGWRSMONSMON可选后台进程可选后台进程:ARCnARCn LMDnLMDn QMNn QMNnCJQ0CJQ0LMO
41、NLMON RECO RECODnnnDnnnLMSLMS Snnn SnnnLCKnLCKnPnnnPnnn1-53DBWn例程例程SGA控制文件控制文件数据文件数据文件重做重做日志日志数据库数据库DBWn数据高速缓存数据高速缓存1.作用作用 把把Database buffer cache中的脏数据写到中的脏数据写到data files 中。中。2.启动启动DBWR的条件:的条件:检查点检查点DBWR timeout没有空闲空间没有空闲空间脏缓存块达到一定脏缓存块达到一定数量数量1-54LGWR例程例程SGA控制文件控制文件数据文件数据文件重做重做日志日志数据库数据库重做日志重做日志缓冲区缓
42、冲区DBWn LGWR1.作用:作用:把把Redo log buffer中的内容写到中的内容写到Redo log files中。中。2.启动启动LGWR的条件:的条件:在事务提交时重作日志高在事务提交时重作日志高速缓存被写满速缓存被写满1/3没有空闲空间将脏缓存块没有空闲空间将脏缓存块写入数据文件写入数据文件 LGWR进程进程TimeOut1-55SMON控制文件控制文件数据文件数据文件重做重做日志日志Database例程例程SGASMON1、在例程启动时负责、在例程启动时负责对数据库恢复。对数据库恢复。2、将各个表空间的空、将各个表空间的空闲空间碎片合并在一闲空间碎片合并在一起,使之更容易分
43、配。起,使之更容易分配。3、清理不再使用的临、清理不再使用的临时段。时段。1-56PMONPGA例程例程SGAPMON1、恢复中断或失败的用、恢复中断或失败的用户进程、服务进程。户进程、服务进程。2、回退未提交事务。、回退未提交事务。3、监视服务进程和调度、监视服务进程和调度进程,如果它们失败,进程,如果它们失败,则自动重启他们。则自动重启他们。1-57CKPT控制文件控制文件数据文件数据文件重做重做日志日志数据库数据库例程例程SGADBWn LGWRCKPT 执行检查点督促下列执行检查点督促下列进行:进行:更新控制文件与数据更新控制文件与数据文件使其同步;文件使其同步;触发触发DBWR进程,
44、使进程,使其将脏读缓存块写入其将脏读缓存块写入数据文件。数据文件。1-58ARCnARCn归档归档日志日志控制文件控制文件数据文件数据文件重做重做日志日志 它负责将已经写满的重做日志文件备份到归档它负责将已经写满的重做日志文件备份到归档日志文件中,以防止循环写入重做日志文件时将日志文件中,以防止循环写入重做日志文件时将其覆盖。其覆盖。只有数据库运行在归档模式(只有数据库运行在归档模式(ACHIVELOG)时,时,ARCH进程才能被启动。进程才能被启动。1-59本章小结本章小结Oracle数据库包括数据库包括DB和和DBMS两部分两部分。两部分两部分。这两部分分别对应着这两部分分别对应着database和例程。和例程。Oracle数据库的数据库的database的存储结构的存储结构:物理存储结构、逻辑存储结构。物理存储结构、逻辑存储结构。Oracle数据库的例程部分:数据库的例程部分:内存结构、进程结构内存结构、进程结构1-60演讲完毕,谢谢观看!