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

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

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基本知识和排障案例及经验、性能调优等。

相关灵感

beat365体育亚洲入口 超大云歌单

超大云歌单

📅 07-05 👁️ 2182
mobile365 微信限额多少一天?一文看懂微信充值、转账、消费等限额
beat365体育亚洲入口 【新歌推荐】魏佳艺 -《走到哪里都会想你》
mobile365 芜湖市共享单车哪几种(芜湖共享电动车有哪些?)
365bet吧 报告!我们去体验了中山的3家共享单车,结果……
365bet吧 dnf开服多久:见证《地下城与勇士》的新篇章
beat365体育亚洲入口 2018俄罗斯世界杯竞彩足球全攻略:64场比赛单场投注玩法详解
beat365体育亚洲入口 NBA全明星周末

NBA全明星周末

📅 06-29 👁️ 239
365bet吧 纵观手表包装设计:不同风格带来不一样的感受(手表怎么包装好看)