ORACLE进程11141

上传人:沈*** 文档编号:244009783 上传时间:2024-10-02 格式:PPTX 页数:36 大小:795.60KB
返回 下载 相关 举报
ORACLE进程11141_第1页
第1页 / 共36页
ORACLE进程11141_第2页
第2页 / 共36页
ORACLE进程11141_第3页
第3页 / 共36页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,黄老师,2013.7,Oracle,进程,Oracle,服务器的内存结构,内存结构与,Oracle,服务器性能的关系,影响内存结构大小的数据库初始化参数,课程内容,进程是操作系统中的一种机制,它可执行一系列的操作步骤。在有些操作系统中使用作业,(JOB),或任务,(TASK),的术语。一个进程通常有它自己的专用存储区。,ORACLE,进程的体系结构设计使性能最优。,概述,进程分类,ORACLE,实例有两种类型:,单进程实例,和,多进程实例,。,单进程,ORACLE,实例(又称单用户,ORACLE,)是一种数据库系统,一个进程执行全部,ORACLE,代码。由于,ORACLE,部分和客户应用程序不能分别以进程执行,所以,ORACLE,的代码和用户的数据库应用是单个进程执行。,在单进程环境下的,ORACLE,实例,仅允许一个用户可存取。例如在,MS-DOS,上运行,ORACLE,。,多进程,ORACLE,实例(又称多用户,ORACLE,)使用多个进程来执行,ORACLE,的不同部分,对于每一个连接的用户都有一个进程。,在多进程系统中,进程分为两类:,用户进程,和,ORACLE,进程,。当一用户运行一应用程序,如,PRO*C,程序或一个,ORACLE,工具(如,SQL*PLUS,),为用户运行的应用建立一个用户进程(如,,Session,)。,ORACLE,进程又分为两类:,服务器进程,和,后台进程,。,服务器进程,服务器进程用于处理连接到该实例的用户进程的请求。当应用和ORACLE是在同一台机器上运行,而不再通过网络,一般将用户进程和它相应的服务器进程组合成单个的进程,可降低系统开销。然而,当应用和ORACLE运行在不同的机器上时,用户进程经过一个分离服务器进程与ORACLE通信。,它可执行下列任务:,1)对应用所发出的SQL语句进行语法分析和执行。,2)从磁盘(数据文件)中读入必要的数据块到SGA的共享数据库缓冲区(该块不在缓冲区时)。,3)将结果返回给应用程序处理。,后台进程,系统为了使性能最好和协调多个用户,在多进程系统中使用一些附加进程,称为后台进程。在许多操作系统中,后台进程是在实例启动时自动地建立。一个ORACLE实例可以有许多后台进程,但它们不是一直存在。,后台进程有:,DBWR(Database Write):,数据库,读写进程,LGWR(Log Write):,日志,读写进程,CKPT(Checkpoint):检查点,进程,SMON(System Monitor):系统监,视进程,PMON(Process Monitor):进程,监,视进程,ARCH(Archive):归档,进程,RECO:恢复,进程,LCKn:封锁,进程,监,视进程,每个后台进程与ORACLE数据库的不同部分交互。其中SMON、PMON、DBWn、CKPT、LGWR 是五个必须的ORACLE后台进程。,DBWR,数据库读写进程(,1,),DBWR不是将所有的脏缓存块写入数据文件,因为脏缓存块一旦被写入数据文件,它将被标记为空闲缓存块,其中保存的数据将丢失。如果随后立即有其他的用户进程来访问缓存块中以前所保存的数据,oracle需要重新到数据文件中读取,,这样很显然不是我们所期望的。,通过LRU算法能够解决这个问题。LRU(最近最少使用)算法。,最近未被访问过的缓存块被标记为“冷缓存块(cold cache block)”,DBWR进程只将那些同时被标记为“脏”和“冷”的缓存块写入数据文件,这样,那些经常被访问的脏缓存块将继续保留在缓存中,直到他们不再需要使用时才由DBWR进程写入数据文件。,脏缓存块:如果某个缓存块的数据被修改,它将被标记为脏,DBWR,数据库读写进程(,2,),将脏缓存块写入数据文件的情况:,1,、空闲缓存块不够时,,DBWR,将脏缓存块写入数据文件!,2,、当检查点发生时,启动,DBWR,3,、当数据库缓存的,LRU,列表的长度达到初始化,DB_BLOCK_WRITE_BATCH,指定值的一半时,,DBWR,将被启动;,4,、若发生超时(大约,3,秒内未被启动),,DBWR,进程将被启动,注意:,DBWR,进程启动的时间与用户提交事务的时间完全无关。也就是说,在执行,commit,语句提交事务之后,与该事务相关的脏缓存块并不是立即写入数据文件中的(但是执行,commit,语句后将立即启动,LGWR,将事务写入重做日志文件)。,DBWR,的启动时间太长,对将来恢复数据库不利,启动时间太短,将给系统,I/O,带来很多的负担。,DBWR,数据库读写进程(,3,),与,DBWR,相关的初始化参数,DB_WRITER_PROCESSES,这个参数用于设置创建实例时启动的,DBWR,后台进程数量,默认为,1,,即在创建实例时仅启动一个,DBWR,(,DBW0,),DB_BLOCK_CHECKPOINT_BATCH,这个参数用于设置在每个检查点发生时,,DBWR,进程写入的脏缓存块的最大数目。增大该参数,可以延长启动,DBWR,进程的时间间隔。,DB_BLOCK_LRU_LATCHES,设置数据库缓存区中,LRU,闩的数量。,闩(,Latch,):,oracle,用于顺序访问内部系统结构的锁;它被用来控制数据库缓存写入操作的争用。,多处理器系统中,这个参数值通常是处理器数目的一半。,LGWR,日志读写进程(,1,),日志写进程负责将重做缓存中的重做记录写入联机重做日志文件。缓存中的数据写入重做日志文件之后,相应的缓存内容将被清空。,下列情况下,,oracle,将缓存中的数据写入重做日志文件。,用户通过,COMMIT,语句提交当前事务,重做日志缓存被写满三分之一,有大于,1M,的重做日志缓冲区未被写入磁盘,DBWR,进程开始将脏缓存块写入数据文件,每隔,3,秒,即发生一次超时,此时会启动,LGWR,LGWR,日志读写进程(,2,),事务修改了数据库,将在数据库缓存中产生脏缓存块,同时在重做日志缓存中产生重做记录。,如果,DBWR,进程要将事务的结果写入数据文件,但发现与要写入的脏缓存块相关的重做信息仍然处于重做日志缓存中,它将通知,oracle,启动,LGWR,进程,先将这些重做信息写入重做日志文件,直到重做信息全部被写入后,,DBWR,进程才开始将脏缓存块写入数据文件。,这样做保证了数据库的完整性。将来可以做完全恢复或者回退该事务!,LGWR,日志读写进程(,3,),日志缓冲区是一个循环缓冲区。当,LGWR,将日志缓冲区的日志项写入日志文件后,服务器进程可将新的日志项写入到该日志缓冲区。,LGWR,通常写得很快,可确保日志缓冲区总有空间可写入新的日志项。注意:有时候当需要更多的日志缓冲区时,,LWGR,在一个事务提交前就将日志项写出,而这些日志项仅当在以后事务提交后才永久化。,LGWR,日志读写进程(,4,),重做日志的几种提交方式:,1,、快速提交:,用户提交一条,COMMIT,语句时,,LGWR,立刻将一条提交记录写入到重做日志文件中,然后再开始写入与该事务相关的重做信息。而此时的脏数据块并不会立刻被,DBWR,进程写入数据文件,oracle,只有当,LGWR,将事务的全部重做信息写入重做日志文件之后,才认为这个事务提交成功。,事务提交成功后,系统会生成一个,SCN,,,SCN,同时保存在它的提交记录和重做记录中。由于,SCN,记录在日志中,以致在并行服务器选项配置情况下,恢复操作可以同步。,2,、组提交,:,LGWR,将重做日志缓存中的数据一次性全部(包括已提交和未提交的事务)写入重做日志文件!这样最小化了,oracle,对,I/O,的操作,大大提高了,oracle,的性能!,提示:不必担心在组提交情况下是否有未提交事务的重做记录也被写入重做日志文件,因为这些事务的重做记录由于缺少一个提交记录,所以能够被,oracle,识别出来。,CKPT,检查点进程(,1,),概述,:,“检查点”是一个事件。它能保证数据库处于一个完整状态。,执行一个检查点后,,Oracle,将所有已提交事务对数据库的修改全部写入到硬盘中,此时保证了数据库处于一个完整状态。如果将来数据库崩溃,只需要将数据库恢复到一个检查点执行时刻即可。,CKPT,工作机制,CKPT,进程本身只完成两件工作:,1,)执行检查点和更新控制文件和数据文件,DB Status,;,2,)将脏缓存块写入数据文件的任务交给,DBWR,进程完成;,CKPT,检查点进程(,2,),几个典型检查点执行时间,1,)在一次重做日志切换时,执行数据库检查点。,DBWR,进程将缓存中所有的脏缓存块写入数据文件中;,2,)在表空间被设为脱机时,,DBWR,进程将缓存中所有与该表空间相关的脏缓存块写入数据文件中;,3,)每隔多长时间执行一次检查点;,CKPT,检查点进程(,3,),检查点的相关初始化参数,LOG_CHECKPOINT_TIMEOUT,检查点执行的最大间隔时间默认,1800,秒,也就是,30,分钟执行一次,CHPT,。如果该参数设置为,0,,将禁用基于时间的检查点。,LOG_CHECKPOINT_INTERVAL,当操作系统块达到多少时执行检查点。(下面有例子)无论该参数设置为什么值,在切换日志时都会出现检查点。,LOG_CHECKPOINT_TO_ALERT,是否将检查点信息记录到警报日志中。,CKPT,检查点进程(,4,),消除不必要检查点的例子,假设数据库的重做日志文件大小为,5MB,,将,LOG_CHECKPOINT_INTERVAL,参数设置为,1152,,即当重做日志写入,4.5MB,时发生检查点切换。(操作系统块大小通常为,4KB,,,11524KB=4.5MB,)但实际上当重做日志被写满(,5MB,)时必然会发生日志切换,这时会被执行另一个检查点。显然,前面那个检查点是多余的!,SMON,系统监视进程,在实例启动时负责恢复数据库,步骤如下:,1,、如果上次数据库是非正常关闭的,当下一次启动实例时,,SMON,进程会自动读取重做日志文件,对数据库进行恢复(执行将已提交的事务写入数据文件、回退未提交的事务等操作),2,、回收临时段或临时表空间中不再使用的空间,注意:要想,SMON,整理某表空间的存储碎片,那么他至少要将,PCTINCREASE,设置为,1,3,、将各个表空间中空闲空间碎片合并在一起,SMON,进程在启动时被唤起,平时也会被定期地唤醒来做事,PMON,进程监视进程,定期检查调度程序和服务进程。如:,获取失败用户的标识,,并释放其进程所占系统资源,并强制恢复该失败的进程;,主要做了下面的工作(恢复故障步骤):,1,)清除非正常中断的用户进程留下的孤儿会话;,2,)回退未提交的事务;,3,)释放会话所占用的锁;,4,),SGA,区、,PGA,区等资源;,5,)将该故障的进程的,ID,从活动进程表中移去;,PMON,有规律地被呼醒,检查是否需要,或者其它进程发现需要时可以被调用。,RECO,恢复进程,恢复进程,RECO,负责在分布式数据库环境(,Distributed Database,)中自动恢复那些失败的分布式事务(,Distributed Transactions,);,如果参数,DISTRIBUTED_TRANSACTION,设置的大于,0,,那么,RECO,进程自动启动;,当某个分布式事务由于网络连接故障或者其他原因而失败时,,RECO,进程将尝试与该事物相关的所有数据库进行联系,以完成对该失败事务的处理工作。,RECO,进程一般不需要,DBA,进行干预,他会自动完成自己的任务。,ARCn,归档进程,数据库运行在,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!