Oracle数据库系统实例

上传人:高校教****PT 文档编号:370190623 上传时间:2023-11-28 格式:PPTX 页数:37 大小:1.39MB
返回 下载 相关 举报
Oracle数据库系统实例_第1页
第1页 / 共37页
Oracle数据库系统实例_第2页
第2页 / 共37页
Oracle数据库系统实例_第3页
第3页 / 共37页
Oracle数据库系统实例_第4页
第4页 / 共37页
Oracle数据库系统实例_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《Oracle数据库系统实例》由会员分享,可在线阅读,更多相关《Oracle数据库系统实例(37页珍藏版)》请在金锄头文库上搜索。

1、第二章:Oracle实例学习目的2.1数据库实例2.2数据库内存结构2.3数据库进程2.4进程与内存的交互情况2.1数据库实例实例(Instance)是一个动态运行的概念,它是一些进程及相应内存的集合。实例(Instance)必须与特定的数据库(Database)结合,才能成为为客户端提供服务的数据库服务器。数据库启动的第二个阶段是装载(Mount)阶段,就是将数据库与实例结合到一起的过程。装载完毕后,可进一步启动到打开(Open)阶段,供客户端联机使用。总之,实例(Instance)是壳,数据库(Database)是体,两者结合,构成了Oracle服务器(OracleServer)。Orac

2、le实例是由进程和内存构成的一个有机单元,本章从进程和内存两个方面介绍实例的基本概念和原理。oracle实例的组成2.2数据库内存结构内存结构是Oracle存放常用信息和所有运行在该机器上的Oracle程序的内存区域。Oracle有两种类型的内存结构:1.SystemGlobalArea(SGA)。在实例启动的时候分配,用于存放系统信息,所有进程共享。2.ProgramGlobalArea(PGA)。当服务进程(ServerProcess)启动的时候启动,用于存储特定的用户进程的信息。2.2.1SGA系统全局区SGA是一组为系统分配的共享的内存结构,可以包含一个数据库实例的数据或控制信息。如果

3、多个用户连接到同一个数据库实例,在实例的SGA中,数据可以被多个用户共享,当数据库实例启动时,SGA的内存被自动分配;当数据库实例关闭时,SGA内存被回收。SGA是占用内存最大的一个区域,同时也是影响数据库性能的重要因素。固定区域(FixedSize)可变区域(VariableSize)数据库高速缓冲区缓存(Databasebuffer)重做日志缓冲区缓存(Redobuffer)2.2.1SGA系统全局区SGA包含以下几大块:固定区域(FixedSize):引导区域,存储SGA中各个组件的信息,大小不能修改可变区域(VariableSize):包括共享池、大池、JAVA池数据库高速缓冲区缓存(

4、Databasebuffers):大小由参数db_cache_size指定。重做日志缓冲区缓存(Redobuffers):大小通常大于参数log_buffer的设置。SGA固定SGA库缓存数据字典缓存共享池数据库高速缓冲区块缓存重做日志缓冲区大池Java池(1)数据库高速缓冲区(DatabaseBuffers)数据库高速缓冲区由DB_CACHE_SIZE参数设定,Oracle使用最近最少使用(LRU,LeastRecentlyUsed)算法来管理数据库缓冲区可用空间。当存储区需要空闲空间时,最近最少使用块将被移出,新数据块将在存储区代替它的位置,通过这种方法,将最频繁使用的数据保存在存储区中;

5、如果SGA的大小不足以容纳所有最常使用的数据,那么,不同的对象将争用数据库缓存区中的空间;当多个应用程序共享同一个SGA时,很有可能发生这种情况。此时,每个应用的最近使用段都将与其他应用的最近使用段争夺SGA中的空间,这样,数据库缓冲区的数据请求将出现较低的命中率,导致系统性能下降。设置建议DatabaseBuffers一般可以尽可能的大。数据库缓冲区大小可以由服务器文件spfile.ora文件中的DB_CACHE_SIZE参数设定。通过以下命令可以在SQL*PLUS中动态调整数据库缓存ALTERSYSTEMSETDB_CACHE_SIZE=196MB(2)重做日志缓冲区SGA中也分配一片内存

6、区用于缓存重做日志,这片内存区称为重做日志缓存。事务日志先写入重做日志缓冲区,待一定的时机由LGWR将重做日志缓存中的信息写入联机日志文件中。重做日志缓冲区的大小(以字节为单位)由LOG_BUFFER确定。logbuffer在35MB以内就可以了(3)共享池内存主要是为了提高系统的效率,数据已经缓存了,日志也缓存了,那么还有没有什么东西需要缓存以进一步提高系统的效率呢?有:1)最近执行的SQL声明,即执行计划2)最近使用过的数据定义,即数据字典。(3)共享池共享池是最复杂的SGA结构,它有许多子结构,我们来看看常见的几个共享池组件:(1)库缓存(LibraryCache)(2)数据字典缓存(D

7、ataDictionaryCache)(3)PL/SQL区设置建议共享池的大小取决于SHARED_POOL_SIZE,它是以字节为单位的。用户必须将这个值设得足够大,以确保有足够的可用空间来装载和存储PL/SQL块和SQL语句。但是一般要小于数据库块缓存。例如在4GB的内存服务器上,如果数据库块缓存为1.5GB,那么建议共享池为500MB。可利用如下命令进行共享池大小的动态调整:ALTERSYSTEMSETSHARED_POOL_SIZE=64MB(4)Java池由其名字可知,Java池为Java命令提供语法分析。Java池的大小(以字节为单位)以JAVA_POOL_SIZE参数设置。JAVA

8、_POOL_SIZE参数缺省设置为10MB。(5)大池大池(LargePool)是一个可选内存区。如果使用线程服务器选项或频繁执行备份/恢复操作,只要创建一个大池,就可以更有效地管理这些操作。大池的大小(以字节为单位)通过LARGE_POOL_SIZE参数设置,它也可以动态的调整。2.2.2PGA(程序全局区)为每个用户进程连接到数据库上时所保留的内存区为每个用户进程连接到数据库上时所保留的内存区当进程建立时分配当进程建立时分配当进程终止时释放当进程终止时释放仅为一个进程所使用仅为一个进程所使用UserprocessPGAServerprocess服务器进程用户进程数据区域程序全局区(PGA)

9、用户全局区(UGA)SQL工作区会话内存私有SQL区堆栈空间哈希区位图合并区PGA程序全局区包含以下四个部分。1.堆栈空间2.哈希区3.位图合并区4.用户全局区2.3数据库进程进程是操作系统中一个独立的可以调度的活动,用于完成指定的任务。进程的类型:User process(用户进程)用户进程):在一个数据库用户请求与在一个数据库用户请求与Oracle服务器连接时启动服务器连接时启动Server process(服务器进程)服务器进程):与与Oracle instance(实实例)相连,当一用户创建一会话时启动例)相连,当一用户创建一会话时启动 Background processesBack

10、ground processes(后台进程)后台进程):当当 Oracle Oracle 实例启动实例启动时启动时启动2.3.1用户进程(UserProcess)当用户连接数据库执行一个应用程序时,会创建一个用户进程,来完成用户指定的任务。用户进程是运行在客户端的应用程序的进程。用户进程可以是SQLplus,OEM,各种开发程序开发的程序,用户进程是在用户方工作,它向服务器进程请求信息。2.3.2服务器进程(ServerProcess)服务器进程由oracle自身创建,用于处理来自客户连接(用户进程)上的用户请求,并把处理结构传给用户进程。服务进程(ServerProcess)的类型专用服务器

11、(DedicatedServer)多线程服务器(Multi-TheadServer)2.3.3后台进程后台进程是在Oracle实例启动时建立的,用于优化性能和协调多用户连接通信的工作。后台为了保证Oracle数据库在任意一个时刻可以处理多用户的并发请求,进行复杂的数据操作,Oralce数据库启用了一些相互独立的附加进程,称为后台进程。服务器进程在执行用户进程请求时,调用后台进程来实现对数据库的操作。五个最重要也是必须执行的后台进程,当数据库启动后,这五个进程自动于后台开始执行。CKPT:检查点进程LogWriter(LGWR):日志文件写入进程DatabaseWriter(DBWn):数据库写

12、入进程SystemMonitor(SMON):系统监控进程ProcessMonitor(PMON):进程监控进程(1)DatabaseWriter(DBWn)职责:将在数据块缓存区内变动过的数据块写回到数据文件中。不是每个数据块都马上写入数据文件,而是等待满足一定的条件后,才成批的将脏数据块写入到数据文件中。写数据之前会自动触发LGWR写操作。Oracle实例实例SGADBWn数据库块缓存数据库块缓存Oracle数据库数据库数据数据文件文件 控制控制文件文件联机联机日志日志文件文件DBWn写入的时机发生一个检查点(checkpoint)脏数据的长度超过一定限额。当有进程需要数据库高速缓冲区却找

13、不到空闲的缓冲区时。当所设定的时间间隔已到时。(大约每三秒)。当某个表被删除(drop)或被截断(truncate)时。当某个表空间被设置为只读状态(readonly)时。当使用类似于ALTERTABLESPACEusersBEGINBACKUP的命令对某个表空间进行联机备份时。当某个表空间被设置为脱机状态(offline)或重新设置为正常状态(normal)时等。使用如下命令列出系统目前所启动的数据库写进程的个数。(2)CKPT检查点进程负责负责:维护数据一致性维护数据一致性CKPT进程触发后执行:进程触发后执行:用检查点信息修改数据文件用检查点信息修改数据文件头,改写新的头,改写新的scn

14、。用检查点信息修改控制文件,用检查点信息修改控制文件,改写最新的改写最新的scn。在检查点时调用在检查点时调用DBWn,通,通知其将缓存中的脏数据写入知其将缓存中的脏数据写入磁盘。磁盘。Control filesData files Redo Log filesDatabaseInstanceSGADBWn LGWRCKPTCKPT进程触发时机1.用户进程任意的事务提交、任何的DDL与DCL都触发CKPT2.日志切换的时候 SQLalter system checkpoint 系统已更改(3)LogWriter(LGWR)职责:为了提高执行效率,将事务数据的日志信息写入在日志缓存区中,由LGW

15、R在适当的时机将缓存区中的事务记录写入到磁盘的日志文件中。Oracle实例实例SGA日志缓存日志缓存DBWnLGWROracle数据库数据库数据数据文件文件 控制控制文件文件联机联机日志日志文件文件LGWR写入的时机当某个事务被提交时。当重做日志缓冲区中所存的记录已超过缓冲区容量的1/3时。在DBWn要将数据缓冲区的脏数据写入数据文件之前。LGWR发生超时,一般为3秒。(4)SystemMonitor(SMON)职责:实例恢复实例恢复前滚前滚 打开数据库允打开数据库允许用户访问许用户访问回滚没有提交回滚没有提交的事务的事务合并空闲磁盘空合并空闲磁盘空间间释放临时段释放临时段Oracle实例实例

16、SGASMONOracle数据库数据库数据数据文件文件 控制控制文件文件联机联机日志日志文件文件(5)ProcessMonitor(PMON)负责进程失败后的清理工负责进程失败后的清理工作作:回滚事务回滚事务释放锁释放锁释放其它资源释放其它资源重新启动死掉的进程重新启动死掉的进程等等Oracle实例实例SGAPMONPGA area(6)归档日志进程(归档日志进程(ARCn)可选型后台进程可选型后台进程(background processes)当当数据库设置为归档(数据库设置为归档(ARCHIVELOG)模式时,将联机重模式时,将联机重做日志文件自动地做日志文件自动地归档归档保留对数据库所做的所有的变化的记录保留对数据库所做的所有的变化的记录ARCnArchived redo log filesControl filesData files Redo log files(7)其他可选后台进程RECO:recovery恢复进程,维护分布式数据库环境下的一致性LCKn:lock锁进程,用于多个实例之间的封锁Dnnn:dispatchers调度进程,用于多线程服务器模式下(mutithre

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号