




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ARC0,需要访问脱机存储设备和控制文件;以及CKPT,需要访问数据文件和控制文件。数据库写入进程(DBWn)数据库写入进程database writer process (DBWn),将buffer中的内容写入数据文件中。DBWn进程负责将在buffer cache中的那些修改的buffer,也就是脏数据写入磁盘中。对于大多数系统来说,1个进程(DBW0)就足够了,但也可以通过设置初始化参数DB_WRITER_PROCESSES,增加数据库写入进程,编号从DBW0-DBW9以及DBWa-DBWj,最多可以20个进程。但是前提是必须有足够多的CPU供这些进程使用,在一个单CPU的系统中,额外地配置该进程并不能提高性能,所以需要根据CPU及处理器的个数决定如何设置该参数。当一个buffer在数据库的buffer cache中被修改了,就会被标记为脏数据(dirty)。Buffer cache的冷端(cold buffer)是指根据LRU(least recently used)算法选择出的,最近最少使用的buffer。DBWn进程将冷端的、脏的buffer写入磁盘,这样用户进程就可以查找冷端、干净的buffer用于将新的数据块读入cache中。当一个buffer被用户进程修改(弄脏),此buffer就不再是free buffer,不能用于新数据的写入。如果free buffer数量过少,用户进程就会找不到足够的空间用于数据写入。而DBWn进程有效地管理了buffer cache,让用户进程总是能够获得free buffer。DBWn进程总是将冷端、脏buffer写入磁盘,DBWn在改善查找free buffer性能的同时,也另最近频繁使用的buffer保留在内存中。例如,储存那些频繁访问且较小的表或索引的数据块,可以keep在cache中,没必要反复地从磁盘中读取。由于LRU算法将访问频率高的数据块保留在buffer cache中,所以一个buffer被写入磁盘中,该buffer所包含的数据被马上访问的概率较小。满足以下条件时,DBWn进程会将脏数据缓冲区(dirty buffers)写入磁盘:当服务器进程扫描了一定数量的buffer之后,没有找到干净的可用的buffer,它通知DBWn写入。DBWn将buffer写入磁盘的操作是异步的,因为在DBWn工作的同时还有其他进程在执行。DBWn周期性地写buffer,从而使得checkpoint前移,checkpoint是当一个实例需要实例恢复时,应用重做日志的起始位置。这个位置是由buffer中最早的脏数据缓冲区(dirty buffers)决定的。无论那种情况,DBWn进程都是批量(一次多数据块)地写入以提高性能。一次批量写入的数据块的数量随操作系统的不同而改变,没有固定值。日志写入进程(LGWR)日志写入进程log writer process (LGWR)负责管理日志缓冲区,将日志缓冲区写入磁盘上的日志文件。LGWR将从上次之后才复制到buffer中的重做条目写入磁盘。日志缓冲区(redo log buffer)是一个环形的缓冲区(circular buffer)。当LGWR进程将日志缓冲区的重做条目写入日志文件,服务器进程同时也将新的条目复制到日志缓冲区覆盖那些已经写入磁盘的条目。LGWR通常需要保证足够快地写入,即使在频繁访问redo log时也要确保缓冲区有足够的空间用于写入新的条目。 LGWR将一部分连续的buffer写入磁盘。LGWR写入的内容有:一个用户进程提交事务的提交记录。Redo log buffer,以下3个条件,满足其中一个就写入。每三秒写入一次。当日志缓冲区使用了三分之一。当DBWn进程向磁盘写入脏缓冲区,但需要写入的日志还没有写入。注意:在DBWn进程向磁盘写入脏数据之前,所有与修改数据相关的重做记录都必须被写入磁盘,这就是先写日志原则(write-ahead protocol)。如果DBWn发现有一些重做记录没有写入磁盘,会通知LGWR将它们写入,并等待将LGWR进程将重做日志缓冲区内的相关数据写入磁盘后,才能将数据缓冲区写入磁盘。LGWR同步地向一个日志组的多个镜像成员写入。如果其中的一个成员文件损坏了,LGWR继续向其他成员写入,并将错误记录到LGWR进程的trace文件和alert log中。如果一个日志组的所有成员文件都损坏了,或者日志组由于未归档而暂时不可用,那么LGWR就无法继续工作了。当用户执行了一句commit时,LGWR将提交记录放进日志缓冲区,并且将它与事务的重做条目一起立即写入磁盘。而相关的被修改的数据块要等待更高效的时机时才写入磁盘。这被成为快速提交(fast commit)机制。一个事务的提交记录及相关的重做条目将通过一个原子性(atomic)的写操作记录到磁盘上,这个单一事件决定了事务是否被成功地提交。尽管此时被修改的数据缓冲区还没有写入磁盘,Oracle已经能够向用户返回事务提交成功的信息。注意:有时,如果重做日志缓冲区内空间不足,LGWR进程会在事务提交前就将重做日志条目写入磁盘。这样的重做日志条目只有在相关事务提交后才能永久地存储。当一个用户提交一个事务时,这个事务就被赋予了一个系统改变号system change number (SCN),Oracle将在事务的重做条目中记录此编号。SCN是被记录在redo log中的,所以恢复(recovery)操作可以在RAC、分布式数据上同步地进行。在数据修改操作较频繁时,LGWR进程能够采取批量提交(group commits)技术向重做日志文件写入数据。例如,当一个用户提交了一个事务后,LGWR进程会将此事务的重做条目(redo entry)写入磁盘,与此同时系统中的其他用户也可能在执行COMMIT语句。但是LGWR进程需要在之前的写入操作完成后,才能为后续的提交事务写入重做信息。当第一个事务的重做条目被写入磁盘后,在此期间等待提交的事物的重做条目可以被一起写入磁盘,这比分别写入每个事务的重做条目所需的I/O操作要少。Oracle通过这种办法减少了磁盘I/O并提升了LGWR进程的性能。如果系统中的提交频率一直很高,那么LGWR进程每次从重做日志缓冲区向磁盘的写入数据中都包含多个提交事务的信息。检查点进程(CKPT)当一个checkpoint发生时,Oracle必须更新所有数据文件的文件头,记录这个checkpoint的详细信息。这个动作是由CKPT进程完成的,但是CKPT进程并不将数据块写入磁盘,写入的动作总是由DBWn进程完成的。由企业管理器(Enterprise Manager)的System_Statistics监视器显示的DBWR checkpoints统计信息显示了系统中需要完成的检查点操作。系统监控进程(SMON)实例启动时如有需要,系统监控进程(system monitor process,SMON)将负责进行恢复(recovery)工作。此外,SMON还负责清除系统中不再使用的临时段(temporary segment),以及为数据字典管理的表空间(dictionary managed tablespace)合并相邻的可用数据扩展(extent)。在实例恢复过程中,如果由于文件读取错误或所需文件处于脱机状态而导致某些异常终止的事务未被恢复,SMON将在表空间或文件恢复联机状态后再次恢复这些事务。SMON进程定期检查自己是否被需要,系统内的其他进程发觉需要时也能够调用SMON进程。在RAC环境中,一个实例的SMON进程能够为出错的CPU或实例进行实例恢复(instance recovery)。进程监控进程(PMON)当一个用户进程(user process)失败后,进程监控进程(process monitor,PMON)将对其进行恢复。PMON进程负责清理数据缓冲区(database buffer cache)并释放用户进程使用的资源。例如,它可以重置活动事务表(active transaction table)的状态,释放锁,将某个进程ID从活动进程列表中移除。PMON进程会周期性地对调度器(dispatcher)和服务进程(server process)进行检查,重新启动停止运行的进程(不包括Oracle有意停止的进程)。PMON进程还负责将实例和调度器进程的信息注册到网络监听器(network listener)。同SMON一样,PMON进程定期检查自己是否被需要,系统内的其他进程发觉需要时也能够调用PMON进程。恢复进程(RECO)恢复进程recoverer process (RECO)用于分布式数据库结构,自动解决分布式事务的错误。一个节点的RECO进程会自动地连接到一个有疑问的分布式事务的相关其他数据库。当RECO重新连接到相关的数据库服务时,它会自动地解决有疑问的事务。并从相关数据库的活动事务表(pending transaction table)中移除和此事务有关的数据。如果RECO进程无法连接到远程服务,RECO会在一定时间间隔后尝试再次连接。但是每次尝试连接的时间间隔会以指数级的方式增长。只有实例允许分布式事务时才会启动RECO进程。实例中不会限制并发的分布式事务的数量。作业队列进程(Job Queue Processes)一般由两类进程组成:作业队列协调进程coordinator job queue process (CJQn),起到对作业队列的监控作用。执行作业的队列进程job queue processes (Jnnn),由CJQn完成调度产生。作业队列进程用于批处理,执行用户job,可以将它们看做一个调度服务,用于调度Oracle实例上如PL/SQL语句或存储过程的job。提供开始的时间和调度的时间间隔,作业队列进程可以根据这个配置,自动地周期性地执行。作业队列进程可以被动态地管理。可以允许作业队列客户端根据需要使用多个作业队列进程,当一个作业队列进程进入空闲状态(idle)后,其使用的资源将被释放。动态的作业队列进程可以按指定的时间间隔运行大量的作业。用户的作业是由CJQ进程交给作业队列进程执行的。具体步骤如下:1.名为CJQ0的协调进程(coordinator process)定期地从系统JOB$表中选择需要运行的job。被选出的作业将按照时间排序。2.CJQ0进程动态地产生job队列的slave进程来运行这些job,编号从J000-J999。3.作业队列进程执行一个由CJQ进程选出的作业。每个进程每次只能执行一个job。4.当一个工作队列进程执行完一个作业后,就能够接受下一个作业。如果此时系统中已经没有需要被调度的作业了,此进程将进入休眠状态(sleep state);此进程还会定期地苏醒(wake up)等待分配其他作业。如果在预设的时间内没有新的作业,此进程将终止。初始化参数JOB_QUEUE_PROCESSES表示实例中可以并行执行的最大作业队列进程数。但是,客户端不应该假设所有的作业队列进程都用于执行job。注意:如果初始化参数JOB_QUEUE_PROCESSES被设置为0,协调进程(CJQ )将不会被启动。归档进程(ARCn)归档进程(archiver process,ARCn)在发生日志切换(log switch)时将重做日志文件复制到指定的存储设备中。只有当数据库运行在ARCHIVELOG模式下,且自动归档功能被开启时,系统才会启动ARCn进程。一个Oracle实例中最多可以运行10个ARCn进程(ARC0到ARC9)。如果当前的ARCn进程还不能满足工作负载的需要,LGWR进程将启动新的ARCn进程。Alert log会记录LGWR启动ARCn进程。如果预计系统存在繁重的归档任务,例如将进行大批量数据装载,可以通过设置初始化参数LOG_ARCHIVE_MAX_PROCESSES来指定多个归档进程,通过ALTER SYSTEM语句可以动态地修改该参数,增加或减少归档进程的数量。然而,通常不需要去改变该参数,该参数默认值为1,因为当系统负载增大时,LGWR进程会自动地启动新的ARCn进程。队列监控进程(QMNn)队列监控进程是一个可选择的进程,它提供Oracle工作流高级队列,用于监控信息队列。可以配置最多10个监控进程。这些进程类似作业队列进程与其他Oracle后台进程的区别在于,这两类进程出错不会导致整个实例出错。调度进程(Dnnn)调度进程Dispatcher(Dnnn)是一个可选的Oracle后台进程,只存在于共享服务器环境中。内存管理进程(MMAN)内存管理进程Memory Manager(MMAN)是一个SGA后台进程。10g新特性,自动共享内存管理Automatic Shared Memory Management(ASMM)启用时,会有这个新的后台进程。MMAN服务像是SGA内存的经纪人(SGA Memory Broker)一样,协调内存各组成部分的大小。SGA Memory Broker很清楚内存各组成部分的大小,和有待调整的操作。恢复写入进程 (RVWR)Flashback Database是Oracle10g的新增功能,在启动Flashback Database之后,它定期将已发生变化的块写入闪回日志的日志文件中。这些日志不是由传统的Log Writer (LGWR)过程写入,而是由一种称作Recovery Writer (RVWR)的新过程写入。这是Oracle10g的新增进程。闪回数据库是指将数据库返回到一个早前的数据库状态,闪回数据库特性提供了一种快速的方法,将数据库迅速地返回到早前的某个时间点,它不同于传统的基于时间的恢复。数据库闪回只能从以下错误中恢复:由于逻辑错误导致的。由于用户错误导致的。不能从介质错误中通过闪回特性恢复数据库。闪回数据库所需的时间是与被改变的数据成正比的,而不是数据库的大小。注意,一旦resetlogs之后,将不能再flashback至resetlogs之前的时间点。内存管理进程 (MMON)内存管理进程memory monitor (MMON)是10g的新进程,它联合AWR新特性负责执行多种和可管理性相关(manageability-related)的后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民族传统与可持续发展-洞察及研究
- 高校毕业生实习管理流程详解
- 基于迁移学习的多模态对话系统开发-洞察及研究
- 教师职业发展规划指导书
- 智慧邮政应急调度体系优化-洞察及研究
- 房地产合同纠纷案例分析
- 心理辅导工作计划
- 动力农业装备关键部件的精密制造工艺优化
- 中医临床诊断流程及操作指南
- 员工工号编码管理规范
- 安全经验分享食物中毒
- 四年级上册数学教案 -平行与垂直 人教版
- 2022年工程机械行业发展现状分析
- 《函数的奇偶性》教学课件与导学案
- DB11-T 1796-2020文物建筑三维信息采集技术规程
- (完整版)工程流体力学课件(第四版)
- RCEP的机遇与挑战研究报告
- 非常规油气勘探开发
- 小学科学课堂存在的问题与解决方法
- 陕西污水处理定价成本监审办法
- 公司级安全技术交底内容
评论
0/150
提交评论