图文深入理解Oracle体系结构之进程篇

  1. List item

本文将深入介绍Oracle进程结构。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一.OracleDB系统中的进程主要分为三组:

1.用户进程:是连接到OracleDB的应用程序或工具软件,用户进程可以位于数据库服务器上,也可以在其它客户机上;
2.数据库进程:分为服务器进程(Serverprocess)(连接到Oracle DB实例),在用户建立会话时启动;后台进程(Backgroundprocess):在启动Oracle实例时启动
3.守护程序/应用程序进程:又分为网络监听程序(Listeners)和Gridinfrastructure守护程序。
在这里插入图片描述

上图是用户访问实例的过程:
1.用户进程首先与监听程序进程通信,连接到数据库实例。
2.在专用环境中OracleDB会创建一个服务器进程,由服务器进程来处理连接到实例的用户进程的请求。

二.Oracle DB系统核心进程:

1.单库环境下常见的后台进程包括:
•数据库写进程(DBWn)
•日志写进程(LGWR)
•检查点进程(CKPT)
•系统监视器进程(SMON)
•进程监视器进程(PMON)
•恢复器进程(RECO)
•作业队列协调程序(CJQ0)
•作业从属进程(Jnnn)
•归档进程(ARCn)
•队列监视器进程(QMNn)
2.Linux/UNIX系统下的GI进程(集群和高可用环境)包括:
•ohasd:Oracle高可用性服务守护程序,负责启动OracleClusterware的进程;
•ocssd:集群同步服务守护程序;
•diskmon:磁盘监视守护程序,负责监视HPOracleExadataStorageServer的输入和输出;•cssdagent:启动、停止和检查CSS守护程序ocssd的状态;
•oraagent:扩展集群件以支持Oracle特有的要求和复杂资源;
•orarootagent:帮助管理root用户所拥有的资源(如网络等)。
3.查看后台进程:selectname,descriptionfromv$bgprocess where xxx ;

三.核心进程的作用:

1.数据库写进程(DBWn):
在这里插入图片描述
DBWn负责将数据库缓冲区高速缓存中经过修改的(dirty)缓冲区写入磁盘。一般情况下,一个数据库写进程(DBW0)已经足够;但在多处理器系统中,可以配置附加进程(DBW1到DBW9以及DBWa到DBWz)来并行提高写入性能。
有两种写入方式:
•在执行其它处理时异步执行写入
•推进检查点:按照SCN顺序写入修改过的(Dirty)缓冲区,并将缓冲区的数据保持指针前移,以便实例恢复时避免不必要的I/O。这又称为“增量检查点”.
•DB_WRITER_PROCESSES初始化参数指定了DBWn进程的数量。
•DBWn进程的最大数量为36。
•如果用户在启动过程中未指定该进程数,OracleDB将根据CPU和处理器组的数量来决定如何设置DB_WRITER_PROCESSES:showparameterdb_write_processes.
2.日志写进程(LGWR):
在这里插入图片描述
•LGWR将重做日志缓冲区(redologbuffer)的数据写入磁盘上的重做日志文件(redologfile)中。
•在以下情况下执行写操作:a.用户进程提交(commit)事务处理时;b.重做日志缓冲区的三分之一已满时;c.DBWn进程将经过修改的缓冲区写入磁盘之前;d.每隔3秒
•当用户提交事务处理时,该事务处理将被分配一个系统更改号(SCN),OracleDB将该号码与事务处理的重做条目一起记录在重做日志中。SCN记录在重做日志中,以便可以跟踪实现同步恢复操作。
•当活动比较频繁时,LGWR可以使用组提交来写入重做日志文件。即:LGWR从重做日志缓冲区进行的每个写操作都可能包含多个提交记录。
3.检查点进程(CKPT)
在这里插入图片描述
•检查点定义了数据库的重做线程中的系统更改号(SCN),其信息记录在以下位置:a.控制文件;b.每个数据文件头
•遇到检查点时,OracleDB必须更新所有数据文件的头,以记录该检查点的详细信息。
•进程CKPT在以下情况下会开始工作:a.发生日志切换;b.关闭实例(SHUTDOWNABORT除外);c.手工执行检查点操作:ALTERSYSTEMCHECKPOINT;
•由初始化参数LOG_CHECKPOINT_INTERVAL和LOG_CHECKPOINT_TIMEOUT设置引发检查点工作。
4.系统监视器进程(SMON)
在这里插入图片描述
•在实例启动时执行恢复;
•清除不使用的临时段;
5.进程监视器进程(PMON)
在这里插入图片描述
•在用户进程失败时执行进程恢复:a.清除数据库缓冲区高速缓存;b.释放该用户进程使用的资源
•监视会话,查看是否发生空闲会话超时;
•在监听程序中动态注册数据库服务;
6.恢复器进程(RECO)
在这里插入图片描述
•用于分布式数据库配置;
•自动连接到有问题的分布式事务处理中涉及的其它数据库;
•自动解决有问题的事务处理;
•删除对应于有问题的事务处理的所有行;
7.归档进程(ARCn)
在这里插入图片描述
•仅当数据库处于ARCHIVELOG模式且已启用自动归档时,才会存在ARCn进程;
•默认设置是四个归档进程;
•在发生日志切换之后,将重做日志文件复制到指定的存储设备;
•可以收集事务处理重做数据,并将该数据传输到备用目标位置;

四.GI环境下进程启动顺序:

在这里插入图片描述
•OracleGridInfrastructure由OS初始化守护程序启动;
•LINUX OS下OracleGridInfrastructure安装程序会修改/etc/inittab文件,以确保每次启动计算机时在相应运行级别启动OracleGridInfrastructure。

码字不易,宝贵经验分享不易,请各位支持原创,转载注明出处,多多关注作者,后续不定期分享DB基本知识和排障案例及经验、性能调优等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值