完全干掉Oracle死锁进程

Oracle还是比较常用的,于是我研究了一下如何杀死Oracle死锁进程,在这里拿出来和大家分享一下,希望对大家有用。

1.查哪个过程被锁:

查V$DB_OBJECT_CACHE视图:SELECT * FROM V$DB_OBJECT_CACHE WHERE OWNER=’过程的所属用户’ AND CLOCKS!=’0′;

2. 查是哪一个SID,通过SID可知道是哪个SESSION:

查V$ACCESS视图:SELECT * FROM V$ACCESS WHERE OWNER=’过程的所属用户’ AND NAME=’刚才查到的过程名’;

3. 查出SID和SERIAL#:

查V$SESSION视图:SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID=’刚才查到的SID’;

查V$PROCESS视图:SELECT SPID FROM V$PROCESS WHERE ADDR=’刚才查到的PADDR’;

4. 杀进程:

(1)先杀Oracle死锁进程:ALTER SYSTEM KILL SESSION ‘查出的SID,查出的SERIAL#’;

(2)再杀操作系统进程:KILL -9 刚才查出的SPID或ORAKILL 刚才查出的SID 刚才查出的SPID。

Oracle死锁进程

查询数据库死锁:

  1. select t2.username||' '||t2.sid||'  
  2. '||t2.serial#||' '||t2.logon_time||'  
  3. '||t3.sql_text  
  4. from v$locked_object t1,v$session t2,v$sqltext t3  
  5. where t1.session_id=t2.sid  
  6. and t2.sql_address=t3.address  
  7. order by t2.logon_time; 

查询出来的结果就是有死锁的session了,下面就是杀掉,拿到上面查询出来的SID和SERIAL#,填入到下面的语句中:

  1. alter system kill session 'sid,serial#';  

一般情况可以解决数据库存在的死锁了,或通过session id 查到对应的操作系统进程,在Unix中杀掉操作系统的进程。

  1. SELECT a.username,c.spid AS os_process_id,c.pid  
  2. AS oracle_process_id FROM v$session a,v$process c  
  3. WHERE c.addr=a.paddr and a.sidand a.serial#= ; 

然后采用kill (unix) 或 orakill(windows )。

在Unix中:

  1. ps -ef|grep os_process_id  
  2. kill -9 os_process_id  
  3. ps -ef|grep os_process_id 

经常在Oracle的使用过程中碰到这个问题,所以也总结了一点解决方法。

1)查找死锁的进程:

  1. sqlplus "/as sysdba" (sys/change_on_install)  
  2. SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,  
  3. l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS  
  4. FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID; 

2)kill掉这个死锁的进程:

  1. alter system kill session ‘sid,serial#’; (其中sid=l.session_id)  

3)如果还不能解决:

  1. select pro.spid from v$session ses,  
  2. v$process pro where ses.sid=XX and  
  3. ses.paddr=pro.addr; 

其中sid用死锁的sid替换:

  1. exit  
  2. ps -ef|grep spid 

其中spid是这个进程的进程号,kill掉这个Oracle死锁进程。

【编辑推荐】

  1. Oracle DB BUFFER宝典说明
  2. 你是否了解Oracle空闲数据块
  3. 全面讲解Oracle锁存器
  4. 浅谈Oracle Shared Pool
  5. Oracle COMMIT之深入浅出

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/244322.html<

(0)
运维的头像运维
上一篇2025-04-25 16:28
下一篇 2025-04-25 16:29

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注