在Oracle中,有哪些重要后台进程?

题目部分在Oracle中,有哪些重要后台进程?

答案部分

对于后台进程,首先需要掌握3个概念:后台进程、服务器进程和用户进程,它们之间的关系如下图:

图3-10 Oracle的进程结构

1、USER PROCESS(用户进程)

用户进程指的是Oracle客户端进程,是连接到 Oracle DB的应用程序或工具。例如,常用的Oracle的SQL*Plus就是最常用的客户端进程。用户进程可以位于数据库服务器计算机上,也可以不位于该计算机上。

2、SERVER PROCESS(服务器进程)

服务器进程指的是与客户端连接的服务器端的后台进程。对于每个前台的用户进程,后台都有一个服务器进程与之对应。服务器主要是通过它和用户进程进行联系、沟通及进行数据的交换。

Oracle DB创建服务器进程以处理连接到实例的用户进程的请求。用户进程代表连接到Oracle DB的应用程序或工具。它可以与Oracle DB在同一台计算机上,也可以在远程客户机上利用网络来访问Oracle DB。用户进程首先与一个监听程序进程通信,在专用环境中该进程会创建一个服务器进程。所创建的代表每个用户的应用程序的服务器进程可以执行以下一项或多项操作:

l 对通过应用程序发出的SQL语句进行语法分析并运行语句。

l 从磁盘上的数据文件中将必要的数据块读取到SGA的共享数据库缓冲区中(如果这些数据块目前尚未在SGA中)。

l 返回结果,使应用程序可以处理信息后台进程。

可以通过命令"ps -ef|grep LOCAL"来查看所有的服务器进程,如下所示:

1[oracle@edsir4p1-PROD1 ~]$ ps -ef|grep LOCAL

2oracle    4306     1  0 08:10 ?        00:00:00 oraclePROD1 (LOCAL=NO)

3oracle    4466  4465  0 08:12 ?        00:00:00 oraclePROD1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

4oracle    4685  4680  0 08:14 ?        00:00:00 oraclePROD1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

5oracle    4698     1  2 08:14 ?        00:00:00 oraclePROD1 (LOCAL=NO)

6oracle    7314     1  0 03:00 ?        00:00:37 oraclePROD1 (LOCAL=NO)

7oracle    7973     1  0 03:00 ?        00:00:01 oraclePROD1 (LOCAL=NO)

8oracle   10762     1  0 03:34 ?        00:00:10 oraclePROD1 (LOCAL=NO)

查询结果分为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进程中的线程。

Oracle的后台进程较多,单实例数据库的基本后台进程如下图所示:

下面的表格中列出了一些常见的数据库后台进程及其作用。

表3-11 Oracle中的常见进程

真题1、Note the following functionalities of various background processes:

1.Record the checkpoint information in data file headers.

2.Perform recovery at instance startup.

3.Cleanup unused temporary segments.

4.Free the resources used by a user process when it fails.

5.Dynamically register database services with listeners.

6.Monitor sessions for idle session timeout.

Which option has the correct functionalities listed for a background process?()

A、Archiver Process(ARCn):1,2,5B、System Monitor Process(SMON):1,4,5

C、Process Monitor Process(PMON):4,5,6D、Database Writer Process(DBWn):1,3,4

答案:C。

本题描述中的1,将检查点记录在文件头属于CKPT的作用,2中在数据库启动的时候执行恢复操作属于SMON的作用,3中清理未使用的临时段也属于SMON的作用,4中释放用户的资源属于PMON的作用,5中动态注册数据库属于PMON的作用,6中监控会话的空闲时间属于PMON的作用。

本题中,对于选项A,1和2不属于ARCn的作用。所以,选项A错误。

对于选项B,4和5不属于SMON的作用。所以,选项B错误。

对于选项C,4、5和6都是PMON的作用。所以,选项C正确。

对于选项D,1、3和4都不是DBWn的作用。所以,选项D错误。

所以,本题的答案为C。

真题2、PMON清理失败进程的频率是多长?

答案:PMON(Process Monitor Process)主要的作用有3点:①在进程失败后执行清除工作:回滚事务、释放锁、释放其它资源。②注册数据库。③检测会话的空闲连接时间。PMON负责处理异常结束的进程相关资源的释放。PMON周期性地被唤醒,这个间隔主要由隐含参数"_PKT_PMON_INTERVAL"进行控制,默认为50厘秒(cs即centisecond,表示百分之一秒,1秒=100厘秒)。例如,可以通过命令"alter system set "_PKT_PMON_INTERVAL"=5;"将该参数设置为5厘秒(cs)。另外,也可以通过查找出PMON进程的PID号,然后执行命令"oradebug wakeup orapid"来手动唤醒PMON进程。需要注意的是,这里的orapid是Oracle进程的PID,不是OS的PID。PMON进程的orapid一般为2,可以使用命令"SELECT PID, SPID FROM V$PROCESS P WHERE P.PROGRAM LIKE '%PMON%';"来查询。可以用事件"alter system set events '10246 trace name context forever,level 4';"来查看PMON的相关操作。

1  SYS@LHRDB> SELECT a.INDX,

2  2         a.KSPPINM NAME,

3  3         a.KSPPDESC,

4  4         b.KSPPSTVL

5  5  FROM   x$ksppi  a,

6  6         x$ksppcv b

7  7  WHERE  a.INDX = b.INDX

8  8  and lower(a.KSPPINM) like  lower('%?meter%');

9Enter value for parameter: _PKT_PMON_INTERVAL

10old   8: and lower(a.KSPPINM) like  lower('%?meter%')

11new   8: and lower(a.KSPPINM) like  lower('%_PKT_PMON_INTERVAL%')

12 INDX NAME                   KSPPDESC                             KSPPSTVL

13----- ---------------------- ------------------------------------ --------------------

14   61 _pkt_pmon_interval     PMON process clean-up interval (cs)  50

15SYS@LHRDB > alter system set "_PKT_PMON_INTERVAL"=50;

16System altered.

17SYS@orclasm > ! oerr ora 10246

1810246, 00000, "print trace of PMON actions to trace file"

19// *Cause:

20// *Action:

21SYS@orclasm > SELECT PID, SPID FROM V$PROCESS P WHERE P.PROGRAM LIKE '%PMON%';

22       PID SPID

23---------- ------------------------

24         2 4014

25SYS@orclasm > oradebug wakeup 2

26Statement processed.

& 说明:

Oracle中还有一些其它的进程,具体分析可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2121305

「点点赞赏,手留余香」

赞赏

  • 断喉弩happy
  • 手游小达
  • 桃花红妆vitty
  • 3人赞过
3
0
0
评论 0 请文明上网,理性发言

相关文章

  • 前期准备: 一台windows10操作系统的电脑 Oracle11g安装包,sqldevleoper安装包 (百度网盘提取链接:https://pan.baidu.com/s/15FxijLNpTSbYn1CQdKnWqQ 提取码:eqjl,不想使用百度网盘的可以自行百度至官网下载) 安装Oracle解压缩文件后点击可
    全球影视Ozi5 5 0 0 条评论
  • 微酒论坛再度来袭!10月22日-10月25日,湖南?长沙秋季糖酒会我们不见不散! 秋糖论坛,要听就听权威的、专业的顶级论坛。 10月23日下午,长沙明城国际大酒店,酒业外脑、行业第一咨询公司--盛初咨询的最新研究成果"214模式"首次公开发布!还不够?再加上世界百强企业重磅大咖压阵如何? 最新内部消息,世界百强企业甲骨
    景景景景行- 6 0 0 条评论
  • 2014年6月10日,OracleCEO拉里·埃里森在总部宣布了一项突破性的创新技术:OracleDatabaseIn-Memory。和Multitenant一样,DatabaseIn-Memory是Oracle数据库12c版本中的一个全新选件,是继Exadata之后重要的数据库创新之一。今天,Oracle所倡导的融
    浪痰湍妆 9 0 0 条评论
  • 编辑|舞春秋 来源|至顶网 Oracle近日在美国拉斯维加斯举行的OracleCloudWorld大会上推出了一款用于支持本地云环境的基础设施平台,包括多个新的公有云服务、以及多项对数据库产品组合的重大更新。Oracle近日在美国拉斯维加斯举行的OracleCloudWorld大会上推出了一款用于支持本地云环境的基础
    勿畏1 7 1 0 条评论
  • 源/云头条一位Oracle程序员在HackerNews上吐槽自己的工作,引起了热议,内容如下: Oracle数据库12.2。它有近2500万行C代码。 这实在太恐怖了,简直难以想象!你做不到在不破坏成千上万个现有测试的情况下更改产品中的单单一行代码。好几代程序员在很紧的项目期限内编写了这些代码,代码中充斥着各种各样的
    风荡人间 4 0 0 条评论
  • 文|局长 出品|OSC开源社区(ID:oschina2013) DB-Engines数据库流行度排行榜发布了2月份的更新: 可以看到,TOP20的数据库中只有Snowflake的排名上升,从上个月的第17名上升至现在的第15名。分数更是比去年同期增加了64.96分。 至于三巨头--Oracle、MySQL和Micro
    竹子澀苜 5 1 0 条评论
  • DB-Engines发布了2018年1月份的数据库排名。排前20名的数据库中,Oracle稳居第一,Cassandra超过Redis,夺回第8的位置。第14名的Solr被第13名的SAPAdaptiveServer赶超,SQLite有小幅回升趋势。整体排名没有太大的变化。 完整排名请查看:https://db-en
    meiyit388 7 1 0 条评论
  • 编辑|田晓旭 Oracle中国区研发中心裁员消息最终被确认。 5月7日上午,Oracle召开了面向全中国区的电话会议,亚太区人力资源负责人在会上简要介绍道,公司正进行业务结构调整,导致一部分人要离开岗位,这将是全球性的。短暂介绍后,没有任何提问环节,Oracle北京地区便开始了一对一面谈,介绍赔偿内容。 据悉,此次主
    Jazery2009 7 0 0 条评论
  • 全球都在去Oracle化,曾经的纯软件巨头未来该何去何从? Oracle狠甩MySQL,涨幅大增 近日,DB-Engines最新发布了2018年8月数据库排名榜,Oracle稳居第一,同时是本月涨幅最大的数据库技术,涨幅高达34.24,狠甩第二名MySQL。 亚马逊:2020年第一季度,我们将完全弃用Oracle!
    土豆足球83 4 5 0 条评论
  • 作者|李冬梅 西方对俄罗斯的全面制裁,可能会加快中国在基础软件等"卡脖子"技术上自力更生的步伐。 1全球多家科技巨头宣布制裁俄罗斯 随着俄乌战争局势日益焦灼,西方各国相继宣布了要全面制裁俄罗斯的消息,美国更是将俄罗斯列入科技出口管制名单中。令人意外的是,俄乌战争影响范围之广,几乎波及了全球科技网。以谷歌、苹果、微软、
    xiao6663 7 0 0 条评论