体系结构之后台进程概念整理

           LGWr       -->日志写进程

       DBWn       -->数据库写进程
       PMON       -->程序监控进程
       SMON       -->系统监控进程
       CKPT       -->检查点进程


    

       Log Writer LGWr       -->日志写进程

触发条件:
1、 At commit;提交的时候
2、when one-htird full;当log buffer 三分之一满时
3、When there is 1MB of redo;当log buffer 填满1M时触发LGWR写日志进程
举例:
log buffer 30MB
9MB  用了1MB没有达到三分之一,但是满足第3个条件填满1MB时触发
4、Every three seconds; 每三秒触发一次
5、Before DBWN writes;当触发DBWN前,也就是数据写入数据文件之前触发写日志

  undo 和redo 的区别
  redo就是把原来的动作重复做一遍
  undo就是把原来的动作撤销

  


  Database Writer DBWn       -->数据库写进程
  触发条件:
  1、检查点发生时 alter system checkpoint;
  2、脏缓冲量达到一定量 dirty buffers reach threshold
  3、没有空闲的空间填充脏块了 there are no free buffers
  4、DBWR时间超时了 Timeout occurs
  5、RAC的PING时 RAC ping request is made
  6、表空间OFFLINE时(normal) Tablespace OFFLINE
  7、表空间设置成只读时 Tablespace READ ONLY
  8、DROP表和TRUNCATE 表时 DROP or TRUNCATE
  9、表空间BEGIN BACKUP tablespace begin backup
  Oracle中只保证redo log 文件完整,但是不保证数据文件完整
  

    


       System Monitor SMON       -->系统监控进程
  进程SMON相当于清洁工,是系统监控
  1、实例恢复:前滚,打开数据库,回滚
  instance recovery 恢复实例
  Rolls forward changes in onliine redo log files
  卷向前联机重做日志文件的变化
  Opens database for user access 打开数据库的用户访问
  Rolls back uncommitted transactions回滚未提交的事物
  
  2、整理区碎片:字典管理表空间才用,本地管理表空间由位图自动整理
  Coalesces free space
  3、 清理临时空间:比如:临时表,有基于事务的,有基于回话的,事务或者会话的,
  事务或会话结束时,SMON就要负责清理,其他操作创建的临时区段也要由SMON负责清理。
  Deallocates temporary segments 
  
  
  
  Process Monitor PMON       -->程序监控进程
  PMON是进程监控程序,用户监控和维护经常的安全和一致性,这个进程负责
  在出现异常中止的连接之后完成清理。
  1、回滚没有提交的事务。Rolling back the transaction
  2、释放进程相关的锁资源。Releasing locks
  DML语句要提交的,如果不提交每次关掉后下次就没得了
  3、监控Oracle后台进程,必要时(如果可能的话)重启这些后天进程,甚至关闭实例。
  Releasing other resources
  4、PMON还有一个任务,它可以实现服务注册监听 Restarting dead dispatchers

  


  Checkpoint CKPT       -->检查点进程
  
  1、在需要写数据的时候,发生一个检查点,告诉DBWN要写数据了。
  Signaling DBWN at checkpoints
  2、更新数据文件头信息。updating datafile headers with checkpoint information
  3、更新控制文件信息。updating control files with checkpoint infor mation
  
  
     
  
  Archiver (ARCn) 归档进程
  归档模式   归档日志文件
  1、当设置成归档模式的时候,自动归档。
  2、保存所有改变数据库的记录(即redo)
  
  SCN 
  oracle事务中的数据变化是如何写入数据文件的:
  1、事务开始; insert delete update
  2、在buffer cache中找需要的数据块,如果没有找到,则从数据文件中载入buffer cache中;
  3、事务修改buffer cache的数据块,该数据被标识为“脏数据”,并把相关的redo信息写入log buffer中
  4、事务提交,LGWR进程将log buffer 中的日志写入redo log file 中;
  5、 当发生checkpoint,CKPT进程更新控制文件和所有数据文件的文件头中的信息,DBWn进程则负责
  将buffer cache 中的脏数据写入数据文件中。
  
  
  
  
  
   注:以上资料仅是自己整理用来复习之用,没有任何依据。
  
  
  
  
  
  
  
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值