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

Posted 视图

篇首语:知是行的主意,行是知的功夫。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 从问题入手帮你解决Oracle杀死死锁进程相关的知识,希望对你有一定的参考价值。

从问题入手帮你解决Oracle杀死死锁进程  以下文字资料是由(全榜网网www.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

  如何杀死oracle死锁进程

  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/SQL/201405/30850

相关参考

知识大全 oracle杀死死锁进程

  先查看哪些表被锁住了  selectbownerbobject_nameasession_idalocked_mode  fromv$locked_objectadba_objectsb  whe

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

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

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

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

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

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

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

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

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

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

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

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

知识大全 Oracle9i进程内存占用问题解决方法

Oracle9i进程内存占用问题解决方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  年月日发

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

    引起数据库死锁的是:进程号其执行的SQL语法如下  EventTypeParametersEventInfo    LanguageEvent  select*fromtest  insert

解决接触网零件发生事故问题可以从那几个方面入手?

  (1)从设计零件的安全系数、材质和引进设计先进的新型接触网零件方面入手(如无螺栓零件等)。  (2)加强生产管理和质量控制。改进接触网零件的制造工艺。  (3)运用先进的检测探伤手段,在入、出库及