Oracle的进程主要有三种:后台进程、服务器进程、用户进程
关系如图所示:
1、USER PROCESS(用户进程)
用户进程指的是Oracle客户端进程,是连接到 Oracle DB的应用程序或工具。例如,常用的Oracle的SQL*Plus就是最常用的客户端进程。用户进程可以位于数据库服务器计算机上,也可以不位于该计算机上。
2、SERVER PROCESS(服务器进程)
服务器进程指的是与客户端连接的服务器端的后台进程。对于每个前台的用户进程,后台都有一个服务器进程与之对应。服务器主要是通过它和用户进程进行联系、沟通及进行数据的交换。
Oracle DB创建服务器进程以处理连接到实例的用户进程的请求。用户进程代表连接到Oracle DB的应用程序或工具。它可以与Oracle DB在同一台计算机上,也可以在远程客户机上利用网络来访问Oracle DB。用户进程首先与一个监听程序进程通信,在专用环境中该进程会创建一个服务器进程。所创建的代表每个用户的应用程序的服务器进程可以执行以下一项或多项操作:
- 对通过应用程序发出的SQL语句进行语法分析并运行语句。
- 从磁盘上的数据文件中将必要的数据块读取到SGA的共享数据库缓冲区中(如果这些数据块目前尚未在SGA中)。
- 返回结果,使应用程序可以处理信息后台进程。
可以通过命令“ps -ef|grep LOCAL”来查看所有的服务器进程,
查询结果分为LOCAL=NO和LOCAL=YES这两类,它们的含义如下所示:
LOCAL=NO:非本地连接,即网络连接,它是通过Listener连接到服务器的。客户端的应用程序通过用户进程向服务器的监听发送请求,服务器的监听接收后,再与数据库连接,执行相关操作,再把结果返回给客户端。这是通过监听的流程。
LOCAL=YES:本地连接。本地连接不走监听,所以,在服务监听没有启动的情况下,通过数据库服务器本地的sqlplus还是可以连上数据库的。
3、BACKGROUND PROCESSES(后台进程)
后台进程是Oracle的程序,在Oracle实例启动的时候启动,用来管理数据库的读写,恢复和监视等工作,例如PMON、SMON等进程。后台进程是Oracle实例的核心。后台进程可以通过命令“ps -ef|grep ora_”来查询。
服务器进程和后台进程可以统称为数据库进程,主要运行Oracle DB服务器代码。每个服务器进程和后台进程都具有自己的PGA。
4、守护程序和应用程序进程
守护程序和应用程序进程包括网络监听程序和Oracle守护程序,例如ohasd、ocssd、cssdagent、oraagent、orarootagent。
在UNIX操作系统上,Oracle的后台进程对应于操作系统进程,也就是说,一个Oracle后台进程将启动一个操作系统进程;在Windows操作系统上,Oracle的后台进程对应于操作系统线程,打开任务管理器,只能看到一个ORACLE.EXE的进程,但是通过另外的工具,就可以看到包含在ORACLE.EXE进程中的
后台进程有如下:
常见的后台进程以及作用:
1. smon(system monitor process): smon关注的主要是系统级别的操作而非单个进程,主要用于清除失效的用户进程,释放用户进程所用的资源
- 清理临时表空间
- 合并空闲空间
- 从不可用的文件中恢复事务的活动
- 实例恢复
- 清除sys.obj$表
- 维护回滚段,例如:缩减回滚段,使回滚段脱机等
- 维护smon_scn_time字典基表
2. pmon(process monitor process)
- 在其他进程失败后执行清除工作:回滚事务,释放锁,释放其他资源,若RECO进程异常,在PMON进程将会重启RECO进程,若LGWR失败,则PMON会中断实例,防止数据错乱。
- 注册数据库
- 检查会话的空闲连接时间
.......
.......
.......
参考:https://mp.weixin.qq.com/s/wd_nXQMs-1qqRyGgipoufQ
标签:51,用户,应用程序,后台,Oracle,服务器,进程 From: https://www.cnblogs.com/zmc60/p/17061488.html