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解决恢复前,所作的修改数据的标志均标为可疑。
一个喜欢oracle数据库,走在java开发路上的程序媛~

浙公网安备 33010602011771号