Oracle进程及相关示意图_第1页
Oracle进程及相关示意图_第2页
Oracle进程及相关示意图_第3页
Oracle进程及相关示意图_第4页
Oracle进程及相关示意图_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、oracle后台进程1, 处理用户请求,同时维护数据库系统使其始终具有良好的性能。2, 从用户进程处接受到任务,然后进行I/O操作、监视各个进程的状态、维护系统的 性能和可靠性9i中主要的后台进程 数据库写进程(DBWRn) 日志写进程(LGWR) 检查点进程(CKPT)系统监视进程(SMON) 进程监视进程(PMON)归档进程(ARCn) 恢复进程(RECO) 调度程序进程(Dnnn)将脏缓存块写入数据文件将重做日志缓存区的重做记录写入联机重做日志调用DBWR或LGWR将所有脏缓存块写入数据文件,已实现 数据库完整性在实例启动时负责恢复数据库,回收表空间空闲空间 恢复那些失败的进程,并释放其

2、进程所占系统资源。定期检查 调度程序和服务进程将已经写满的重做日志文件复制到归档目标中分布式数据库环境中自动恢复那些失败的分布式事务 接受用户进程的请求,将他们放入请求队列中,然后为请求队 列中的用户进程分配一个服务进程。1FMONSMON注意:oracle还有一些可选后台进程。比如,在使用作业队列功能(oracle job queue时将会启动作业队列进程 CJQn;在使用高级队列功能(oracle advaneed queue时将启动队 列监视进程QMNn。这些进程不会对实例的运行造成太大影响,即使失败也不会导致实例 朋溃RECOSGA#数据库高速缓存做日志高速缓存#D000用户进程CKT

3、FControl file*ARCelLGWRA 'EEWR用户进程Data File二Redo LogFileOffline Storage Device2#后台进程与数据库组件之间的关系数据库写进程(DBWRn )将脏缓存块写入数据文件DBWR不是将所有的脏缓存块写入数据文件,因为脏缓存块一旦被写入数据文件,它将被标记为空闲缓存块,其中保存的数据将丢失。如果随后立即有其他的用户进程来访问缓存块中以前所保存的数据,oracle需要重新到数据文件中读取。这样很显然不是我们所期望的通过LRU算法能够解决这个问题。LRU (最近最少使用)算法。最近未被访问过的缓存块被标记为“冷缓存块(co

4、ld cache block)”,DBWR进程只将那 些同时被标记为“脏”和“冷”的缓存块写入数据文件,这样,那些经常被访问的脏缓存块将继续保留在缓存中,直到他们不再需要使用时才由DBWR进程写入数据文件。脏缓存块:如果某个缓存块的数据被修改,它将被标记为脏CPU的数目,因为每个处DBWR的数量DBW1DBW9 。DBWR进程的数目不应该超过系统 理器同时只能运行一个 DBWR进程。将脏缓存块写入数据文件的情况1, 空闲缓存块不够时,dbwr将脏缓存块写入数据文件!2, 当检查点发生时,启动dbwr3,当数据库缓存的LRU列表的长度达到初始化DB_BLOCK_WRITE_BATCH指定值的一半

5、时,dbwr将被启动4,若发生超时(大约3秒内未被启动),DBWR进程将被启动注意:DBWR进程启动的时间与用户提交事务的时间完全无关。也就是说,在执行commit语句提交事务之后,与该事务相关的脏缓存块并不是立即写入数据文件中的(但是执行 commit语句后将立即启动LGWR将事务写入重做日志文件)。DBWR的启动时间太长,对将来恢复数据库不利,启动时间太短,将给系统I/O带来很多的负担。与DBWR相关的初始化参数DB_WRITER_PROCESSES这个参数用于设置创建实例时启动的 DBWR后台进程数量,默认为1,即在创建实例时仅启动一个 DBWR( DBW0)DB_BLOCK_CHECK

6、POINT_BATCH这个参数用于设置在每个检查点发生时,DBWR进程写入的脏缓存块的最大数目。增大该参数,可以延长启动DBWR进程的时间间隔。DB_BLOCK_LRU_LATCHES设置数据库缓存区中 LRU闩的数量。闩(Latch): oracle用于顺序访问内部系统结构的锁;它被用来控制数据库缓存写入操作的 争用。多处理器系统中,这个参数值通常是处理器数目的一半。LGWR(日志写进程)日志写进程负责将重做 缓存中的重做记录写入联机重做日志文件。缓存中的数据写入 重做日志文件之后,相应的缓存内容将被清空。1,下列情况下,oracle将缓存中的数据写入重做日志文件。用户通过COMMIT语句提

7、交当前事务重做日志缓存被写满三分之一 DBWR进程开始将脏缓存块写入数据文件每隔3秒,即发生一次超时,此时会启动 LGWR事务修改了数据库=将在数据库缓存中产生脏缓存块,同时在重做日志缓存中产生重做 记录。0如果DBWR进程要将事务的结果写入数据文件, 但发现与要写入的脏缓存块相关的重做信 息仍然处于重做日志缓存中,它将通知 oracle启动LGWR进程,先将这些重做信息写入重 做日志文件,直到重做信息全部被写入后,DBWR进程才开始将脏缓存块写入数据文件。这样做保证了数据库的完整性。将来可以做完全恢复或者回退该事务!如果创建了复合日志文件,LGWR进程在写入时会同时写入一个重做日志组的多个成

8、 员,这样即使这个组中的某个成员已经损坏,LGWR仍然可以不受影响地写入其他成员日LG帼将缓存区的數据 麟卿'并释重做日志高速缓存宀亠-1乜向重做日:中写入数据志文件LG帜清空缓存的速度 快于Oracle写入缓存 的速度重做日志離存的循环使用方式重做日志的几种提交方式1, 快速提交:用户提交一条COMMIT语句时,LGWR立刻将一条提交记录写入到重做日志文件中, 然后再开始写入与该事务 相关的重做信息。而此时的脏数据块 并不会立刻被DBWR进程写入数据文件 oracle只有当LGWR将事务的全部重做信息写入重做日志文件之后,才认为这个事务提交成功。事务提交成功后,系统会生成一个SCN,

9、SCN同时保存在它的 提交记录和重做记录中.(个人理解:提交记录可能就是 DBWR要写入数据文件的内容,即更改的结果!所以说重做日志包含了数据文件中的内 容!)2, 组提交:LGWR将重做日志缓存中的数据一次性全部(包括已提交和未提交的事务)写入重做日志文件!这样最小化了 oracle对I/O的操作,大大提高了 oracle的性能!提示:不必担心在组提交情况下是否有未提交事务的重做记录也被写入重做日志文件, 因为这些事务的重做记录由于缺少一个提交记录,所以能够被oracle识别出来。CKPT (检查点进程) 一, “检查点”是一个事件。它能保证数据库处于一个完整状态 执行一个检查点后,orac

10、le将所有已提交事务对数据库的修改全部写入到硬盘中,此时保证了数据库处于一个完整状态。如果将来数据库崩溃,只需要将数据库恢复到一个检查点执 行时刻即可。二, CKPT工作机制ckpt进程本身只完成两件工作:1,执行检查点和更新控制文件和数据文件2,将脏缓存块写入数据文件的任务交给DBWR进程完成三,几个典型检查点执行时间1, 在一次重做日志切换时,执行数据库检查点。DBWR进程将缓存中所有的脏缓存块 写入数据文件中2, 在表空间被设为脱机时,DBWR进程将缓存中所有与该表空间相关的脏缓存块写入 数据文件中3,每隔多长时间执行一次检查点四,检查点的相关初始化参数LOG_CHECKPOINT_TI

11、MEOUT 检查点执行的最大间隔时间 默认1800秒,也就是30分 钟执行一次CHPTo如果该参数设置为0,将禁用基于时间的检查点。LOG_CHECKPOINT_INTERV AL当操作系统块达到多少时执行检查点。(下面有例子)无论该参数设置为什么值,在切换日志时都会出现检查点。LOG_CHECKPOINT_TO_ALERT 是否将检查点信息记录到警报日志中。五,消除不必要检查点的例子假设数据库的重做日志文件大小为 5MB,将LOG_CHECKPOINT_INTERV AL参数设置 为1152,即当重做日志写入4.5MB时发生检查点切换。(操作系统块大小通常为4KB,1152 X 4KB=4.

12、5MB )但实际上当重做日志被写满(5MB )时必然会发生日志切换,这时会被执 行另一个检查点。显然,前面那个检查点是多余的!SMON (系统监视进程)在实例启动时负责恢复数据库。如果上次数据库是非正常关闭的,当下一次启动实例时,SMON进程会自动读取重做日志文件,对数据库进行恢复(执行将已提交的事务写入数据文件、回退未提交的事务等 操作)回收临时段或临时表空间中不再使用的空间将各个表空间中空闲空间碎片合并在一起SMON进程在启动时被唤起,平时也会被定期地唤醒来做事 注意:要想smon整理某表空间的存储碎片,那么他至少要将 PCTINCREASE设置为1PMON (进程监视进程)恢复那些失败的

13、进程,并释放其进程所占系统资源。定期检查调度程序和服务进程 主要做了下面的工作:1清除非正常中断的用户进程留下的孤儿会话,回退未提交的事务, 释放会话所占用的锁、SGA区、PGA区等资源。RECO(恢复进程)恢复进程RECO负责在分布式数据库环境(Distributed Database中自动恢复那些失败 的分布式事务(Distributed Transaction®如果参数DISTRIBUTED_TRANSACTION 设置的大于0,那么RECO进程自动启动当某个分布式事务由于网络连接故障或者其他原因而失败时, RECO进程将尝试与该事 物相关的所有数据库进行联系,以完成对该失败事务的处理工作。RECO进程一般不需要DBA进行干预,他会自动完成自己的任务。ARCn (归档进程数据库运行在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论