1、ORACLE体系体系结构构Oracle的主要的主要组成部分成部分Oracle的主要的主要组成部分成部分4Oracle server由由Oracle instance和和Oracle database组成。成。4Oracle instance由后台由后台进程和内存程和内存结构构成。构构成。4Oracle database由多个操作系由多个操作系统文件(数据文件(数据库文件)构成。文件)构成。4其它其它组成部分成部分Oracle ServerOracle Instance4用于存取用于存取Oracle database4一次只能打开一个数据一次只能打开一个数据库建立建立连接与接与创建会建会话连接与
2、会接与会话4连接(接(connection)连接是用接是用户进程与服程与服务器器进程之程之间的一条通的一条通信路径。信路径。4会会话(Session)会会话是用是用户到到Oracle Server的一次特定的一次特定连接。接。Oracle DatabaseOracle 的内存的内存结构构4Oracle的内存的内存结构由以下两个部分构由以下两个部分组成:成:System Global Area(SGA):):Oracle Instance的的 基本基本组成部分,在成部分,在实例启例启动时分分配。配。Program Global Area(PGA):当服:当服务器器进程启程启动时分配分配Syste
3、m Global Area(SGA)4SGA由以下内存由以下内存结构构成构构成Shared PoolDatabase Buffer CacheRedo Log Buffer其它其它结构构4还可以可以选择为SGA配置以下两个可配置以下两个可选的的内存内存结构:构:Large PoolJava Pool4SHOW SGA;Shared Pool4Shared Pool用于用于缓存最近被存最近被执行的行的SQL语句和最近被使用的数据定句和最近被使用的数据定义。4它主要由两个内存它主要由两个内存结构构成:构构成:Library cacheData dictionary cache4修改共享池的大小修改
4、共享池的大小ALTER SYSTEM SET SHARED_POOL_SIZE=64M;Library Cache4Libray Cache缓存最近被存最近被执行的行的SQL和和PL/SQL的相关信息。的相关信息。实现常用常用语句的共享句的共享使用使用LRU算法算法进行管理行管理由以下两个由以下两个结构构成:构构成:Shared SQL areaShared PL/SQL areaData Dictionary Cache4Data dictionary cache缓存最近被使用的存最近被使用的数据数据库定定义。它包括关于数据它包括关于数据库文件、表、索引、列、用文件、表、索引、列、用户、权限
5、以及其它数据限以及其它数据库对象的信息。象的信息。在在语法分析法分析阶段,段,Server Process访问数据数据字典中的信息以解析字典中的信息以解析对象名和象名和对存取操作存取操作进行行验证。将数据字典信息将数据字典信息缓存在内存中有助于存在内存中有助于缩短响短响应时间。Database Buffer Cache4Database Buffer Cache用于用于缓存从数据存从数据文件中文件中检索出来的数据索出来的数据块。可以大大提高可以大大提高查询和更新数据的性能。和更新数据的性能。使用使用LRU算法算法进行管理行管理Redo Log Buffer Cache4Redo Log Buf
6、fer Cache缓存存对于数据于数据块的所有修改。的所有修改。主要用于恢复主要用于恢复其中的每一其中的每一项修改修改记录都被称都被称为redo 条目。条目。利用利用Redo条目的信息可以重做修改。条目的信息可以重做修改。Large Pool4Large Pool是是SGA中一个可中一个可选的内存区域,的内存区域,它只用于它只用于shared server环境。境。可以减可以减轻共享池的共享池的负担担可以可以为备份、恢复等操作来使用份、恢复等操作来使用不使用不使用LRU算法来管理算法来管理指定指定Large Pool的大小的大小ALTER SYSTEM SET LARGE_POOL_SIZE=
7、64MJava Pool4Java Pool为Java命令的命令的语法分析提供服法分析提供服务在安装和使用在安装和使用Java的情况下使用的情况下使用其大小由其大小由JAVA_POOL_SIZE指定指定Program Global Area(PGA)4PGA是是为每个每个连接到接到Oracle database的的用用户进程保留的内存。程保留的内存。User ProcessServer ProcessStack spaceSession informationsort area,cursor informationShared SQL AreaStack spacesort area,curs
8、or informationSGAShared SQL AreaSession informationSGAPGADidicated ServerShared ServerProgram Global Area(PGA)4PGA存存储一个服一个服务器器进程或后台程或后台进程的程的数据和控制信息,并且只能由一个数据和控制信息,并且只能由一个进程程使用。它在使用。它在进程程创建建时分配,在分配,在进程程结束束时被收回。被收回。进程程4Oracle拥有以下有以下类型的型的进程:程:User ProcessServer ProcessBackground Process用用户进程(程(User Pro
9、cess)4是一个需要与是一个需要与Oracle Server交互的程序交互的程序运行于客运行于客户端端当用当用户运行某个工具或运行某个工具或应用程序(如用程序(如SQL*Plus)时创建,当用建,当用户退出上述程序退出上述程序时结束束向向Oracle Server发出出调用,但它并不与用,但它并不与Oracle Server直接交互,而是通直接交互,而是通过Server Process与与Oracle Server进行交互。行交互。Server Process4是一个直接与是一个直接与Oracle Server交互的程序。交互的程序。4与与Oracle Server运行于同一台机器上运行于同
10、一台机器上4使用使用PGA4执行行User Process发出的出的调用,并向用,并向User Process返回返回结果状果状态和和结果信息。果信息。Background Process4后台后台进程用于程用于维护物理存物理存储与内存中的与内存中的数据之数据之间的关系。主要包括:的关系。主要包括:DBWnPMONCKPTLGWRSMONRECOARCnDatabase Writer(DBWn)4DBWn在以下情况将数在以下情况将数据写入磁据写入磁盘:发生生检查点点达到达到脏缓冲区冲区阈值没有可用的没有可用的缓冲区冲区超超时将表空将表空间设置置为脱机或脱机或只只读删除或截断表除或截断表备份表空
11、份表空间LOG Writer(LGWR)4LGWR在以下情况将在以下情况将缓冲区中的数据写入磁冲区中的数据写入磁盘:事事务提交提交三分之一的三分之一的redo日志日志缓冲区已冲区已满Redo日志日志缓冲区中的内冲区中的内容超容超过1M每三秒每三秒钟在在DBWn写磁写磁盘之前之前System Monitor(SMON)4负责检查和和维护Oracle database的一致的一致性。它主要完成以下工作:性。它主要完成以下工作:实例恢复例恢复重做已提交的事重做已提交的事务打开数据打开数据库回回滚未提交的事未提交的事务合并数据文件中相合并数据文件中相邻的自由空的自由空间释放放临时段的空段的空间Proc
12、ess Monitor(PMON)4当某个当某个进程失效程失效时,清除相关的,清除相关的资源。源。它主要它主要负责以下工作:以下工作:回回滚用用户的当前事的当前事务释放相关的放相关的锁释放其它相关的放其它相关的资源源Checkpoint(CKPT)4Checkpoint负责:使使DBWn将将SGA中所有被修改的数据中所有被修改的数据库缓冲冲区的内容写入磁区的内容写入磁盘,无,无论事事务是否被提交是否被提交用用检查点信息更新数据文件点信息更新数据文件头用用检查点信息更新控制文件点信息更新控制文件4它可以保它可以保证:将将经常被修改的数据常被修改的数据块写入磁写入磁盘简化化实例恢复例恢复Archiver(ARCn)4是一个可是一个可选的后台的后台进程程4当把数据当把数据库设置置为ARCHIVELOG模式模式时,可以自,可以自动归档档联机机redo日志日志4能能够保存所有保存所有对数据数据库所做修改的所做修改的记录查询处理理4解析解析在在Shared Pool中中寻找是否有同找是否有同样的的语句句检查语法、法、对象名和象名和权限限对解析用到的解析用到的对象加象加锁创建和存建和存储执行行计划划4执行行4获取和返回数据取和返回数据处理理DML语句句4解析解析4执行行