5.Oracle的内存结构及操作模式Page2学习目的了解Oracle实例的内存结构、功能及管理了解Oracle进程分类及其作用了解Oracle后台进程、功能及管理Page35.1Oracle内存结构系统全局区(SystemGlobalArea,SGA)程序全局区(ProgramGlobalArea,PGA)口令文件实例SGA日志缓冲区共享缓冲区数据字典库缓冲区DBWRSMONPMONCKPTLGWROthers用户进程服务器进程PGA控制文件数据文件数据库数据缓冲区重做日志文件Java池大池参数文件归档日志文件Page45.1.1系统全局区SGA(SystemGlobalArea):Oracle系统在实例启动时分配的一组共享缓冲存储区,被看成是Oracle数据库的一个大缓冲池,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。这里的信息可以被所有的服务和后台进程共享。–共享池:用于保存用户程序–数据库高速缓存:内存中用来频繁访问数据的区域–重做日志缓存:SGA中循环缓存区,记录数据库发生改变的信息–数据词典缓冲区:保存数据库对象信息,比如用户账号信息等–大池(可选):用于分配大量的内存–JAVA池(可选):为java命令提供语法分析SGA日志缓冲区共享池数据字典库缓冲区数据缓冲区Java池大池Page5默认缓存池保持缓存池再生缓存池DB高速缓存池库缓存区共享SQL区PL/SQL区字典缓存区共享池数据字典并没有与之对应的数据文件,它只是对一系列系统表及视图的统称,用来描述数据库中的数据信息,如数据库版本信息,系统的运行状况,数据文件信息,表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等。Page65.1.2程序全局区PGA(ProcessGlobalArea):当server进程建立时分配,是包含oracle进程数据和控制信息的内存区域。它是oracle进程的私有内存区域,不能共享。一个Oracle进程拥有一个PGA内存区。一个PGA也只能被拥有它的那个服务进程所访问,只有这个进程中的Oracle代码才能读写它。用户进程PGA服务器进程Page7用户进程:当用户运行一个应用程序时,就建立一个用户进程(连接和会话)服务器进程:处理用户进程的请求5.2Oracle的进程结构创建会话数据库用户用户进程服务器进程创建连接Oracle服务器Page8后台进程:为所有数据库用户异步完成各种任务主要的后台进程有:vDBWR数据库写进程vLGWR日志写进程vCKPT检查点写进程vSMON系统监控进程vPMON进程监控进程vARCH归档进程vRECO恢复进程vLCKn封锁进程5.2Oracle的进程结构Page92.5.3.1DBWR进程数据库写进程。该进程执行将缓冲区写入数据文件,是负责缓冲存储区管理的一个ORACLE后台进程。当缓冲区中的一缓冲区被修改,它被标志为“弄脏”,DBWR的主要任务是将“弄脏”的缓冲区写入磁盘,使缓冲区保持“干净”。日志写入进程。把重做日志缓冲区中的内容写入到重做日志文件中。–用户进程提交一个事务(commit)–日志缓冲区达到1/3范围–DBWR对一个检查点需要清除缓冲块–出现超时(3s未活动,则进行一次写操作)2.5.3.2LGWR进程Page105.2.1CKPT进程检测点进程用于同步数据文件、日志文件和控制文件,在检查点进程开启后会自动触发其它进程。日志切换,关闭实例,DBA手动触发时启动该进程。参数log_checkpoint_timeout设置指定的间隔时间。在日志文件组出现切换时,将旧日志文件的内容拷贝到脱机存储介质上,出现系统错误时用于恢复数据。参数log_archive_start确定了该进程的启动/不启动状态。5.2.2ARCH进程Page11Smon(SystemMonitor)–负责完成自动实例恢复,该进程在启动实例时自动启动Pmon(ProcessMonitor)–撤销异常中断的用户进程,并释放该进程所获得的系统资源。RECO(Recover)–在分布式操作的情况下,恢复一个事务的失败。LCKn(Lock)–在并行服务器系统间加锁,最多可以加10个锁,分别为LCK1,LCK2...LCK10。5.2.3其它进程Page12用户进程服务器进程后台进程