ITPub博客

首页 > 数据库 > Oracle > oracle五大进程和server process介绍 (转载于jx_yu)

oracle五大进程和server process介绍 (转载于jx_yu)

Oracle 作者:li__hl8888 时间:2015-01-23 17:45:20 0 删除 编辑
oracle必须的五大进程:
SMON 系统监视进程
             空间管理:  定期合并空间(老版本才有) 定期回收临时段
             实例恢复:  (如掉电导致实例意外终止)
                      恢复的方法: 先前滚==>后回滚==>释放资源
             前滚       将数据库中的SQL(包括提交的和未提交的)全部重新做一遍
             回滚       将没提交的SQL句从数据库中将老的镜像取出覆盖
             释放资源      将前滚和回滚中使用到的资源释放

DBWn n指的是0-9 a-j 多个写进程的区分 将脏块写盘
             触发写的条件
                  1.产生检查点
                  2.脏数据缓冲区达到阀值 默认10%
                  3.扫描整个db buffer没有空闲  db buffer中包含脏的和未脏的 优先写脏数据列表 再写未改的
                  4.timeout超时 如果DBWR没事做 会被每三秒唤醒一次去巡检 写不写不一定
                  5.集群环境的ping请求触发多实例的数据写请求
                  6.表级别的truncate或drop也会触发数据写
                  7.修改表空间的read only
                  8.做表空间的offline(离线)
                  9.热备份 begin backup命令
 
PMON 进程监视器
            1.清理与实例非法断开的server_procese残留的资源 非正常终止的用户进程产生的垃圾资源
            2.负责重启以外死掉的调度器(网络监听中使用的)
            3.将实例的信息注册到监听程序
 
CKPT 把新的检查点写入指定位置
           1.调度数据写dbwN
           2.将新检查点写数据文件头
           3.将新检查点写控制文件中的数据文件头的记录
 
 
LGWR 只有一个进程 不会向数据写进程那么多 因为写要求有顺序 将redo log buffer里的条目 写到redo文件
            触发写的条件
           1.commit
           2.redo log buffer 1/3满
           3.redo log buffer 日志缓冲区达到1M
           4.写日志优先(任何一次数据写之前)
           当更新数据量很多时 日志量很少(就是一update) 数据量却很多 所以采用写日志优先
           5.3秒写一次
 
 
 
server process简述【以客户端执行一条sql为例说明】:
          1、sql语句通过网络到达实例、server process 接收sql语句 
          2、server process 去shard pool找sql和执行计划 若没有  解析sql
          3、server process  根据执行计划去buffer cache(缓存dbf的数据)找相关的数据,如没有才到dbf中取出数据放到buffer chache 再返给用户
          4、若需要修改数据,server process 读出数据到buffer cache中  内存中修改数据 修改完返给用户
         
      server process始终为用户服务,故:server process处理的快慢直接影响用户体验的快慢

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

上一篇: 青涩的初中
下一篇: 零散技术oracle
请登录后发表评论 登录
全部评论

注册时间:2011-06-01

  • 博文量
    208
  • 访问量
    92683