oracle后台进程详解
2016-04-16 09:32
405 查看
oracle中的进程共分为三类:用户进程、服务进程、后台进程。其中后台进程伴随实例的启动而启动,他们主要是维护数据库的稳定,相当于一个企业中的管理者及内部服务人员。他们并不会直接给用户提供服务。
一:database write--数据写入
作用:把SGA中被修改的数据同步到磁盘文件中。保证Buffer Cache中有足够的空闲数据块数量。
触发条件: 1、检查点
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记录先于数据记录被写入磁盘
三:checkpoint:CKPT-检查点事件
作用:维护数据库一致性状态。检测点时刻数据文件与SGA中的内容一致,这不是一个单独的进程,要和前两个进程一起工作呦。DBWR写入脏数据,同时触发LGWR进程。
CKPT更新控制文件中的检查点记录。
触发条件:日志切换(log switch)会触发检查点。
四:process monitor:PMON--维护用户进程
作用:1、发现用户进程异常终止,并进行清理。释放占用资源。(清理异常终止用户使用的锁)
2、向监听程序动态的注册实例。
触发条件:定时被唤醒,其他进程也会主动唤醒它。
五:system monitor:SMON--实例维护进程
作用:1、负责实例恢复,前滚(Roll Forward)恢复到实例关闭的状态,使用最后一次检查点后的日志进程重做。这时包括提交和未提交的事务。打开数据库,进行回滚(Roll Back):回滚未提交的事务。(oracle承诺commit之后数据不会丢失,现在我们可以大致的了解是如何实现这个承诺,以及在数据的安全性和数据库性能之间的平衡选择。)
2、负责清理临时段,以释放空间
触发条件:定期被唤醒或者被其他事务主动唤醒。
六:archive:ARCn--归档操作
作用:发生日志切换时把写满的联机日志文件拷贝到归档目录中。
触发条件:日志切换时被LGWR唤醒。
设置:LOG_ARCHIVE_MAX_PROCESSES可以设置oracle启动的时候ARCn的个数。
七: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--数据库定时任务
十一:recover writer:RVWR
作用:为flashback database提供日志记录。把数据块的前镜像写入日志。
十二:change tarcking writer:CTWR
作用:跟踪数据块的变化,把数据块地址记录到 change_tracking file文件中。RMAN的增量备份将使用这个文件来确定那些数据块发生了变化,并进行备份。
以上是oracle中比较常见的后台进程,不是所有的进程。其中DBWn,ARCn可以设置数据库启动时的数量。这些进程在系统中可以不止一个。
一:database write--数据写入
作用:把SGA中被修改的数据同步到磁盘文件中。保证Buffer Cache中有足够的空闲数据块数量。
触发条件: 1、检查点
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记录先于数据记录被写入磁盘
三:checkpoint:CKPT-检查点事件
作用:维护数据库一致性状态。检测点时刻数据文件与SGA中的内容一致,这不是一个单独的进程,要和前两个进程一起工作呦。DBWR写入脏数据,同时触发LGWR进程。
CKPT更新控制文件中的检查点记录。
触发条件:日志切换(log switch)会触发检查点。
四:process monitor:PMON--维护用户进程
作用:1、发现用户进程异常终止,并进行清理。释放占用资源。(清理异常终止用户使用的锁)
2、向监听程序动态的注册实例。
触发条件:定时被唤醒,其他进程也会主动唤醒它。
五:system monitor:SMON--实例维护进程
作用:1、负责实例恢复,前滚(Roll Forward)恢复到实例关闭的状态,使用最后一次检查点后的日志进程重做。这时包括提交和未提交的事务。打开数据库,进行回滚(Roll Back):回滚未提交的事务。(oracle承诺commit之后数据不会丢失,现在我们可以大致的了解是如何实现这个承诺,以及在数据的安全性和数据库性能之间的平衡选择。)
2、负责清理临时段,以释放空间
触发条件:定期被唤醒或者被其他事务主动唤醒。
六:archive:ARCn--归档操作
作用:发生日志切换时把写满的联机日志文件拷贝到归档目录中。
触发条件:日志切换时被LGWR唤醒。
设置:LOG_ARCHIVE_MAX_PROCESSES可以设置oracle启动的时候ARCn的个数。
七: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--数据库定时任务
十一:recover writer:RVWR
作用:为flashback database提供日志记录。把数据块的前镜像写入日志。
十二:change tarcking writer:CTWR
作用:跟踪数据块的变化,把数据块地址记录到 change_tracking file文件中。RMAN的增量备份将使用这个文件来确定那些数据块发生了变化,并进行备份。
以上是oracle中比较常见的后台进程,不是所有的进程。其中DBWn,ARCn可以设置数据库启动时的数量。这些进程在系统中可以不止一个。
相关文章推荐
- Oracle
- oracle表分区与索引分区
- 【数据库】Oracle数据库----对象视图
- Window7系统64位下安装Oracle 10g出错解决办法
- 【数据库】oracle数据库----内嵌视图
- Oracle学习笔记(十六)——数据字典和动态性能视图
- Oracle学习笔记(十五)——数据库(表)的逻辑备份与恢复
- 怎么用oracle数据泵导数据
- 新增数据文件导致dataguard同步异常
- oracle 恢复到之前某个时间点
- Oracle学习笔记(十四)——数据库管理
- Oracle Database Reserved Words
- oracle HA 高可用性具体解释(之二,深入解析TAF,以及HA框架)
- Linux下安装Oracle的过程和涉及的知识点-系列6
- Oracle中由 case when 报错 ORA-12704:字符集不匹配的简易解决
- Oracle字符集的查看查询和Oracle字符集的设置修改(续)
- Oracle DMP文件异常解决
- Oracle字符集的查看查询和Oracle字符集的设置修改
- oracle触发器书写方法
- oracle 存储过程