oracle 实例、进程


一、ORACLE 实例有两种类型:单进程实例 和 多进程实例;
1、单进程实例:单进程ORACLE(又称单用ORACLE)是一种数据库系统,一个进程执行全部ORACLE代码;
   在单进程环境下的ORACLE 实例,仅允许一个用户可存取。
2、 多进程ORACLE实例(又称多用户ORACLE)使用多个进程来执行ORACLE的不同部分 ,对于每一个连接的用户都有一个进程
      在多进程系统中,进程分为两类:用户进程 和ORACLE进程
二、ORACLE进程又分为两类:服务器进程 和 后台进程
    1、服务器进程:用于处理连接到该实例的用户进程的请求;
         当应用和ORACELE是在同一台机器上运行,而不再通过网络,一般将用户进程和它相应的服务器进程组合成单个的进程,可降低系统开销。
      然而,当应用和ORACLE运行在不同的机器上时,用户进程经过一个分离服务器进程与ORACLE通信。
      它可执行下列任务:
     1) 对应用所发出的SQL语句进行语法分析和执行;
     2) 从磁盘(数据文件)中读入必要的数据块到SGA的共享数据库缓冲区(该块不在缓冲区时);
    3) 将结果返回给应用程序处理;
    2、后台进程: 系统为了使性能最好和协调多个用户,在多进程系统中使用一些附加进程
       oracle后台进程伴随实例的启动而启动,他们主要是维护数据库的稳定,相当于一个企业中的管理者及内部服务人员;
            他们并不会直接给用户提供服务。
    1):database write--数据写入  DBWR
       作用:把SGA中被修改的数据同步到磁盘文件中。保证Buffer Cache中有足够的空闲数据块数量。
            注释:如果LGWR出现故障,DBWR不会听从CKPT命令罢工,因为Oracle在将数据缓存区数据写到磁盘前,
                      会先进行日志缓冲区写进日志文件的操作,并耐心的等待其先完成,才会去完成这个内存刷到磁盘的动作,这就是所谓的凡事有记录。
       触发条件: 1、检查点CKPT 
          2、一个服务进程在设定的时间内没有找到空闲块
            3、每三秒自动唤醒一次。
     设置:DB_WRITER_PROCESS用来定义DBWn进程数量。(commit命令只是把记录修改写入日志文件,不是把修改后的数据写入数据文件) 
    2):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。
      3):checkpoint:CKPT-检查点事件
              作用:维护数据库一致性状态。检测点时刻数据文件与SGA中的内容一致,这不是一个单独的进程,要和前两个进程一起工作。
        DBWR写入脏数据,同时触发LGWR进程。
          CKPT更新控制文件中的检查点记录。通过设置某参数调整来控制CKPT的触发时间。参数是FAST START MTTR TARGET。
              触发条件:日志切换(log switch)会触发检查点。 
     4):process monitor:PMON--维护用户进程  进程监控器
           作用:1、发现用户进程异常终止,并进行清理。释放占用资源。(清理异常终止用户使用的锁)
                    2、向监听程序动态的注册实例。
            触发条件:定时被唤醒,其他进程也会主动唤醒它。 
    5):system monitor:SMON--实例维护进程  系统监控器
           作用:1、负责实例恢复,前滚(Roll Forward)恢复到实例关闭的状态,使用最后一次检查点后的日志进程重做。
                         这时包括提交和未提交的事务。打开数据库,进行回滚(Roll Back):回滚未提交的事务。
                          (oracle承诺commit之后数据不会丢失,现在我们可以大致的了解是如何实现这个承诺,以及在数据的安全性和数据库性能之间的平衡选择。)
                        2、负责清理临时段,以释放空间
            触发条件:定期被唤醒或者被其他事务主动唤醒。 
    6):LCKn 仅适用于RAC数据库,最多可有10个进程(LCK0,LCK1,...,LCK9),用于实例间的封锁。 
     7):archive:ARCH--归档操作
              作用:发生日志切换时把写满的联机日志文件拷贝到归档目录中。
             (LGWR写日志写到需要覆盖重写的时候,触发ARCH进程去转移日志文件,复制出去形成归档日志文件,以免日志丢失)
               触发条件:日志切换时被LGWR唤醒。
              设置:LOG_ARCHIVE_MAX_PROCESSES可以设置oracle启动的时候ARCH的个数。
    8):Distributed Database Recovery  --RECO  用于分布式数据库的恢复
               某个应用跨越多个数据库,需要都提交成功,事务才会成功,否则全部回滚。
     9):manageability monitor:MMON--AWR主要的进程
      作用:1、收集AWR必须的统计数据,把统计数据写入磁盘。10g中保存在SYSAUX表空间中。
                2、生成server--generated报警
       每小时把shared pool中的统计信息写入磁盘,或者shared pool占用超过15%。 
    10):manageability monitor light:MMNL:轻量级的MMON 
    11):memory manager:MMAN:自动内容管理
            作用:每分钟都检查AWR性能信息,并根据这些信息来决定SGA组件最佳分布。
            设置:STATISTICS_LEVEL:统计级别
           SGA_TARGET:SGA总大小 
      12):job queue coordinator:CJQ0--数据库定时任务 
      13):recover writer:RVWR
           作用:为flashback database提供日志记录。把数据块的前镜像写入日志。 
      14):change tarcking writer:CTWR
            作用:跟踪数据块的变化,把数据块地址记录到 change_tracking file文件中,RMAN的增量备份将使用这个文件来确定那些数据块发生了变化,并进行备份 。
  
 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值