最近系统每天经常锁表,进程杀死后,很快再次锁住这个表。

(一)先贴出现场处理死锁的步骤。

另外:有时候通过PL/SQL执行kill session可能仍然无法解锁,此时需要登陆到Oracle服务器将进程kill掉才行。

1、生成Kill Session语句

select 'alter system kill session ''' || SID ||',' || SERIAL# || ''';' from

(

select distinct a.sid, a.Serial#, status, machine, LOCKWAIT, logon_time

from v$session a, v$locked_object b

where (a.status = 'ACTIVE' or a.status = 'INACTIVE')

and a.sid = b.session_id

and b.ORACLE_USERNAME='XYHISTEST'--加上用户名是避免把其他系统的会话也关闭,以免伤及无辜

);

或者

/*
select sess.sid,
sess.serial#,
lo.oracle_username,
lo.os_user_name,
ao.object_name,
lo.locked_mode,
sql.sql_text,
'alter system kill session ''' || SID ||',' || SERIAL# || ''';'

from v$locked_object lo,
dba_objects ao,
v$session sess,
v$sql sql
where ao.object_id = lo.object_id and lo.session_id = sess.sid and sql.ADDRESS(+)= sess.SQL_ADDRESS;

-- 这个sql查询结果包含了sid, serial#,可以用来kill 被锁死的session。

-- sql_text 字段可以知道导致死锁的sql。

--最后一个字段是直接可以执行的杀死进程的sql语句。

*/

2、批量执行第一步生成的语句

alter system kill session 'sid,serial#';

--alter system kill session '3656,755';

3、查询oracle用户名,机器名,锁表对象

SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username,

l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_time

FROM v$locked_object l, all_objects o, v$session s

WHERE l.object_id = o.object_id

AND l.session_id = s.sid

ORDER BY sid, s.serial# ;

/*或者

select s.SID, s.OSUSER, p.spid as OSPID, s.MACHINE, s.TERMINAL, s.PROGRAM

from v$session s, v$process p

where s.sid = 5864--session_id

and s.paddr = p.addr;

*/

4、查询是执行何sql语句导致锁表的

select b.sql_text

from v$session a, v$sql b

where a.sid =589 --session_id

and a.SQL_ADDRESS = b.ADDRESS(+);

/*--或者

SELECT l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, s.user#,

l.os_user_name,s.machine, s.terminal,a.sql_text, a.action

FROM v$sqlarea a,v$session s, v$locked_object l

WHERE l.session_id = s.sid

AND s.prev_sql_addr = a.address

ORDER BY sid, s.serial#;

*/

oracle 锁表的处理。的更多相关文章

  1. oracle锁表问题解决方法

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp52 Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程 ...

  2. oracle锁表

    一.锁表的处理 Oracle锁表比较简单,查询锁表的session杀掉就可以了. 1.以下几个为相关表 SELECT * FROM V$LOCK; SELECT * FROM V$SQLAREA; S ...

  3. Oracle锁表查询和解锁方法

    数据库操作语句的分类 DDL:数据库模式定义语言,关键字:create DML:数据操纵语言,关键字:Insert.delete.update DCL:数据库控制语言 ,关键字:grant.remov ...

  4. oracle锁表查询

    ORACLE EBS操作某一个FORM界面,或者后台数据库操作某一个表时发现一直出于"假死"状态,可能是该表被某一用户锁定,导致其他用户无法继续操作 复制代码代码如下: --锁表查 ...

  5. oracle 锁表问题

    oracle执行表数据更新的时候,会遇到锁表问题,比方说,会遇到这样的问题,主要原因是这张表被其他人占用,修改数据没有提交.oracle为了避免脏数据的产生,在其安全机制下,锁住该表. 执行如下操作, ...

  6. 查询Oracle锁表和解决方法

    Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作,那么这些操作是怎么实现的呢?本文我们主要就介绍一下这部分内容.(1)锁表查询的代码有以下的形式:select count( ...

  7. Oracle锁表与解锁

    查看锁表语句:方法1:    select sess.sid,           sess.serial#,           lo.oracle_username,           lo.o ...

  8. Oracle锁表(转载)

    锁定类型               行级锁               表级锁行级锁         ---- 行被排他锁定         ----在某行的锁被释放之前,其他用户不能修改此行    ...

  9. oracle锁表查询,资源占用,连接会话,低效SQL等性能检查

    查询oracle用户名,机器名,锁表对象 select l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, l.os_user ...

随机推荐

  1. 如何判断网页中引入jquery

    直接上代码,不信自己测. <html xmlns="http://www.w3.org/1999/xhtml"><meta http-equiv="Co ...

  2. shp文件显示

    开发环境 Win7, VS2010 Sp1 QGIS 2.01 #include <qgsapplication.h> #include <qgsproviderregistry.h ...

  3. 抛弃阿里云,中国用户购买海外VPS的五个理由

    王掌柜在过去的五年多时间里,折腾过不少vps品牌,最开始玩的是一年一百多块钱的香港虚拟主机,后来业务量大了,开始折腾国内的小鸟云.阿里云.腾讯云.电信云.百度云主机,国外的linode\interse ...

  4. Openjudge-计算概论(A)-整数奇偶排序

    描述: 输入10个整数,彼此以空格分隔重新排序以后输出(也按空格分隔),要求:1.先输出其中的奇数,并按从大到小排列:2.然后输出其中的偶数,并按从小到大排列.输入任意排序的10个整数(0-100), ...

  5. java的string.split()分割特殊字符时注意点

    [1]单个符号作为分隔符         String address="上海|上海市|闵行区|吴中路";      String[] splitAddress=address.s ...

  6. mysql数据库的优化技术

    表的设计合理化(遵从3NF)<3范式> 1NF:表的列具有原子性,不可再分解(列的信息不能分解,只要是关系型的数据库就自动满足1NF) 2NF:表中的记录是唯一的,就满足2NF(通常我们设 ...

  7. BP神经网络代码

    close allclear allclcload x.txt; load y.txt; inputs = x';targets = y; % 创建一个模式识别网络(两层BP网络),同时给出中间层神经 ...

  8. 项目中 添加 swift代码 真机调试 错误

    错误: dyld: Library not loaded: @rpath/libswiftCore.dylib Referenced from: /private/var/mobile/Contain ...

  9. slam相关知识

    Kinect视觉SLAM技术介绍 http://www.open-open.com/news/view/ce76e2 本文介绍SLAM的历史.理论以及实现的方式,且主要介绍基于视觉(Kinect)的实 ...

  10. 在textarea的内容后面增加内容

    document.getElementById("result").value+=data+"\n>"; 本文为本人用来记录自己做的一些东西,如有不对的地 ...