背景

熟悉PMON的含义及工作内容。

结论

1,pmon可以用10246 event进行跟踪PMON工作过程

2,pmon工作内容如下:

后经查询官方手册发现,PMON的工作内容如下:

1,监控后台进程运行状况

2,如果某些进程异常中断,PMON去释放会话资源以及占用的锁LOCK

3,更新事务表的标志以及清除事务XID的标记

4,清除异常中断会话在BUFFER CACHE占用的缓存

5,PMON也负责定期把数据库实例注册到监听器中

3,10246 EVENT产生的TRACE FILE分析摘录

--PMON接到通知

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksl2.h LINE:2160 ID:kslges, process=6c, post_num=5

*** 2015-11-01 21:49:30.646

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksl2.h LINE:2160 ID:kslges, process=39, post_num=6

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12751 ID:ksupsc, process=b8, post_num=7

*** 2015-11-01 22:03:02.812

deleting session 0xdc97f1b0 sid=201 serial=188  --PMON发现上述测试会话被人为KILL

*** 2015-11-01 22:03:03.382

deletion of killed session 0xdc97f1b0 successful

--这里就是ORACLE内核代码负责清理被KILL会话占用的资源

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12737 ID:ksuabt, process=0, post_num=8

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=9

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=10

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=11

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=12

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=13

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=14

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=15

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=16

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=17

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=18

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=19

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=20

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=21

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=22

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=23

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=24

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=25

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=26

PMON ignoring post from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2

*** 2015-11-01 22:03:06.428

marked process 0xdd6589c0 pid=184 serial=2 ospid = 11635 dead  --PMON清理完被KILL后,标记为DEAD

*** 2015-11-01 22:03:06.446

deleting process 0xdd6589c0 pid=184 serial=2 priority=0 --然后删除这个会话对应的操作系统进程资源

deletion of process dd6589c0 pid=184 seq=2 successful

测试

1,数据库版本

SQL> select * from v$version where rownum=1;

BANNER

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

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

2,跟踪pmon

SQL> alter session set tracefile_identifier='pmon_test1';

Session altered.

SQL> alter system set events='10246 trace name context forever,level 1';

System altered.

3,用户测试会话

SQL> select sid from v$mystat where rownum=1;

SID

----------

201

SQL> select sid,serial# from v$session where sid=201;

SID    SERIAL#

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

201        188

SQL> create table t_pmon(a int,b int);

Table created.

SQL> insert into t_pmon select level,level from dual connect by level<=1000000;

insert into t_pmon select level,level from dual connect by level<=1000000

*

ERROR at line 1:

ORA-00028: your session has been killed

ORA-00028: your session has been killed

--另启会话杀掉正在插入记录的上述测试会话

SQL> alter system kill session '201,188';

System altered.

3,关闭pmon跟踪

SQL> alter system set events='10246 trace name context off';

System altered.

4,查看pmon的TRACE FILE

--PMON接到通知

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksl2.h LINE:2160 ID:kslges, process=6c, post_num=5

*** 2015-11-01 21:49:30.646

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksl2.h LINE:2160 ID:kslges, process=39, post_num=6

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12751 ID:ksupsc, process=b8, post_num=7

*** 2015-11-01 22:03:02.812

deleting session 0xdc97f1b0 sid=201 serial=188  --PMON发现上述测试会话被人为KILL

*** 2015-11-01 22:03:03.382

deletion of killed session 0xdc97f1b0 successful

--这里就是ORACLE内核代码负责清理被KILL会话占用的资源

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12737 ID:ksuabt, process=0, post_num=8

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=9

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=10

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=11

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=12

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=13

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=14

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=15

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=16

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=17

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=18

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=19

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=20

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=21

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=22

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=23

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=24

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=25

PMON posted from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2, post_num=26

PMON ignoring post from location=FILE:/ade/b/1640894963/oracle/rdbms/src/hdir/ksu.h LINE:12763 ID:ksuxfd, process=2

*** 2015-11-01 22:03:06.428

marked process 0xdd6589c0 pid=184 serial=2 ospid = 11635 dead  --PMON清理完被KILL后,标记为DEAD

*** 2015-11-01 22:03:06.446

deleting process 0xdd6589c0 pid=184 serial=2 priority=0 --然后删除这个会话对应的操作系统进程资源

deletion of process dd6589c0 pid=184 seq=2 successful

继续测试,如果我们让PMON阻塞,再手工KILL测试会话会如何呢

SQL> select pid,spid from v$process where pname='PMON';

PID SPID

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

2 10556

SQL> oradebug setospid 10556

Oracle pid: 2, Unix process pid: 10556, image: oracle@seconary (PMON)

SQL> oradebug suspend

Statement processed.

没看到任何有价值的内容

换个思路,如果阻塞PMON,事务提交会不会正常进行呢

SQL> oradebug setospid 10556

Oracle pid: 2, Unix process pid: 10556, image: oracle@seconary (PMON)

SQL> oradebug suspend

Statement processed.

可见事务提交不受影响

SQL> update t_pmon set a=111 where a=1;

1 row updated.

SQL> commit;

Commit complete.

后经查询官方手册发现,PMON的工作内容如下:

1,监控后台进程运行状况

2,如果某些进程异常中断,PMON去释放会话资源以及占用的锁LOCK

3,更新事务表的标志以及清除事务XID的标记

4,清除异常中断会话在BUFFER CACHE占用的缓存

5,PMON也负责定期把数据库实例注册到监听器中

oracle pmon 多长时间,oracle 11g pmon工作内容系列一相关推荐

  1. 新手篇——学习网页开发需要多长时间就能找到工作

    2019独角兽企业重金招聘Python工程师标准>>> 近几年Web前端框架层出不穷,比如 React, Vue, AngulaJS等吸引了大量的注意力,前端技术发展势头迅猛,各大互 ...

  2. oracle 闪回 多长时间,Oracle闪回

    select t.NAME,t.CURRENT_SCN,t.FLASHBACK_ON From v$database t; --闪回设置 --mount状态开启flashback alter data ...

  3. oracle查询过程中卡住,查看Oracle中存储过程长时间被卡住的原因

    1:查V$DB_OBJECT_CACHE SELECT * FROM V$DB_OBJECT_CACHE WHERE name='CUX_OE_ORDER_RPT_PKG' AND LOCKS!='0 ...

  4. oracle sql 获取当前时间,Oracle 在SQL语句中如何获取系统当前时间并进行操作

    ### 前言 Oracle中如何获取系统当前时间进行语句的筛选是SQL语句的常见功能 获取系统当前时间 date类型的: select sysdate from dual; char类型的: sele ...

  5. oracle添加表空间时间,Oracle基于表空间的时间点恢复

    1.测试环境 03:57:50 SQL> conn scott/tiger Connected. 03:57:57 SQL> 03:59:43 SQL> select * from ...

  6. web软件测试 测试报告模板_杭州软件测试培训要多长时间?需要学习什么内容?...

    全栈软件测试工程师行业平均薪资11680元每月,数据来源于职友集,薪资待遇高,就业前景好,越来越多的人看重选择软件测试行业,通过培训入行无疑是最好的选择,那杭州软件测试培训要多长时间?需要学习什么内容 ...

  7. 查看Oracle中存储过程长时间被卡住的原因

    1:查V$DB_OBJECT_CACHE SELECT * FROM V$DB_OBJECT_CACHE WHERE name='CUX_OE_ORDER_RPT_PKG' AND LOCKS!='0 ...

  8. oracle闪回能保存多长时间,Oracle闪回

    Oracle闪回 作用:自动基于磁盘的备份与恢复,能把表恢复到过去的某个时间点或者SCN. 1.查看闪回区 SQL>show parameter db_recovery_file_dest; 查 ...

  9. oracle归档日志保留时间,Oracle 11g Data Guard 备库归档日志清理脚本(保留一周归档)...

    #!/bin/sh #clean archived log #author jiadingyi #version 1.0 2015/11/04 #设置数据库环境变量 TMP=/tmp export T ...

  10. oracle闪回能保存多长时间,oracle闪回那些事

    开启闪回数据库 alter database flashback on; alter database open; 修改日期时间显示格式: alter session  set nls_date_fo ...

最新文章

  1. windows7下解决caffe check failed registry.count(type) == 1(0 vs. 1) unknown layer type问题
  2. 美国多所高校宣称9月线下开学,纽约大学教授:请停止妄想!
  3. c#与halcon模板匹配控制EPSON四轴机器人输出旋转角度
  4. 个性化选修——软件工程相关笔记
  5. winpython使用教程-winpython是什么
  6. 把char*转换为wchar_t*
  7. 手把手教你pyqt中.qrc图片文件的编写和使用
  8. SQLServer 2014 本地机房HA+灾备机房DR解决方案
  9. Windows系统中安装Python模块pip numpy matplotlib
  10. 2058. 找出临界点之间的最小和最大距离
  11. 如何添加媒体控件Windows Media Player到工具箱中
  12. 2020年假期结束!支付宝发布国庆中秋黄金周报告:出行人次、购买力惊人!
  13. JavaCC报错: JavaCC reported exit code 1: [-LOOKAHEAD=1, -STATIC=false
  14. Vue项目中关闭Eslint
  15. android 移除泛型中元素_最新(2020)Android高级面试知识点干货分享(二)
  16. 【建站教程】如何快速搭建自己独立的个人博客?
  17. java将Word转换成PDF三种方法
  18. 一起来学FPGA(vhdl)三:分频器实验
  19. LMDB:轻量级内存映射数据库-----入门使用1
  20. 垃圾纸盒的叠法-超级实用

热门文章

  1. 无法确认设备和计算机之间的连接,代码45的8种解决方法 - 硬件设备没有连接到计算机...
  2. 一款用C++语言实现的3D游戏引擎(附源码),适用于想学3D游戏开发
  3. 华硕bios更改固态硬盘启动_华硕主板BIOS设置固态硬盘启动顺序为第一启动硬盘教程...
  4. Diamond软件的使用--(1)软件安装及配置
  5. 【图像去噪】基于马尔可夫随机场实现图像去噪附matlab代码
  6. 数据包络分析法(DEA)_2
  7. 海豚湾在哪_前任3再见前任里的海豚湾在哪 电影拍摄取景地点介绍
  8. 计算机人工智能领域英文文献,人工智能英文参考文献精选(3)
  9. 层次分析法原理及计算过程详解
  10. (解决中文标签无法显示问题)Networkx绘制《清明上河图密码》主要人物社交关系网络图