题目部分

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

答案部分

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

图 3-10 Oracle的进程结构

1USER PROCESS(用户进程)

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

2SERVER 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 LOCAL2oracle    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还是可以连上数据库的。

3BACKGROUND 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_INTERVAL10old   8: and lower(a.KSPPINM) like  lower('%¶meter%')11new   8: and lower(a.KSPPINM) like  lower('%_PKT_PMON_INTERVAL%')12 INDX NAME                   KSPPDESC                             KSPPSTVL13----- ---------------------- ------------------------------------ --------------------14   61 _pkt_pmon_interval     PMON process clean-up interval (cs)  5015SYS@LHRDB > alter system set "_PKT_PMON_INTERVAL"=50;16System altered.17SYS@orclasm > ! oerr ora 102461810246, 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 SPID23---------- ------------------------24         2 401425SYS@orclasm > oradebug wakeup 226Statement processed.

oracle启动监听_【DB笔试面试530】在Oracle中,有哪些重要后台进程?相关推荐

  1. Oracle 启动监听命令

    启动监听:lsnrctl start 查看监听:lsnrctl status 停止监听:lsnrctl stop 1.oracle 数据服务器包括:实例进程和数据库:    实例进程包括:memory ...

  2. Oracle单机报监听不支持服务,(转)oracle 启动监听 报“监听程序不支持服务” 解决...

    转自 http://www.51testing.com/html/99/478599-842622.html 今天安装了oracle后,启动监听,报错如下: 启动tnslsnr: 请稍候... TNS ...

  3. win7 oracle启动监听,win7系统oracle监听服务无法打开的解决方法

    无论谁在使用电脑的时候都可能会发现oracle监听服务无法打开的问题,oracle监听服务无法打开让用户们很苦恼,这是怎么回事呢,oracle监听服务无法打开有什么简便的处理方式呢,其实只要依照1.如 ...

  4. oracle 启动监听报错TNS-12547: TNS:lost contact

    监听启动出错,报以下错误: lsnrctl start LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 06-JUL-2009 14:37:5 ...

  5. oracle 启动监听提示 :The listener supports no services

    lsnrctl start 提示: The listener supports no services The command completed successfully 这样启动后远程连接会造成 ...

  6. oracle启动监听读取哪个文件,监听服务启动及数据文件恢复oracle数据库

    最近遭遇了 oralce 监听服务启动了 又自行关闭的 悲惨经历 我把我的过程和大家分享一下! 1)排查原因 程序员是懒惰的,我始终都希望能够成功启动监听服务,但是就是事与愿违 有一下方式可能不能成功 ...

  7. oracle启动监听程序报错:本地计算机上的oracleOraDB11g_home1TNSListener服务启动后停止某些服务在未由其他服务或程序使用时将自动停止

    今晚启动oracle的监听程序服务时候报了个错误:本地计算机上的oracleOraDB11g_home1TNSListener服务启动后停止某些服务在未由其他服务或程序使用时将自动停止,如下图: 排查 ...

  8. oracle启动监听报 Instance “orcl“, status UNKNOWN, has 1 handler(s) for错误解决方案

    以SYS用户身份登录Oracle su - oracle sqlplus /nolog connect /as sysdba 实例注册到oracle中:alter system register; 再 ...

  9. oracle rfs进程过多,【DB笔试面试755】在Oracle的DG中,RFS、LNSn、MRP、LSP进程的作用分别是什么?...

    ♣ 答案部分 这几个进程是DG结构中日志传输.接受和应用的关键性进程,下面分别介绍这几个进程. (一)RFS进程 RFS(Remote File Server)进程主要用来接受从主库传送过来的日志信息 ...

最新文章

  1. 配置CACTI监控MySQL数据库状态(1)准备工作
  2. 在Linux下怎样让top命令启动之后就按内存使用排序(或CPU使用排序)?
  3. python的clock函数,Python3 time clock()方法
  4. 在.NET Core中三种实现“可插拔”AOP编程方式(附源码)
  5. [html] 精确获取页面元素位置的方式有哪些?
  6. xps13 linux 硬盘分区,在xps13上安装ubuntu16.04教程
  7. IPD在华为成功的6个原因
  8. matlab读取一幅灰度图,Matlab处理灰度图
  9. PHP - 下载/传输远程服务器上的文件到本地服务器
  10. 5G NR的新特征—超低时延
  11. 新媒体运营教程:教你如何写推广策划案?
  12. python笔记5 - 字符串格式化表达式,while语句嵌套,for循环,break,continue,死循环
  13. s/μs/ns/ps与Hz/KHz/MHz/GHz换算关系
  14. 记一个ie兼容apos
  15. Spring 4 Hello World 例子(带源码)
  16. element 日期选择器 只能选择今天之前或选择今天之后的日期
  17. Xshell 连接linux主机
  18. I/O 管理 —— I/O控制器
  19. win 雨滴 linux,Win10插件
  20. php判断运营商,PHP根据手机号判断运营商

热门文章

  1. mysql8.0root连接失败_mac 下jdbc连接mysql 8.0 失败
  2. eureka上的微服务不能通过服务名调用_掌门教育微服务体系 Solar | 阿里巴巴 Nacos 企业级落地上篇...
  3. 叨叨20220304
  4. 人生总是起起落落落落落落...
  5. java 2 图形设计卷i awt_java 2 图形设计卷i:awt
  6. 周三晚八点直播丨如何通过APEX 实现自动化运维
  7. 每日一题 2020.05.26
  8. 使用DataSync迁移数据到Gaussdb T
  9. 【鲲鹏 DevKit黑科技解读】│如何实现全链路系统问题90%精准诊断?
  10. 基于Serverless的端边云一体化媒体网络