Oracle PMON进程清洗功能

PMON进程

简介
  • 1,在进程非正常中断后,做清理工作。例如:dedicated server失败了或者因为一些原因被杀死,这是PMON的工作分两种。第一,是对dedicated server所做的工作进行恢复或撤销。第二:是释放dedicated server占用的资源。PMON会把失败进程的未提交的工作进行rollback,释放锁,释放SGA空间

  • 2,在进程abort后,PMON进行清理工作。PMON会监视oracle其他的后台进程,并在需要的时候对它们进行重建。如果shared server或者dispatcher失败后,PMON会介入其中,并在清理完失败进程后,重建一个shared server或dispatcher。例如:在数据库进行写日志的时候LGWR进程失败,这是个很严重的错误。解决这种问题最安全的方法是立即中断实例,并恢复。

  • 3,PMON的第三个用途是,向Oracle TNS listener注册实例信息。在实例启动的时候,PMON会查询oracle的默认端口(1521端口)是否处于工作状态。如果这个端口已经处于工作状态,那么该实例就可以启动,PMON把实例的相关信息告诉listener,包括服务名、实例的信息等。如果listener没有启动,PMON就会定期的尝试去连接listener。这里要注意如果oracle没有是默认的1521端口,而是使用其他的端口时,PMON和listener的连接过程和使用1521端口还是很相似的,除了,在使用非默认端口时,listener的地址要在参数LOCAL_LISTENER中指定。

– 《oracle 编程艺术 9i,10g,11g》

周期性唤醒
  • PMON 唤醒周期参数:_pkt_pmon_interval = 50cs(cs即 centisecond ,表示百分之一秒,1秒=100厘秒)
  • _dead_process_scan_interval
    pmon进程会被唤醒,来清理dead process,并释放dead process持有的资源(latch and lock)。
    pmon通过轮询方式去检测dead process,轮询间隔为_dead_process_scan_interval(默认是60秒)。
  • _cleanup_rollback_entries
    参数默认是100,超过则post通知smon,剩下由smon来完成剩余的回滚工作。生产可以考虑设置大一些将数据库服务注册到监听,轮询每60秒(12c后这项工作由LRRG进程负责)
col VALUE for a20
col NAME for a30
col DESCRIPTION for a80
select a.ksppinm name, b.ksppstvl value,a.ksppdesc description from x$ksppi a, x$ksppcv b where a.indx = b.indx and a.ksppinm in ('_pkt_pmon_interval','_dead_process_scan_interval','_cleanup_rollback_entries');

NAME                           VALUE                DESCRIPTION
------------------------------ -------------------- ---------------------------
_pkt_pmon_interval             50                   PMON process clean-up interval (cs)
_dead_process_scan_interval    60                   PMON dead process scan interval (in seconds)
_cleanup_rollback_entries      100                  no. of undo entries to apply per transaction cleanup

手动唤醒PMON
  • oradebug wakeup orapid
    orapid:Oracle进程的PID,不是系统(OS)的PID,PMON进程的orapid一般为2,用以下SQL查询:orapid
SQL> select pid,program from v$process where program like '%PMON%';
       PID SPID                     PROGRAM
---------- ------------------------ ------------------------------------------------
         2 2663                     oracle@bjgs005sin64.hnapay.com (PMON)

  • 开始唤醒
SQL>connect /as sysdba
SQL> oradebug setmypid
Statement processed.
SQL> oradebug wakeup 2;
Statement processed.

通过100246事件跟踪PMON的清理死进程测试

100246事件跟踪命令
SQL>connect /as sysdba
-- 设置追踪文件
SQL> alter session set tracefile_identifier='pmon_10246';
-- 开启追踪
SQL>alter system set events '10246 trace name context forever,level 4';
-- 关闭追踪
SQL>alter system set events='10246 trace name context off';

测试杀死进程验证-示例

  • 测试逻辑
    启动三个Session A、B、C。A操作Insert ,B在A操作Insert的时候进行KILL掉A的会话,将A会话变成死进程,C进行监测试会话连接。最后查看TRC文件,解决PMON清理过程。
  • 启动三个session
    KILL Session SID : 3
    测试 Session SID : 256
    追踪 Session SID : 245

    image.png

  • 过程

    image.png

  • 查看trc文件

    image.png

  • 回滚dead transaction,由_cleanup_rollback_entries 参数控制

    image.png

  • 验证trc文件中:ksuprog 个数
[oracle@dbrac1 trace]$ cat twodb_pmon_2663.trc | grep ksuprog | wc -l  
100

总结

  • 理论仅仅是知道,实践才是掌握;
  • ‘_pkt_pmon_interval’,’_dead_process_scan_interval’,’_cleanup_rollback_entries’ 三个参数对pmon的影响已清晰;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/961145.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2025美赛数学建模C题:奥运金牌榜,完整论文代码模型目前已经更新

2025美赛数学建模C题:奥运金牌榜,完整论文代码模型目前已经更新,获取见文末名片

【数据结构】空间复杂度

目录 一、引入空间复杂度的原因 二、空间复杂度的分析 ❥ 2.1 程序运行时内存大小 ~ 程序本身大小 ❥ 2.2 程序运行时内存大小 ~ 算法运行时内存大小 ❥ 2.3 算法运行时内存大小 ❥ 2.4 不考虑算法全部运行空间的原因 三、空间复杂度 ❥ 3.1空间复杂度的定义 ❥ 3.2 空…

[Java]快速入门

java是什么 Java是美国的sun 公司(Stanford University Network)在1995年推出的一门计算机高级编程语言 sun公司于2009年被Oracle(甲骨文)公司收购。 普遍认同lava的联合创始人之一: 詹姆斯高斯林(James Gosling)为Java之父。 Java是世界上最流行的编程语言之一,…

数据分析系列--②RapidMiner导入数据和存储过程

一、下载数据 点击下载AssociationAnalysisData.xlsx数据集 二、导入数据 1. 在本地计算机中创建3个文件夹 2. 从本地选择.csv或.xlsx 三、界面说明 四、存储过程 将刚刚新建的过程存储到本地 Congratulations, you are done.

【源码+文档+调试讲解】基于springboot的高校实验室预约系统

摘 要 高校实验室预约系统是一款专为高等教育机构设计的在线管理工具,旨在简化实验室资源的分配和使用。通过该系统,学生和教师可以轻松查看实验室的空闲时间,并进行实时预约。系统支持不同用户权限设置,确保资源合理分配&#x…

MIMIC-IV数据部署(博主较忙,缓慢更新)

1. 用到的数据准备 在下面的网站,注册、申请、推荐人从邮箱里帮忙确认。 通过后,拉到页面的最下面。把那个将近10个G的文件给下载下来。 可以在晚上睡觉的时候下载,第二天早上起来“收数据”。 MIMIC-IV v3.1 2. 用到的软件准备 7-zip …

6. 使用springboot做一个音乐播放器软件项目【1.0版项目完结】附带源码~

#万物OOP 注意: 本项目只实现播放音乐和后台管理系统。 不分享任何音乐歌曲资源。 上一篇文章我们 做了音乐播放器后台的功能。参考地址: https://jsonll.blog.csdn.net/article/details/145214363 这个项目已经好几天也没更新了,因为临近放…

macbook安装go语言

通过brew来安装go语言 使用brew命令时,一般都会通过brew search看看有哪些版本 brew search go执行后,返回了一堆内容,最下方展示 If you meant "go" specifically: It was migrated from homebrew/cask to homebrew/core. Cas…

装机爱好者的纯净工具箱

对于每一位电脑用户来说,新电脑到手后的第一件事通常是检测硬件性能。今天为大家介绍一款开源且无广告的硬件检测工具——入梦工具箱。 主要功能 硬件信息一目了然 打开入梦工具箱,首先看到的是硬件信息概览。这里不仅包含了内存、主板、显卡、硬盘等常…

数据分析系列--③RapidMiner算子说明及数据预处理

一、算子说明 1 新建过程 2 算子状态灯 状态灯说明: (1)状态指示灯: 红色:指示灯说明有参数未被设置或输入端口未被连接等问题; 黄色:指示灯说明还未执行算子,不管配置是否基本齐全; 绿色:指示灯说明一切正常,已成功执行算子。 (2)三角…

PVE 虚拟机安装 Debian 无图形化界面服务器

Debian 安装 Debian 镜像下载 找一个Debian镜像服务器,根据需要的版本和自己硬件选择。 iso-cd/:较小,仅包含安装所需的基础组件,可能需要网络访问来完成安装。有镜像 debian-12.9.0-amd64-netinst.isoiso-dvd/:较…

操作系统指定用户密码永不过期

背景 实际生产环境中,数据中心操作系统通常会有基线要求(比如等保之类),要求设置操作系统密码有效期,但是infra团队或者操作系统管理员或者某些业务配置使用的操作系统用户又需要密码不能不停修改(或者说一…

npm:升级自身时报错:EBADENGINE

具体报错信息如下: 1.原因分析 npm和当前的node版本不兼容。 // 当前实际版本: Actual: {"npm":"10.2.4","node":"v20.11.0"}可以通过官网文档查看与自己 node 版本 兼容的是哪一版本的npm,相对应进行更新即可…

解决报错“The layer xxx has never been called and thus has no defined input shape”

解决报错“The layer xxx has never been called and thus has no defined input shape”(这里写自定义目录标题) 报错显示 最近在跑yolo的代码时遇到这样一个错误,显示“the layer {self.name} has never been called”.这个程序闲置了很久,每次一遇到…

【图文详解】lnmp架构搭建Discuz论坛

安装部署LNMP 系统及软件版本信息 软件名称版本nginx1.24.0mysql5.7.41php5.6.27安装nginx 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 关闭防火墙 systemctl stop firewalld &&a…

基于物联网的火灾报警器设计与实现(论文+源码)

1 总体方案设计 本次基于物联网的火灾报警器,其系统总体架构如图2.1所示,采用STM32f103单片机作为控制器,通过DS18B20传感器实现温度检测;通过MQ-2烟雾传感器实现烟雾检测;.通过火焰传感器实现火焰检测,当…

记录 | MaxKB创建本地AI智能问答系统

目录 前言一、重建MaxKBStep1 复制路径Step2 删除MaxKBStep3 创建数据存储文件夹Step4 重建 二、创建知识库Step1 新建知识库Step2 下载测试所用的txtStep3 上传本地文档Step4 选择模型补充智谱的API Key如何获取 Step5 查看是否成功 三、创建应用Step1 新建应用Step2 配置AI助…

机器学习 - 初学者需要弄懂的一些线性代数的概念

一、单位矩阵 在数学中,单位矩阵是一个方阵,其主对角线上的元素全为1,其余元素全为0。单位矩阵在矩阵乘法中起到类似于数字1在数值乘法中的作用,即任何矩阵与单位矩阵相乘,结果仍为原矩阵本身。 单位矩阵的定义&…

FPGA 使用 CLOCK_LOW_FANOUT 约束

使用 CLOCK_LOW_FANOUT 约束 您可以使用 CLOCK_LOW_FANOUT 约束在单个时钟区域中包含时钟缓存负载。在由全局时钟缓存直接驱动的时钟网段 上对 CLOCK_LOW_FANOUT 进行设置,而且全局时钟缓存扇出必须低于 2000 个负载。 注释: 当与其他时钟约束配合…

React第二十六章(createPortal)

createPortal 注意这是一个API&#xff0c;不是组件&#xff0c;他的作用是&#xff1a;将一个组件渲染到DOM的任意位置&#xff0c;跟Vue的Teleport组件类似。 用法 import { createPortal } from react-dom;const App () > {return createPortal(<div>小满zs<…