Oracle 体系结构-process
2020-07-14 06:27
519 查看
Oracle 的进程分类:
1.Client Processes:
用户使用一个应用程序,例如sqlplus,连接数据库,产生的操作系统进程,就是客户端进程;
2.Server Processes:
用来处理相应用户的请求
作用: 1、Parse and run SQL statements issued through the application 解析和运行应用程序提交的SQL语句,包括创建执行计划 2、Execute PL/SQL code 执行PL/SQL代码 3、Read data blocks from data files into the database buffer cache 从数据文件读取数据块到数据库缓冲区中 4、Return results 返回结果 如果是dedicated server,那么,每个session都会产生一个server process; 如果是shared server,那么oracle server固定产生一定量的server process,所有的会话共享;
3.Background Processes:后台进程
一.PMON(进程监视器)
1.进程监视器负责监视其他进程,如果其他的进程出现异常关闭的情况,进程监视器负责进程恢复。 2.进程监视器负责清理客户端进程所对应的server process的数据库缓存和释放资源。 3.进程监视器负责数据库实例的动态注册(11g,12c有变化)
二.SMON系统监视器
1.执行实例恢复 2.恢复中断的事务 3.清理不再使用的临时段,清理undo表空间
三.DBWR写进程
数据库写进程负责将数据库缓冲的内容(脏buffer)写回数据文件。
数据库写进程触发的条件:
1.当server process扫描了一定数量的buffer之后,仍然没有找到可用的buffer,触发DBWn写;(40%) 2.根据检查点信息,定期的触发DBWn进程; 3.当发生drop 或者 truncate的时候,触发写进程; 4.表空间置为read only; 5.表空间置为offline; 6.当做begin backup的时候,也会触发DBWn进程;
free buffer wait等待的原因:
当服务器进程扫描LRU链表寻找可用块时,如果找了百分之40的buffer(百分之40受_db_block_max_scan_pct控制)还没有找到可以覆盖的buffer,进程将停止继续扫描LRU,唤醒DBWR写脏块,同时进程转入睡眠,开始等待free buffer waits。
四.LGWR日志写进程
日志写进程负责管理日志缓冲区,将一段连续的日志缓冲区的内容写到日志文件。
LGWR的触发条件: 1.用户提交; 2.日志切换; 3.每隔三秒钟触发一次; 4.日志缓冲区达到1/3满,或者容量达到1M,触发LGWR; 5.DBWn进程触发的时候,首先触发LGWR;
五.CKPT-检查点进程
1.定期让脏块与数据文件进行同步,保证数据库的一致性 2.减少实例恢复的时间(增量检查点的作用)。 3.定期更新数据文件头部以及控制文件中的SCN号。
完全检查点与增量检查点:
完全检查点:将buffer cache中的所有脏块都写回数据文件中。
触发时机:
1.一致性关库。 2.手动触发完全检查点。 3.日志切换(有等待的日志切换)。 4.对数据库执行热备份。
增量检查点:
根据检查点队列,DBWR按照条件定期将脏块写回数据文件,避免一次性的大量写入。
检查点队列:
当buffer cache中的块由不脏变为脏块时,会被链到检查点队列,然后DBWR根据检查点队列来进行写脏块。
DBWR会每三秒醒来,检查LRUW链表上是否有脏块,如果有将其移动到辅助LRUW链表上将其写入,然后从检查点队列中移出,然后检查检查点队列的长度,以及redo的数量来决定是否按照检查点队列写脏块,如果检查点队列的长度(脏块的数量)以及redo的数量不是很多,那么DBWR就不会写脏块。
减少实例恢复时间:
因为DBWR进程是按照自己的写机制来逐渐将检查点队列上的脏块写入,不会一次性全部写入,CKPT进程每三秒醒来,查看DBWR写进度,查看检查点队列头部,将检查点队列头部所指向的LRBA写入控制文件,当实例崩溃重启时,内存中的脏块全部丢失,实例恢复的目标就是检查点队列上的全部脏块,SMON进程会自动读取控制文件中记录的LRBA,即从此处开始进行实例恢复。
相关文章推荐
- oracle 常用视图之-----v$process
- oracle体系结构
- Oracle 数据库体系结构
- 学习笔记_oracle——体系结构
- Know Oracle Process OS Scheduled Priority
- Default Passwords for Oracle BPEL Process Manager 10.1.2
- oracle系列(二)oracle体系结构和用户管理
- Oracle入门——dba教程——Oracle体系结构
- Server was unable to process request. ---> System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.
- Oracle的体系结构
- Oracle Discrete Manufacturing vs Process Manufacturing .
- ORACLE体系结构学习
- oracle体系结构理解
- oracle体系结构详解
- Oracle体系结构1
- Oracle bug之new child listener process forked
- Oracle 动态视图6 V$PROCESS
- oracle体系结构详解
- Oracle RAC体系结构介绍
- Oracle.补丁.体系结构