知识大全 oracle杀死死锁进程

Posted 视图

篇首语:仰天大笑出门去,我辈岂是蓬蒿人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 oracle杀死死锁进程相关的知识,希望对你有一定的参考价值。

  先查看哪些表被锁住了

  select b owner b object_name a session_id a locked_mode

  from v$locked_object a dba_objects b

  where b object_id = a object_id;

  OWNER                          OBJECT_NAME                                 SESSION_ID LOCKED_MODE

        

  WSSB                           SBDA_PSHPFTDT                                         

  WSSB_RTREPOS                   WB_RT_SERVICE_QUEUE_TAB                               

  WSSB_RTREPOS                   WB_RT_NOTIFY_QUEUE_TAB                                

  WSSB_RTREPOS                   WB_RT_NOTIFY_QUEUE_TAB                                

  WSSB                           SBDA_PSDBDT                                           

  WSSB_RTREPOS                   WB_RT_AUDIT_DETAIL                                    

  select b username b sid b serial# logon_time

  from v$locked_object a v$session b

  where a session_id = b sid order by b logon_time;

  USERNAME                              SID    SERIAL# LOGON_TIME

  

  WSSB_RTACCESS                                

  WSSB_RTACCESS                                

  杀会话

  alter system kill session sid serial# ;

  e g

  alter system kill session ;

  如果有ora 错误 则在后面加immediate;

  alter system kill session immediate;

  

  1 查哪个过程被锁

  查V$DB_OBJECT_CACHE视图:

  SELECT * FROM V$DB_OBJECT_CACHE WHERE OWNER= 过程的所属用户 AND CLOCKS!= ;

   查是哪一个SID 通过SID可知道是哪个SESSION

  查V$ACCESS视图:

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

   查出SID和SERIAL#

  查V$SESSION视图:

  SELECT SID SERIAL# PADDR FROM V$SESSION WHERE SID= 刚才查到的SID

  查V$PROCESS视图:

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

   杀进程

  ( ) 先杀ORACLE进程:

  ALTER SYSTEM KILL SESSION 查出的SID 查出的SERIAL# ;

  ( ) 再杀操作系统进程:

  KILL 刚才查出的SPID

  或

  ORAKILL 刚才查出的SID 刚才查出的SPID

  

  oracle的死锁

  查询数据库死锁

  select t username||    ||t sid||    ||t serial#||    ||t logon_time||    ||t sql_text

  from v$locked_object t v$session t v$sqltext t

  where t session_id=t sid

  and t sql_address=t address

  order by t logon_time;

  查询出来的结果就是有死锁的session了

  下面就是杀掉

  拿到上面查询出来的SID和SERIAL# 填入到下面的语句中

  alter system kill session sid serial# ;

  一般情况可以解决数据库存在的死锁了

  或通过session id 查到对应的操作系统进程 在unix中杀掉操作系统的进程

  SELECT a username c spid AS os_process_id c pid AS oracle_process_id FROM v$session a v$process c

  WHERE  c addr=a paddr and a sid=  and a serial#=  ;

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

  在unix中

  ps ef|grep os_process_id

  kill os_process_id

  ps ef|grep os_process_id

  

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

   )查找死锁的进程

  sqlplus /as sysdba    (sys/change_on_install)

  SELECT s username l OBJECT_ID l SESSION_ID s SERIAL# l ORACLE_USERNAME l OS_USER_NAME l PROCESS

  FROM V$LOCKED_OBJECT l V$SESSION S WHERE l SESSION_ID=S SID;

   )kill掉这个死锁的进程

  alter system kill session sid serial# ;  (其中sid=l session_id)

   )如果还不能解决

  select pro spid from v$session ses v$process pro where ses sid=XX and ses paddr=pro addr;

  其中sid用死锁的sid替换

  exit

  ps ef|grep spid

cha138/Article/program/Oracle/201311/17405

相关参考

知识大全 杀死Oracle数据库死锁进程的具体方法

杀死Oracle数据库死锁进程的具体方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!杀死Orac

知识大全 从问题入手帮你解决Oracle杀死死锁进程

从问题入手帮你解决Oracle杀死死锁进程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Ora

知识大全 关闭Oracle死锁进程的具体步骤

关闭Oracle死锁进程的具体步骤  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  有效关闭Ora

知识大全 Oracle死锁进程的关闭实操

Oracle死锁进程的关闭实操  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  以下的文章主要介绍

“超时装置”在处理死锁时有什么作用?

  超时装置用来检测判断系统是否死锁,检测以及进行死锁修复,通常由当某一进程或进程中某一可检测信息被封锁—段时间且超过规定时间后,系统就认为出现了死锁现象,随即执行修复操作。死锁的修复要存贮进程的当前

“超时装置”在处理死锁时有什么作用?

  超时装置用来检测判断系统是否死锁,检测以及进行死锁修复,通常由当某一进程或进程中某一可检测信息被封锁—段时间且超过规定时间后,系统就认为出现了死锁现象,随即执行修复操作。死锁的修复要存贮进程的当前

知识大全 oracle中查找session中的死锁

  1查哪个过程被锁  查V$DB_OBJECT_CACHE视图:  SELECT*FROMV$DB_OBJECT_CACHEWHEREOWNER=过程的所属用户ANDLOCKS!=;  查是哪一个S

解决死锁问题的方法主要有几种?

  防止死锁的方法就是从某一环节上打破其死循环,这就要使其三个条件至少有一个不能满足。可分别采取以下的措施。  (1)进程被挂起后释放其占有的资源,即强制使挂起的进程放弃其占用的资源,等待下一次重新申

解决死锁问题的方法主要有几种?

  防止死锁的方法就是从某一环节上打破其死循环,这就要使其三个条件至少有一个不能满足。可分别采取以下的措施。  (1)进程被挂起后释放其占有的资源,即强制使挂起的进程放弃其占用的资源,等待下一次重新申

知识大全 通过查找引起死锁的的操作即可解决死锁[1]

  说道死锁问题的解决一般情况下我们都是选择KILL进程但如果不查出引起死锁的原因死锁的现象则会频繁出现其实只要通过查找引起死锁的的操作就可以方便的解决死锁  具体的解决方法如下  再死锁发生时我们可