oracle后台进程是怎样的

38次阅读
没有评论

共计 2454 个字符,预计需要花费 7 分钟才能阅读完成。

这篇文章将为大家详细讲解有关 oracle 后台进程是怎样的,文章内容质量较高,因此丸趣 TV 小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

oracle 后台进程伴随实例的启动而启动,他们主要是维护数据库的稳定,相当于一个企业中的管理者及内部服务人员。他们并不会直接给用户提供服务。

一:database write– 数据写入   DBWR

    作用: 把 SGA 中被修改的数据同步到磁盘文件中。保证 Buffer Cache 中有足够的空闲数据块数量。

 PS:如果 LGWR 出现故障,DBWR 不会听从 CKPT 命令罢工,因为 Oracle 在将数据缓存区数据写到磁盘前,会先进行日志缓冲区写进日志文件的操作,并耐心的等待其先完成,才会去完成这个内存刷到磁盘的动作,这就是所谓的凡事有记录。

    触发条件: 1、检查点 CKPT 

  2、一个服务进程在设定的时间内没有找到空闲块

              3、每三秒自动唤醒一次。

    设置:DB_WRITER_PROCESS 用来定义 DBWn 进程数量。(commit 命令只是把记录修改写入日志文件,不是把修改后的数据写入数据文件)

二:log write:LGWR– 日志文件写入  (劳模,很重要很忙碌的一个进程)

    作用: 把 log buffer 中的日志内容写入联机的日志文件中,释放 log 用户 buffer 空间。

    触发条件:1、用户发出 commit 命令。(在 oracle 中称为快速提交机制(fast commit)): 把 redo log buffer 中的记录写入日志文件,写入一条提交的记录

            2、三秒定时唤醒。

            3、日志缓冲区 log buffer 超过 1 /3,或日志数量超过 1M。

            4、DBWR 进程触发:DBWn 视图将脏数据块写入磁盘先检测他的相关 redo 记录是否写入联机日志文件,如果没有就通知 LGWR 进程。在 oracle 中成为提前写机制(write ahead):redo 记录先于数据记录被写入磁盘

  5、联机日志文件切换也将触发 LGWR。

三:checkpoint:CKPT- 检查点事件

    作用: 维护数据库一致性状态。检测点时刻数据文件与 SGA 中的内容一致,这不是一个单独的进程,要和前两个进程一起工作呦。DBWR 写入脏数据,同时触发 LGWR 进程。

      CKPT 更新控制文件中的检查点记录。通过设置某参数调整来控制 CKPT 的触发时间。参数是 FAST_START_MTTR_TARGET。

    触发条件: 日志切换 (log switch) 会触发检查点。

四:process monitor:PMON– 维护用户进程   进程监控器

    作用:1、发现用户进程异常终止,并进行清理。释放占用资源。(清理异常终止用户使用的锁)

        2、向监听程序动态的注册实例。

    触发条件: 定时被唤醒,其他进程也会主动唤醒它。

五:system monitor:SMON– 实例维护进程   系统监控器

    作用:1、负责实例恢复,前滚 (Roll Forward) 恢复到实例关闭的状态,使用最后一次检查点后的日志进程重做。这时包括提交和未提交的事务。打开数据库,进行回滚(Roll Back): 回滚未提交的事务。(oracle 承诺 commit 之后数据不会丢失,现在我们可以大致的了解是如何实现这个承诺,以及在数据的安全性和数据库性能之间的平衡选择。)

        2、负责清理临时段,以释放空间

    触发条件: 定期被唤醒或者被其他事务主动唤醒。

六:LCKn 仅适用于 RAC 数据库,最多可有 10 个进程(LCK0,LCK1,…,LCK9),用于实例间的封锁。

七:archive:ARCH– 归档操作

    作用: 发生日志切换时把写满的联机日志文件拷贝到归档目录中。(LGWR 写日志写到需要覆盖重写的时候,触发 ARCH 进程去转移日志文件,复制出去形成归档日志文件,以免日志丢失)

    触发条件: 日志切换时被 LGWR 唤醒。

    设置:LOG_ARCHIVE_MAX_PROCESSES 可以设置 oracle 启动的时候 ARCH 的个数。

八:Distributed Database Recovery  –RECO  用于分布式数据库的恢复

  某个应用跨越多个数据库,需要都提交成功,事务才会成功,否则全部回滚。

以上是八个最核心、最重要、最有用进程,以下还列出了一些进程。

九:manageability monitor:MMON–AWR 主要的进程

    作用:1、收集 AWR 必须的统计数据,把统计数据写入磁盘。10g 中保存在 SYSAUX 表空间中。

        2、生成 server–generated 报警

    每小时把 shared pool 中的统计信息写入磁盘,或者 shared pool 占用超过 15%。 

十:manageability monitor light:MMNL: 轻量级的 MMON 

十一:memory manager:MMAN: 自动内容管理

    作用: 每分钟都检查 AWR 性能信息,并根据这些信息来决定 SGA 组件最佳分布。

    设置:STATISTICS_LEVEL: 统计级别

        SGA_TARGET:SGA 总大小  

十二:job queue coordinator:CJQ0– 数据库定时任务  
       Oracle 的作业队列管理依赖于后台进程的执行,它们进行数据刷新及其他定期的作业。调度进程 CJQ0,选择将要执行的作业并扩展作业队列进程(J000-J999)以执行这些作业

十三:recover writer:RVWR

    作用: 为 flashback database 提供日志记录。把数据块的前镜像写入日志。 

十四:change tarcking writer:CTWR

    作用: 跟踪数据块的变化,把数据块地址记录到 change_tracking file 文件中。RMAN 的增量备份将使用这个文件来确定那些数据块发生了变化,并进行备份

关于 oracle 后台进程是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-20发表,共计2454字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)