Copyright©OracleCorporation,2001.Allrightsreserved.Oracle体系结构组件1-2Copyright©OracleCorporation,2001.Allrightsreserved.目标完成这一课的学习后,您应该能达到下列目标:•概括Oracle体系结构及其主要组件•列出在用户连接到Oracle例程过程中涉及的结构1-3Copyright©OracleCorporation,2001.Allrightsreserved.口令文件基本组件概览例程SGA重做日志缓冲区共享池数据字典高速缓存库高速缓存DBWnSMONPMONCKPTLGWR其它用户进程服务器进程PGA控制文件数据文件数据库数据库高速缓冲区重做日志文件Java池大型共享池参数文件归档日志文件1-5Copyright©OracleCorporation,2001.Allrightsreserved.Oracle服务器Oracle服务器:•是一个数据库管理系统,它为信息管理提供了开放、综合和集成的方法•包括Oracle例程和Oracle数据库Oracle服务器1-6Copyright©OracleCorporation,2001.Allrightsreserved.Oracle例程Oracle例程:•是一种访问Oracle数据库的方式•始终打开一个,并且只打开一个数据库•由内存结构和后台进程结构组成后台进程结构内存结构例程SGA重做日志缓冲区共享池数据字典高速缓存库高速缓存DBWRSMONPMONCKPTLGWR其它数据库缓冲区高速缓存Java池大型共享池1-7Copyright©OracleCorporation,2001.Allrightsreserved.建立连接和创建会话连接到Oracle例程包括:•建立用户连接•创建会话创建的会话数据库用户用户进程服务器进程建立的连接Oracle服务器1-9Copyright©OracleCorporation,2001.Allrightsreserved.Oracle数据库Oracle数据库:•是一个被统一处理的数据集合•包括三类文件口令文件参数文件归档的日志文件控制文件数据文件重做日志文件Oracle数据库1-10Copyright©OracleCorporation,2001.Allrightsreserved.物理结构物理结构包括以下三种文件类型:•控制文件•数据文件•重做日志文件控制文件数据文件(包括数据字典)标头联机重做日志文件1-11Copyright©OracleCorporation,2001.Allrightsreserved.内存结构Oracle的内存结构由两个内存区组成,分别是:•系统全局区(SGA):在例程启动时分配,是Oracle例程的基本组件•程序全局区(PGA):在服务器进程启动时分配1-12Copyright©OracleCorporation,2001.Allrightsreserved.系统全局区•SGA包括以下几种内存结构:–共享池–数据库缓冲区高速缓存–重做日志缓冲区–其它结构(例如锁定和栓锁管理以及统计数据)•在SGA中还可配置其它两种内存结构:–大型共享池–Java池1-14Copyright©OracleCorporation,2001.Allrightsreserved.系统全局区•SGA是动态的•大小由SGA_MAX_SIZE参数指定•由SGA组件以粒组为单位进行分配和跟踪–连续的虚拟内存分配–粒组大小由估算的SGA_MAX_SIZE总计大小确定1-15Copyright©OracleCorporation,2001.Allrightsreserved.共享池•用于存储:–最近执行的SQL语句–最近使用的数据定义•它包括以下两个与性能相关的关键内存结构:–库高速缓存–数据字典高速缓存•其大小由SHARED_POOL_SIZE参数确定共享池数据字典高速缓存库高速缓存ALTERSYSTEMSETSHARED_POOL_SIZE=64M;1-16Copyright©OracleCorporation,2001.Allrightsreserved.库高速缓存•存储有关最近使用的SQL和PL/SQL语句的信息•启用常用语句共享•由“最近最少使用算法”(LRU)管理•包括以下两个结构:–共享的SQL区:共享执行计划–共享的PL/SQL区•大小由共享池的大小确定1-17Copyright©OracleCorporation,2001.Allrightsreserved.数据字典高速缓存•数据库中最近使用的定义的集合•包括与数据库文件、表、索引、列、用户、权限和其它数据库对象相关的信息•在语法分析阶段,服务器进程会在数据字典中查找用于解析对象名和验证访问的信息•将数据字典信息高速缓存到内存中,可缩短查询和DML的响应时间•大小由共享池的大小决定1-18Copyright©OracleCorporation,2001.Allrightsreserved.数据库缓冲区高速缓存•存储已从数据文件中检索到的数据块的副本•能够大幅提高获取和更新数据时的性能•通过LRU算法管理•主块的大小由DB_BLOCK_SIZE确定数据库缓冲区高速缓存1-19Copyright©OracleCorporation,2001.Allrightsreserved.数据库缓冲区高速缓存•由独立的子高速缓存组成:–DB_CACHE_SIZE–DB_KEEP_CACHE_SIZE–DB_RECYCLE_CACHE_SIZE•大小可以进行动态调整•设置DB_CACHE_ADVICE可收集用于预测不同高速缓存大小行为的统计信息•统计信息由V$DB_CACHE_ADVICE显示ALTERSYSTEMSETDB_CACHE_SIZE=96M;1-21Copyright©OracleCorporation,2001.Allrightsreserved.重做日志缓冲区•记录对数据库数据块所做的全部更改•主要用于恢复•其中记录的更改称作重做条目•重做条目包含用于重新构造或重做更改的信息•大小由LOG_BUFFER定义重做日志缓冲区1-22Copyright©OracleCorporation,2001.Allrightsreserved.大型共享池•SGA中的可选内存区•分担了共享池的一部分工作•用于:–共享服务器的会话内存(UGA)–I/O服务器进程–备份和恢复操作或RMAN–并行执行消息缓冲区–将PARALLEL_AUTOMATIC_TUNING设置为TRUE•不使用LRU列表•大小由LARGE_POOL_SIZE确定1-24Copyright©OracleCorporation,2001.Allrightsreserved.Java池•存储Java命令的服务分析要求•在安装并使用Java时是必需的•大小由JAVA_POOL_SIZE参数确定1-25Copyright©OracleCorporation,2001.Allrightsreserved.程序全局区•为连接到Oracle数据库的每个用户进程保留的内存•在创建进程时分配•在终止进程时回收•仅供一个进程使用服务器进程PGA用户进程1-28Copyright©OracleCorporation,2001.Allrightsreserved.进程结构Oracle利用了以下几种进程的优势:•用户进程:在数据库用户请求连接到Oracle服务器时启动•服务器进程:与Oracle例程相连接,在用户建立会话时启动•后台进程:在Oracle例程启动时启动1-29Copyright©OracleCorporation,2001.Allrightsreserved.用户进程•请求与Oracle服务器交互的程序•必须先建立连接•不与Oracle服务器直接交互数据库用户服务器进程用户进程建立的连接1-30Copyright©OracleCorporation,2001.Allrightsreserved.服务器进程•直接与Oracle服务器交互的程序•执行生成的调用并返回相关结果•可以是专用服务器或共享服务器建立的连接创建的会话数据库用户用户进程服务器进程Oracle服务器1-31Copyright©OracleCorporation,2001.Allrightsreserved.后台进程维护并加强物理结构与内存结构之间的关系•必备的后台进程:–DBWnPMONCKPT–LGWRSMON•可选的后台进程:–ARCnLMDnRECO–CJQ0LMONSnnn–DnnnPnnn–LCKnQMNn1-32Copyright©OracleCorporation,2001.Allrightsreserved.数据库写入程序(DBWn)在以下情况下写入:•出现检查点•灰数据缓冲区达到阈值•没有空闲缓冲区•出现超时•执行了RACping请求•表空间处于OFFLINE状态•表空间处于READONLY状态•对表执行DROP或TRUNCATE操作•对表空间执行BEGINBACKUP操作例程SGA控制文件数据文件重做日志文件数据库DBWn数据库缓冲区高速缓存1-33Copyright©OracleCorporation,2001.Allrightsreserved.日志写入器(LGWR)LGWR在以下情况下写入:•提交时•三分之一填满时•有1MB的重做时•每隔三秒•DBWn写入前例程SGA控制文件数据文件重做日志文件数据库重做日志缓冲区DBWnLGWR1-34Copyright©OracleCorporation,2001.Allrightsreserved.系统监控程序(SMON)职责:•例程恢复–前滚重做日志中的更改–打开数据库供用户访问–回退未提交的事务处理•合并空闲空间•回收临时段控制文件数据文件重做日志文件数据库例程SGASMON1-35Copyright©OracleCorporation,2001.Allrightsreserved.过程监视器(PMON)例程失败后,通过以下方法进行清理:•回退事务处理•释放锁•释放其它资源•重新启动已失效的调度程序PGA区例程SGAPMON1-36Copyright©OracleCorporation,2001.Allrightsreserved.检查点(CKPT)职责包括:•在检查点发信号给DBWn•使用检查点信息更新数据文件的标头•使用检查点信息更新控制文件控制文件数据文件重做日志文件数据库例程SGADBWnLGWRCKPT1-37Copyright©OracleCorporation,2001.Allrightsreserved.归档程序(ARCn)•可选的后台进程•设置ARCHIVELOG模式时自动归档联机重做日志•保留数据库的全部更改记录ARCn归档的重做日志文件控制文件数据文件重做日志文件1-39Copyright©OracleCorporation,2001.Allrightsreserved.逻辑结构•指示数据库物理空间的使用情况•层次结构由表空间、段、区和块组成表空间数据文件段块区段1-42Copyright©OracleCorporation,2001.Allrightsreserved.处理SQL语句•通过以下进程连接到一个例程:–用户进程–服务器进程•所用的Oracle服务器组件取决于SQL语句的类型:–查询语句返回行–DML语句记录更改–提交操作确保事务处理的恢复•有些Oracle服务器组件不参与SQL语句的处理1-44Copyright©OracleCorporation,2001.Allrightsreserved.小结在这一课中,您应该能够掌握:•解释数据库文件:数据文件、控制文件和联机重做日志•解释SGA内存结构:数据库缓冲区高速缓存、共享池和重做日志缓冲区•解释主要的后台进程:DBWn、LGWR、CKPT、PMON、SMON•解释后台进程ARCn的用法•列出可选后台进程和