oracle内存结构

一、ORACLE数据库文件
1.初始化参数文件
     即inisid.ora,配置参数和数值的集合。每一个参数值都控制或修改数据库和实例的某个方面。是一个可以编辑的文本文件,它在数据库实例启动是被访问,从而得到数据文件、控制文件和日志文件等的路径。
2.数据文件
     用于存放数据库的数据。分为用户数据,系统数据两类。
3.控制文件
     由ORACLE数据库实例在启动是被访问的内部二进制文件,ORACLE一般有一个或多个控制文件,每个控制文件记录有相同的信息,在数据库运行中如果某个控制文件出错是,ORACLE会自动使用另外一个控制文件,当所有的控制文件都损坏时系统将不能工作。
4.重做日志文件
     特点:1.负责oracle的日记账,负责记录所有用户对象或系统变更的信息。
               2.安装完成后有多个重做日志文件,它们是几个分为一组,组内的重做日志文件大小要一样
               3.为了提高系统性能,可以创建多重做日志文件组。
 
 
二。ORACLE内存结构
内存结构:系统全局区(SGA ,system global area),程序全局区(PGA,program global area)
 
SGA包含组件:
     1.数据高速缓冲区(data buffer cache):存放oracle系统最近使用过的数据块(oracle数据库中最小存储和处理单位)。
     数据高速缓冲区包括三个类型的区:1.keep缓冲池 2.recycle缓冲池 3.default缓冲池
 
     2.重做日志缓冲区(rado log buffer):任何事务在记录到重做日志之前都必须首先放到重做日志缓冲区中,然后由日志写入进程(lgwr)定期将此缓冲区的内容写入重做日志中。
 
     3.共享池:SGA的保留区,用于存储如SQL,PL/SQL,过程及包,数据字典,锁,字符集信息和安全机制等。其包含库高速缓存和字典高速缓冲区
     库高速缓存包括:该区存放有经过语法分析并且正确的sql语句,并随时准备执行。
                              1.共享SQL区
                              2.私有SQL区
                              3.PL/SQL存储过程及包
                              4.控制结构
     字典高速缓冲区:用于存放oracle系统管理自身需要的所有信息,这些信息是登录到oracle的用户名,这些用户有哪些数据库对象以及这些数据库对象的位置。
 
三、ORACLE进程
     分为服务进程和后台进程
     
     服务器进程:处理用户和与实力连接的事务。
     它的任务如下:
     1.分析和执行应用所发出的SQL语句。
     2.从数据文件读出必要的数据到SGA区的共享数据区。
     3.返回必要的信息给应用。
 
     后台进程
     1.数据库写入器(dbwr):是将修改后的数据块写回数据库文件。
     2.校验点(ckpt):可选进程,在系统运行中当出现查找数据请求时,系统从数据库中找出这些数据并存入内存区,这样用户就可以对这些内存区数据进行修改等。当需要对被修改的数据写回数据文件是就产生重做日志的交替写,这时就出现校验点。系统要把内存中修改过的数据块中的信息写回磁盘的数据文件中。此外,系统还将重做日志通知控制文件。
     3.日志写入器(lgwr):用于将SGA的日志信息写入日志文件的进程。一般是用户所作的修改值先记入日志文件,等到一段时间才真正将修改结果写回数据文件。
     4.系统监控器(smon,system monitor)在数据库系统启动是执行恢复工作的强制性进程。比如,在并行服务器模式下(两台服务器共用一组磁盘组),smon可以恢复另一台处于失败的数据库,是系统切换到另一台正常的服务器上。
     5.进程监控器(pmon):用于终止哪些失败的用户,释放该用户所占用的资源等。
     6.归档器(arch,archivelog):当数据库处于归档模式时使用。
     7.锁(lckn):可选进程,当在并行服务器模式可出现多个锁定进程以利于数据库通信。
     8.恢复器(reco):分布式数据库模式下使用的可选进程,用于数据不一致时做的恢复工作。在reco解决恢复前,所作的修改数据的标志均标为可疑。
posted @ 2013-11-09 20:46  样_样  阅读(458)  评论(0)    收藏  举报