python自动化面试知识点(数据库笔试面试132)(1)

在Oracle中,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的相关操作。

SYS@LHRDB> SELECT a.INDX,

2 a.KSPPINM NAME,

3 a.KSPPDESC,

4 b.KSPPSTVL

5 FROM x$ksppi a,

6 x$ksppcv b

7 WHERE a.INDX = b.INDX

8 and lower(a.KSPPINM) like lower('%&parameter%');

Enter value for parameter: _PKT_PMON_INTERVAL

old 8: and lower(a.KSPPINM) like lower('%&parameter%')

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

INDX NAME KSPPDESC KSPPSTVL

----- ---------------------- ------------------------------------ --------------------

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

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

System altered.

SYS@orclasm > ! oerr ora 10246

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

// *Cause:

// *Action:

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

PID SPID

---------- ------------------------

2 4014

SYS@orclasm > oradebug wakeup 2

Statement processed.

SYS@orclasm >

&说明:

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

,