首页 | 软件中心 | Designand Inspiration
读库教程网 > 网络教程 > 技术开发 > Oracle > 带你理解Oracle后盾流程

带你理解Oracle后盾流程

添加:2010年5月11日

  以下的文章首要简介的是Oracle后台进程的相关功用的简介,咱们群众都知晓DBWR进程,此进程的执行的首要目的是将缓冲区写入相关的数据文件,担任相关缓冲存储区维护的一个Oracle后台进程。

  当缓冲区中的一缓冲区被修正,它被标志为“弄脏”,DBWR的首要职务是将“弄脏”的缓冲区写入硬盘,使缓冲区坚持“洁净”。

  由于缓冲存储区的缓冲区填入数据库或被用户进程弄脏,未用的缓冲区的数目降低。当未用的缓冲区降低到很少,致使用户进程要从硬盘读入块到内存存储区时无法找到未用的缓冲区时,DBWR将维护缓冲存储区,运用户进程总可得到未用的缓冲区。

  Oracle采用LRU(LEAST RECENTLY USED)算法(近来最少运用算法)坚持内存中的数据块是近来运用的,使I/O最小。在下列情况预示DBWR 要将弄脏的缓冲区写入硬盘:

  当一个服务器进程将一缓冲区移入“弄脏”表,该弄脏表抵达临界长度时,该服务进程将通知DBWR执行写。该临界长度是为参数DB-BLOCK-WRITE-BATCH的值的一半。

  当一个服务器进程在LRU表中查找DB-BLOCK-MAX-SCAN-CNT缓冲区时,没有查到未用的缓冲区,它中止查找并通知DBWR执行写。出现超时(每次3秒),DBWR 将通知自身。当出现检验点时,LGWR将通知DBWR.在前两种情况下,DBWR将弄脏表中的块写入硬盘,每次可写的块数由原始化参数DB-BLOCK- WRITE-BATCH所指定。

  假设弄脏表中没有该参数指定块数的缓冲区,DBWR从LUR表中查找另外一个弄脏缓冲区。

  假设DBWR在三秒内未活动,则出现超时。在这种情况下DBWR对LRU表查找指定数目的缓冲区,将所找就任何弄脏缓冲区写入硬盘。每当出现超时,DBWR查找一个新的缓冲区组。每次由DBWR查找的缓冲区的数目是为寝化参数DB-BLOCK- WRITE-BATCH的值的二倍。假设数据库空运转,DBWR开头将一切缓冲区存储区写入硬盘。

  在出现检验点时,LGWR指定一修正缓冲区表必需写入到硬盘。DBWR将指定的缓冲区写入硬盘。

  在有些平台上,一个实例可有多个DBWR.在这样的实例中,一些块可写入一硬盘,另一些块可写入其它硬盘。参数DB-WRITERS控制DBWR进程个数。

  LGWR进程:该进程将日志缓冲区写入硬盘上的一个日志文件,它是担任维护日志缓冲区的一个Oracle后台进程。LGWR进程将自上次写入硬盘以来的一切日志项输出,LGWR输出:

  当用户进程提交一事务时写入一个提交记载。

  每三秒将日志缓冲区输出。

  当日志缓冲区的1/3已满时将日志缓冲区输出。

  当DBWR将修正缓冲区写入硬盘时则将日志缓冲区输出。

  LGWR进程同步地写入到活动的镜象在线日志文件组。假设组中一个文件被删除或无法用,LGWR 可继续地写入该组的其它文件。

  日志缓冲区是一个循环缓冲区。当LGWR将日志缓冲区的日志项写入日志文件后,服务器进程可将新的日志项写入到该日志缓冲区。LGWR 通常写得很快,可确保日志缓冲区总有空间可写入新的日志项。

  留意:有时辰当须要更多的日志缓冲区时,LWGR在一个事务提交前就将日志项写出,而这些日志项仅当在现在事务提交后才耐久化。

  Oracle运用高速提交机制,当用户发出COMMIT语句时,一个COMMIT记载立刻放入日志缓冲区,但相应的数据缓冲区改动是被延迟,直到在更有效时才将它们写入数据文件。当一事务提交时,被赋给一个系统修正号(SCN),它同事务日志项一

  起记载在日志中。由于SCN记载在日志中,致使在并行服务器选项配置情况下,恢复操作可以同步。

  CKPT进程:该进程在检验点出现时,对一切数据文件的标题执行修正,指示该检验点。在通常的情况下,该职务由LGWR执行。但是,假设检验点清楚地降低系统功用时,可使CKPT进程运转,将原来由LGWR进程执行的检验点的任务分别出来,由 CKPT进程完成。

  关于许多使用情况,CKPT进程是不用要的。只需当数据库有许非少数据文件,LGWR在检验点时清楚地降低功用才使CKPT运转。 CKPT进程不将块写入硬盘,该任务是由DBWR完成的。

  原始化参数CHECKPOINT-PROCESS控制CKPT进程的使能或使无法。缺省时为FALSE,即为使无法。

  SMON进程:该进程实例启动时执行实例恢复,还担任整理不再运用的暂时段。在具有并行服务器选项的环境下,SMON对有毛病CPU或实例执行实例恢复。SMON进程有次第地被呼醒,检验能无法须要,或许其它进程觉察须要时可以被调用。

  PMON进程:该进程在用户进程出现毛病时执行进程恢复,担任整理内存储区和释放该进程所运用的资源。例:它要重置活动事务表的形态,释放锁定,将该毛病的进程的ID从活动进程表中移去。PMON还周期地检验调度进程(DISPATCHER)和服务器进程的形态,假设已死,则重新启动(不包括有意删除的进程)。

  PMON有次第地被呼醒,检验能无法须要,或许其它进程觉察须要时可以被调用。

  RECO进程:该进程是在具有散布式选项时所运用的一个进程,自动地处理在散布式事务中的毛病。一个结点RECO后台进程自动地衔接到包括有悬而未决的散布式事务的其它数据库中,RECO自动地处理一切的悬而不决的事务。任何相应于已处理的悬而不决的事务的行将从每一个数据库的悬挂事务表中删去。

  当一数据库服务器的RECO后台进程试图树立同一远程服务器的通讯,假设远程服务器是无法用或许网络衔接无法树立时,RECO自动地在一个时间间隔之后再次衔接。

  RECO后台进程仅当在准许散布式事务的系统中出现,并且DISTRIBUTED ?C TRANSACTIONS参数是大于0.

  ARCH进程:该进程将已填满的在线日志文件拷贝到指定的存储配备。当日志是为ARCHIVELOG运用方式、并可自动地归档时ARCH进程才存在。

  LCKn进程:是在具有并行服务器选件环境下运用,可多至10个进程(LCK0,LCK1……,LCK9),用于实例间的锁定。

  Dnnn进程(调度进程):该进程准许用户进程共享有限的服务器进程(SERVER PROCESS)。没有调度进程时,每个用户进程须要一个自用服务进程(DEDICATEDSERVER PROCESS)。关于多线索服务器(MULTI-THREADED SERVER)可支持多个用户进程。假设在系统中具有大量用户,多线索服务器可支持大量用户,尤其在客户_服务器环境中。

  在一个数据库实例中可树立多个调度进程。对每种网络协议至少树立一个调度进程。数据库维护员依据操作系统中每个进程可衔接数目的限定决议启动的调度顺序的最优数,在实例运转时可添加或删除调度进程。多线索服务器须要SQL*NET版本2或更后的版本。在多线索服务器的配置下,一个网络接纳器进程等候客户使用衔接央求,并将每一个发送到一个调度进程。假设无法将客户使用衔接到一调度

  进程时,网络接纳器进程将启动一个自用服务器进程。该网络接纳器进程不是Oracle实例的组成局部,它是处理与Oracle相关的网络进程的组成局部。在实例启动时,该网络接纳器被翻开,为用户衔接到Oracle树立一通讯途径,然后每一个调度进程把衔接央求的调度进程的地址给予于它的接纳器。当一个用户进程作连

  接央求时,网络接纳器进程剖析央求并决议该用户能无法可运用一调度进程。假设是,该网络接纳器进程前往该调度进程的地址,之后用户进程直接衔接到该调度进程。有些用户进程无法调度进程通讯(假设运用SQL*NET以前的版本的用户),网络接纳器进程无法将如此用户衔接到一调度进程。在这种情况下,网络接纳器树立一个自用服务器进程,树立一种适宜的衔接。



读库教程网文章由网络收集后整理发布,文章发布人拥有该内容的所有权力及责任!

如果你喜欢这页,可以按Ctrl+D收藏起来。

相关内容
上一个内容:Oracle与Access的数据库互导
下一个内容:没有了
相关评论
公益广告
精彩推荐
友情链接: 百分百青年 | 烛光信息网 | 夏布新网 | 新育互联网
管理员:QQ:27038219, E-mail:27038219@qq.com今日更新
读库教程网所有文章从网络收集所发布,文章发布人拥有该内容的所有权力及责任,转载时请注明出处!
Template designed by www.dkuu.com. Optimized for 1024x768 to Firefox,Opera and MS-IE6/IE7.