oracle哪些后台进程不能杀?(oracle数据库杀进程)
sinye56 2024-10-03 00:40 5 浏览 0 评论
oracle 有很多的后台进程,在遇到特殊情况的时候如锁表,如果等待的是一个后台进程,那这时就需要考量是不是能杀掉这个后台进程?杀掉这个后台进程会不会引起实例崩溃?本着实践出真知,本文针对oracle 11g,oracle 19c,和oracle 23ai三个版本,将系统的后台进程轮流杀掉看看会不会引起实例崩溃。
1.数据库实例
1.1测试脚本轮流kill后台进程 大家已经熟知的pmon,smon,dbwr,lgwr,ckpt,mman这六个核心进程 杀掉肯定会实例崩溃,所以脚本中剔除了这六个
#!/bin/sh
function startup()
{
sqlplus / as sysdba<<EOF
startup
exit
EOF
}
?
started=`ps -ef | grep pmon | grep -v grep | awk '{print $2}'`
test -z "$started" && startup >> /dev/null
sleep 5
?
# List of Oracle background processes to exclude from killing
exclude_processes="pmon|smon|dbw0|dbw1|lgwr|ckpt|mman"
?
# Get list of Oracle processes
prolist=`ps -ef | grep ora | egrep -v "bash|su|h|ps|grep|more|sleep|awk|LOCAL|sy sdba|log|$exclude_processes" | awk '{print $NF}'`
?
for i in $prolist
do
proc_key=`echo $i | awk -F _ '{print $2}'`
pid=`ps -ef | grep $proc_key | grep -v grep | awk '{print $2}'`
?
test -z $pid && echo "$proc_key does not exist" || {
echo "Killing process $proc_key with PID $pid"
kill -9 $pid
sleep 20
?
# Check if PMON process exists
pc=`ps -ef | grep pmon | grep -v grep | wc -l`
echo "Number of PMON processes: $pc"
?
if [ $pc -eq 0 ]; then
echo "Killed process $proc_key has caused instance crash!"
startup >> /dev/null
sleep 5
else
echo "Killed process $proc_key has not caused instance crash."
fi
?
}
done
?
这里给出三个版本的测试结果
oracle 11g
Killed process vktm has caused instance crash!
Killed process gen0 has caused instance crash!
Killed process dbrm has caused instance crash!
oracle 19c
Killed process clmn has caused instance crash!
Killed process vktm has caused instance crash!
Killed process gen0 has caused instance crash!
Killed process lg00 has caused instance crash!
Killed process lg01 has caused instance crash!
Killed process lreg has caused instance crash!
Killed process dbrm has caused instance crash!
Killed process pman has caused instance crash!
oracle 23ai
Killed process clmn has caused instance crash!
Killed process vktm has caused instance crash!
Killed process gen0 has caused instance crash!
Killed process lg00 has caused instance crash!
Killed process lg01 has caused instance crash!
Killed process lreg has caused instance crash!
Killed process dbrm has caused instance crash!
Killed process pman has caused instance crash!
Killed process bg02 has caused instance crash!
?
1.2总结哪些数据库后台进程不能杀
oracle11g (9个)
- PMON (Process Monitor):
- 负责监视后台进程和用户进程的状态。当检测到用户进程异常或断开连接时,PMON负责清理相关资源并释放锁定。
- SMON (System Monitor):
- 处理系统级别的事务和数据库实例的恢复。SMON负责维护数据库的一致性,包括回滚未完成的事务和清理临时段。
- DBWR (Database Writer):
- 负责将缓冲区中的数据写回磁盘。DBWR根据需要执行检查点(Checkpoint),以确保数据库的一致性和持久性。
- LGWR (Log Writer):
- 将重做日志缓冲区中的日志记录写入重做日志文件。LGWR确保事务的持久性,允许数据库在崩溃后进行恢复。
- CKPT (Checkpoint Process):
- 负责在数据库实例中定期执行检查点操作。检查点将数据库缓冲区中的已修改数据写入数据文件,以便恢复操作。
- MMAN (Memory Manager):
- 管理数据库实例中的内存分配和使用。MMAN负责自动调整共享池和其他内存结构的大小,以优化数据库性能。
- VKTM (Virtual Keeper of Time):
- 提供数据库实例中的时间服务。VKTM管理数据库中所有时间相关操作,包括等待事件和事务时间戳。
- oracle 11g新引入的后台进程。
- DBRM (Database Resource Manager):
- 管理数据库资源的分配和使用,包括CPU、I/O和连接数等。DBRM确保不同用户和应用程序之间的资源分配公平和有效。
- oracle 11g新引入的后台进程
- GEN0 (Generic Background Process):
- 通用后台进程,用于处理数据库实例中的各种系统任务和管理操作。
- oracle 10g引入的后台进程
oracle 19c (9+4=13个)- CLMN (Cleanup Main Process):
- 功能:负责在Oracle实例中执行清理任务。
- 职责:管理清理死进程、终止会话、事务、网络连接、空闲会话、已分离事务以及超过空闲超时的网络连接。
oracle 12c引入和clnn一起协助pmon处理一些清理工作 - LGnn ( Log Writer Worker):
- 功能:lgwr辅助进程。
- 职责:在多处理器系统中,LGWR创建worker提高进程写入性能
- oracle19c引入协助lgwr进程处理并发提高log写入性能
- LREG ( Listener Registration Process):
- 功能:将Oracle实例注册到监听器。
- 职责:通知监听器有关实例、服务、处理程序和端点的信息。确保监听器知道可以连接的数据库服务。
- oracle 12c引入
- PMAN (Process Manager):
- 功能:管理Oracle数据库中的各种后台进程。
- 职责:根据需要监视、启动和停止分发器和共享服务器进程、连接代理、用于数据库驻留连接池的池化服务器进程、作业队列进程以及可重启后台进程。
- oracle 12c引入
- 23ai (13+1=14个)
新增bgnn进程,23ai确实有多个后台bgnn进程,kill掉还会实例崩溃 应该是关键进程,但是在官方的reference却没有?非常奇怪!有知道的大佬留言指教一下! - 官方文档中没有bgnn介绍?
2.ASM实例
除了以上的还有集群环境下ASM实例相关后台进程,有如下四个ASM关键进程不能杀
- ASMB (ASM Background Process):
- 功能:ASMB 是 Automatic Storage Management (ASM) 的后台进程。它主要用于维护 ASM 实例与 Oracle 实例之间的通信。ASMB 管理与 Oracle 实例的连接,处理 ASM 实例与客户端之间的元数据操作请求,并协调数据重新平衡操作。
- RBAL (ASM Rebalance Master Process):
- 功能:RBAL 是另一个与 ASM 相关的进程。它负责分发重新平衡任务给其他 ASM 实例中的 ARBx 从属进程。重新平衡操作在添加或删除 ASM 磁盘时执行,以确保数据在磁盘组中的均匀分布。
- PSP0 (Process Spawner Process):
- 功能:PSP0 是 Process Spawner Process,负责生成和管理 Oracle 实例中的其他后台进程。它确保所需的后台进程在实例启动时启动,并在需要时生成新的进程。
- GMON (ASM Disk Group Monitor Process):
- 功能:GMON 是 ASM 磁盘组监控进程。它主要用于监控和管理 ASM 磁盘组的状态和运行状况。GMON 确保磁盘组的一致性,并在检测到磁盘组中的错误或不一致时采取纠正措施。
ps :oracle 23ai还有一个变化后台进程的名字由原来的ora_xxxx改为了db_xxxx,放弃了沿用数十年的规则
19c
23ai (不确定正式EE版本是否沿用ora_还是使用db_)
相关推荐
- Linux两种光驱自动挂载的方法
-
环境:CentOS6.4西昆云服务器方式一修改fstab文件/etc/fstab是系统保存文件系统信息?静态文件,每一行描述一个文件系统;系统每次启动会读取此文件信息以确定需要挂载哪些文件系统。参...
- linux系统运维,挂载和分区概念太难?在虚机下操作一次全掌握
-
虚拟机的好处就是可以模拟和学习生产环境的一切操作,假如我们还不熟悉磁盘操作,那先在虚机环境下多操作几次。这次来练习下硬盘扩容操作。虚拟机环境:centos8vm11linux设备命名规则在linux中...
- Linux 挂载 NFS 外部存储 (mount 和 /etc/fstab)
-
mount:手工挂载,下次重启需再重新挂载,操作命令:mount-tnfs-ooptionsserver:/remote/export/local/directory上面命令中,本地目录...
- 在Linux中如何设置自动挂载特定文件系统(示例)
-
Linux...
- Linux环境中的绑定挂载(bind mount)
-
简介:Linux中的mount命令是一个特殊的指令,主要用于挂载文件目录。而绑定挂载(bindmount)命令更为特别。mount的bind选项将第一个目录克隆到第二个。一个目录中的改变将会在...
- Linux挂载CIFS共享 临时挂载 1. 首先
-
如何解决服务器存储空间不足的问题?大家好,欢迎回来。在上一期视频中,我为大家介绍了如何利用Linux挂载来扩容服务器存储空间。这一期视频,我将以Linux为例,教大家如何进行扩容。群辉使用的是Linu...
- Linux 硬盘挂载(服务器重启自动挂载)
-
1、先查看目前机器上有几块硬盘,及已挂载磁盘:fdisk-l能够查看到当前主机上已连接上的磁盘,以及已经分割的磁盘分区。(下面以/dev/vdb磁盘进行分区、挂载为例,挂载点设置为/data)df...
- linux 挂载磁盘
-
在Linux中挂载硬盘的步骤如下:...
- 笨小猪教您Linux磁盘挂载
-
本教程针对Linux系统比较熟悉或者想学习Linux基础的用户朋友,本教程操作起来比较傻瓜式,跟着步骤就会操作,本文使用的工具是XShell同时多多注意空格(文中会有提示)。【问答】什么是磁盘挂载?答...
- Linux 磁盘挂载和docker安装命令
-
本篇给大家介绍Linux磁盘挂载和docker安装的相关内容,Linux服务器的操作是一个手熟的过程,一些不常用的命令隔断时间就忘记了,熟话说好记性不如烂笔头,还需在平时的工作中多练习记录。...
- Linux设置开机自动挂载分区
-
有时候,我们在安装完Linux系统之后,可能在使用过程中添加硬盘或者分区进行使用,这时候就需要手动把磁盘分区挂载到某个路径,但是开机之后就会消失,需要重新挂载,非常麻烦,那么我们应该如何设置开机自动挂...
- 在linux挂载一个新硬盘的完整步骤
-
以下是在Linux中挂载新原始磁盘的完整步骤,包括分区、创建文件系统以及使用UUID在/etc/fstab中启动时挂载磁盘:将新的原始磁盘连接到Linux系统并打开电源。运行以下命令,...
- Linux系统如何挂载exFAT分区
-
简介:Linux系统中不能像Windows系统那样自动识别加载新设备,需要手动识别,手动加载。Linux中一切皆文件。文件通过一个很大的文件树来组织,文件树的根目录是:/,从根目开始录逐级展开。这些文...
- Linux系统挂载硬盘
-
fdisk-l查看可挂载的磁盘都有哪些df-h查看已经挂载的磁盘...
- WSL2发布,如何在Win10中挂载Linux文件系统
-
WSL2是最新版本的架构,它为Windows子系统提供支持,使其能够在Windows上运行ELF64Linux二进制文件。通过最近的更新,它允许使用Linux文件系统访问存储在硬盘中的文件。如果你...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle忘记用户名密码 (59)
- oracle11gr2安装教程 (55)
- mybatis调用oracle存储过程 (67)
- oracle spool的用法 (57)
- oracle asm 磁盘管理 (67)
- 前端 设计模式 (64)
- 前端面试vue (56)
- linux格式化 (55)
- linux图形界面 (62)
- linux文件压缩 (75)
- Linux设置权限 (53)
- linux服务器配置 (62)
- mysql安装linux (71)
- linux启动命令 (59)
- 查看linux磁盘 (72)
- linux用户组 (74)
- linux多线程 (70)
- linux设备驱动 (53)
- linux自启动 (59)
- linux网络命令 (55)
- linux传文件 (60)
- linux打包文件 (58)
- linux查看数据库 (61)
- linux获取ip (64)
- 关闭防火墙linux (53)