数据库无法释放已经结束的进程资源导致进程死锁
现象描述
查询数据库执行SQL语句的进程状态,发现执行SQL语句进程死锁,系统显示如下信息:
SQL> select address,sql_text,piece,SECONDS_IN_WAIT,SERVICE_NAME,MACHINE,PROCESS,LOCKWAIT from v$session,v$sqltext where address=sql_address and sql_text like '%FM_%' order by address,piece;
ADDRESS SQL_TEXT SECONDS_IN_WAIT SERVICE_NAME PROCESS LOCKWAIT -------- ---------------------------------------------------------------- --------------- ----------------------------------------------------------- 761BA4D0 DELETE FROM NE5_1.TBL_FM_ALARM_LOG WHERE ROWID IN (SELECT ROWID 7807 omu 22927 AEC028A8 761BA4D0 FROM (SELECT ROWID FROM NE5_1.TBL_FM_ALARM_LOG WHERE 7807 omu 22927 AEC028A8 9AB0B8F8 ress=sql_address and sql_text like '%FM_%' order by address, 0 SYS$USERS 27667 A311D7E4 UPDATE NE5_1.TBL_FM_ALARM_LOG SE 7658 omu 29835 AEC027C0由以上显示信息可知,22927进程先进入写锁状态,29835进程企图再写锁时陷入无限等待。复制
处理步骤
- 以oracle用户登录数据库所在机器。
- 以sysdba用户连接数据库。
- 查询进程的会话“ID”和“SERIAL”。
SQL> select sess.sid,sess.serial# from v$session sess,v$process proc where sess.paddr=proc.addr and proc.spid='22927';
系统提示如下信息:SID SERIAL# ---------- ---------- 137 5
由以上显示信息可知,进程22927的会话ID为137,SERIAL为5。复制 - 关闭此会话。
SQL> alter system kill session '137,5';
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1483次阅读
2025-03-13 11:40:53
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
900次阅读
2025-03-17 11:33:53
RAC 19C 删除+新增节点
gh
548次阅读
2025-03-14 15:44:18
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
504次阅读
2025-03-13 14:38:19
Oracle DataGuard高可用性解决方案详解
孙莹
378次阅读
2025-03-26 23:27:33
墨天轮个人数说知识点合集
JiekeXu
323次阅读
2025-04-01 15:56:03
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
311次阅读
2025-04-08 09:12:48
Oracle SQL 执行计划分析与优化指南
Digital Observer
277次阅读
2025-04-01 11:08:44
切换Oracle归档路径后,不能正常删除原归档路径上的归档文件
dbaking
271次阅读
2025-03-19 14:41:51
风口浪尖!诚通证券扩容采购Oracle 793万...
Roger的数据库专栏
268次阅读
2025-03-24 09:42:53