前言:
众所周知ORACLE的进程分为三种:用户进程、服务器进程、后台进程
可以通过ORACLE提供的进程结构图,可以清楚地看到三个进程中系统运行中的主要作用,这边咱们再做一个简单的介绍。
进程说明:
1、用户进程:当用户运行应用程序时,操作系统会为用户运行的应用建立一个进程。那么这个进程就是我们所说的用户进程。
进程的查看:用户进程在每个客户端上面,比如我通过个人电脑的sqlplus程序连接到oracle服务器,那么这个时候个人电脑上面的sqlplus进程就是oracle的用户进程。这个用户进程还可以是plsql或者其他一些连接工具;
2、服务器进程:服务器进程用于处理连接到该实例的用户进程的请求;
服务器进程执行的任务:对应用程序所发出的SQL语句进行语法分析和执行,从磁盘中读入必要的数据到SGA的共享数据库缓冲去将结果返回给应用程序处理;
进程的查看:服务器进程存放于服务器上面,进程的命名方式为oracleSID的格式,通过ps -ef|grep oracle的方式查看;
如果观察仔细的话,可以看到服务器进程还有以下区别:
LOCAL=NO :非本地连接,即网络连接。 它是通过Listener 连接到服务器的。 客户端的应用通过客户端的监听向服务器的监听发送请求,服务器的监听接收后,在与数据库连接,执行相关操作,在把结果返回给客户端。 这是通过监听的流程。 所以在客户端需要配置监听,即配置tnsnames.ora。
LOCAL=YES:本地连接。 本地连接不走监听,所以在服务监听没有启动的情况下,通过本地的sqlplus 还是可以连上数据库的。
3、后台进程:后台进程是在实例启动时启动,启动Oracle数据库的实例时会自动启动后台进程;
后台进程是为所有数据库用户异步完成各种任务,无论用户是否连接数据库,后台进程都会作为数据库的一部分运行,部分的后台进程如果死掉,会导致整个数据库跟着死掉;
数据库正常运行所需的后台进程:PMON、SMON、DBWn、LGWR、CKPT、一般还包括 ARCH
后台进程的查看 ps -ef|grep ora
后台进程名称的组成:ora_进程名称_SID
具体的后台进程的作用,后续将继续说明,敬请期待。。。。。。