ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle进程

oracle进程

原创 Linux操作系统 作者:fantastic_0318 时间:2012-11-25 21:32:19 0 删除 编辑

DBWn (database writer,数据库写入进程)

  DBWn 通过lru(least resently used) 算法管理数据缓存区,将修改后的脏数据有规律的写入数据文件,维护数据缓存区的干净,使用户进程能获得足够的空闲缓冲区,同时通过延迟写数据优化了磁盘IO,DBWn 默认一个,最多20个。

离散写,耗时多。

(DBWR writes when :

1缓冲区达到25%的脏数据

2 LRU 列表上的空闲块少于40%

3 300秒时间超时

4 检查点

5 表空间离线

6 删除表或者截断表;

 

LGWR (log writer,日志写入进程)

  LGWR管理日志缓冲区,将日志数据有规律的写进redolog,以便维护数据一致性,并为数据丢失后进行恢复提供依据,同时通过延迟写优化磁盘IO。

 顺序写,速度较快。

1 提交时

2 日志缓冲区空间使用超过三分之一

3 有超过1M的日志需要写盘

4 每3秒触发

5 数据库写之前

 

SMON(System monitor)

SMON 负责对数据库进行恢复操作,若上次数据库为非正常关闭,则下次启动时SMON会自动读取重做日志文件,对数据库进行恢复,同时还负责在临时端或者临时表空间中回收不再使用的存储空间,并将各个表空间中的空闲碎片进行合并。

Smon’s work’

在系统启动时,完成系统实例恢复

清除临时空间

合并表空间中的空闲空间

OPS中失败节点的实例恢复(oracle parallel server)

清除OBJ$表

缩短回滚段

使回滚段脱机

 

PMON(process monitor)

在用户进程出现故障时进行恢复,清除失效的用户进程,负责清理内存区域和释放该进程所使用的资源,同时监控oracle所有后台进程。

PMON‘work

清理失败连接 (用户非正常断开连接后kill该进程)

监控所有后台进程,若fail则通知PSP(唤醒进程)

回滚未提交事务

释放锁

释放分配给该进程的Free SGA资源

RECO (recovery  process)

数据库连接失败时,RECO自动在一个时间间隔后再次连接,不断重试建立于远程服务器的通信。

 

Dnnn(Dispatcher 调度进程)

 在多线程服务器(multi thread server)体系结构中,负责接收用户进程的请求,将其放入请求队列,并为之分配一个服务进程

.

服务器进程(Server process)

用户进程通过服务器进程交互来连接oracle服务器

服务器进程的作用:

1 分析并执行用户提交的sql语句;

2 在SGA区缓存中搜索用户进程访问的数据,不存在则申请访问磁盘并将其复制到缓存中。

3 将数据返回给用户进程

分类:

 

专用服务器进程(Dedicated Server Process)

  一对一,一个服务进程对应一个用户进程

响应迅速及时,但是每个用户连接都需要分配一份PGA内存(UGA),资源耗费大。

有连接时才会有该进程

 

共享服务器进程(multi thread server process)

一个进程对应多个用户进程,轮流服务

占用内存少,但是大型请求长期占用共享服务器进程时,易造成其他连接挂起

UGA需要进行共享,所有UGA在SGA的large pool 中分配,若大池中无足够空间则从sga中的library cache 中 进行分配

启动数据库时,该进程就已经启动

 

User Process (用户进程)

由用户创建,通过服务器进程连接数据库,将用户的SQL语句传递给服务进程并接收运行结果反馈给用户,从客户端查到

 

CKPT (check point ,检查点进程)

  CheckPoint 是数据库的一个内部事件,被定时触发以通知各后台进程将脏缓存块写盘,确保内存中的数据块被规律地写入各类数据文件来保证数据的一致性

 

CKPT works when;

数据库关闭时触发完全检查点

Alter system checkpoint 手动触发完全检查点

Redolog switch 触发增量检查点

Fast_start_mttr_target(mean time to recovery)

若要进行实例,计划多久恢复完毕,就可以设置为多少秒触发增量检查点

 

完全检查点:

系统正常关闭和手工alter system checkpoint时才会触发,将缓存中所有当前系统scn之前脏数据写盘,checkpoint完成前不容许DML操作。之后安全检查点更新控制文件和数据文件中的SCN号为当前SCN号以反映这些文件的更新进度

 

增量检查点

   与完全检查点的一次性写入大量数据不同,增量检查点是不断持续性写进数据(写入速度较慢),允许继续产生脏块。当满足触发条件后,将把该时间点对应的重做记录地址作为目标重做记录地址(target RBA),通知DBWR来写脏块(不一定马上写),即DBWR将一直写到该target RBA为止,同时在DBWR写的过程中,每三秒(heartbeat)在控制文件中记录已写到的重做记录地址(low cache RBA,实例恢复的起点,缩短实例恢复时所需时间)

注意:触发完全检查点时,当提示系统已修改,此时 所有脏数据都写入磁盘了

但触发增量检查点时,写盘是一个持续且较慢的过程,它只是通知DBWR开始写盘,并不要求马上写完。如切换日志组时,虽触发了检查点,但仍需几分钟时间才能使日志文件由active状态变成inactive状态。

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28109623/viewspace-749929/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-11-25

  • 博文量
    5
  • 访问量
    25702