My Oracle Notes(2):User Process,Server Process和Background Process
Oracle 系统中的各种进程可以被分为两大类:
1.执行应用程序或 Oracle 工具代码的用户进程(user process)。
2.执行 Oracle 数据库服务器代码的 Oracle 进程(Oracle process)。其中包括服务进程(server process)和后台进程(background process)。
什么是User Process呢?
当用户运行一个应用程序同Oracle数据库进行交互(例如 Pro*C 程序)或 Oracle 工具(例如企业管理器或 SQL*Plus)时,Oracle 将创建一个用户进程(user process)来运行用户的应用程序。
什么是Server Process呢?
Server Process是用来处理连接到实例的用户进程(User Process)提交的请求。当应用程序与Oracle服务器运行在同一台机器上时,某些用户进程(User Process)可以与Server Process合并为同一个进程,即便减小系统开销。从逻辑层面来讲,用户进程必须要通过一个Server Process来同Oracle进行通信的.(只不过有些时候在同一台机器的时候,某些User Process和Server Process会合并罢了)
为用户应用程序创建的Server Process(或User Process和Server Process合并后的进程)可以完成以下工作:
(1)解析和运行应用程序提交的SQL语句.
(2)如果数据没有在SGA中找到,则将所需的数据块从磁盘上数据文件读入到SGA的数据缓冲区(Shared Database Buffers).
(3)以应用程序能够处理的形式返回SQL语句的执行结果.
什么是Backgroud Process呢?
为了实现为多用户提供服务且保证系统性能,在一个多进程的Oracle系统中,存在多个被称为后台进程(Background)的Oracle进程.
一个Oracle实例中可以包含多种后台进程,这些进程不一定全部一直处于运行状态。系统中运行的后台进程数量众多,用户可以通过V$BGPROCESS视图查询关于后台进程的信息。
Oracle实例中可能运行的后台进程有:
(1)数据写入进程Database Writer Process(DBWn)
(2)日志写入进程Log Writer Process(LGWR)
(3)检查点进程Checkpoint Process(CKPT)
(4)系统监控进程System Monitor Process(SMON)
(5)进程监控进程Process Monitor Process(PMON)
(6)回复进程Recoverer Process(RECO)
(7)作业队列进程Job Queue Process
(8)归档进程Archiver Process(ARCn)
(9)队列监控进程Queue Monitor Process(QMNn)
(10)其他后台进程包括:MMON,MMNL,MMAN,RBAL,ORBn,OSMB等.
其中DBWn,PMON,CKPT,LGWR,SMON是一个实例启动后,必须要启动的进程.
下图显示了主要的几个后台进程如何与 Oracle 数据库的各部分交互:
作者:
Chris Wang
出处:
http://chriswang.cnblogs.com/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。