oracle中查找session中的死锁Oracle认证考试

文章作者 100test 发表时间 2010:04:10 19:34:59
来源 100Test.Com百考试题网


  1.查哪个过程被锁

  查V$DB_OBJECT_CACHE视图:

  SELECT * FROM V$DB_OBJECT_CACHE WHERE OWNER=过程的所属用户 AND LOCKS!=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)查找死锁的进程:

  sqlplus "/as sysdba"

  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.

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

  alter system kill session ‘sid,serial#’.


相关文章


临时表空间相关知识点总结Oracle认证考试
数据库索引的优缺点Oracle认证考试
OracleVARRAY(变长数组)Oracle认证考试
Oracle数据库中数据的导入_导出Oracle认证考试
oracle中查找session中的死锁Oracle认证考试
Oracle数据文件大小的限制Oracle认证考试
OracleSQL语句优化分析Oracle认证考试
oracle使用游标触发器的存储过程Oracle认证考试
ORACLESQL判断字符串是否为数字的语句Oracle认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛