可以用Spotlight软件对数据库的运行状态进行监控。

当出现session锁时,我们要及时进行处理.

1. 查看哪些session锁:
SQL语句:select 'alter system kill session '''||sid||','||serial#||''';' from v$session where sid in (select sid from v$lock where block = 1);

SQL> select 'alter system kill session '''||sid||','||serial#||''';' from v$session where sid in (select sid from v$lock where block = 1);
'ALTERSYSTEMKILLSESSION'''||SID||','||SERIAL#||''';'
--------------------------------------------------------------------------------
alter system kill session '132,731';
alter system kill session '275,15205';
alter system kill session '308,206';
alter system kill session '407,3510';

2. 查看session锁.
sql语句:select s.sid, q.sql_text from v$sqltext q, v$session s
where q.address = s.sql_address
and s.sid = &sid
order by piece;

SQL> select s.sid,q.sql_text from v$sqltext q, v$session s where q.address = s.sql_address and s.sid in (select sid from v$lock where block = 1) order by piece;
        SID SQL_TEXT
---------- ----------------------------------------------------------------
       77 UPDATE PROFILE_USER SET ID=1,COMPANY_ID=2,CUSTOMER_ID=3,NAMED  
       77 _INSURED_ID=4,LOGIN=5,ROLE_ID=6,PASSWORD=7,EMAIL=8,TIME_ZON
       77 E=9 WHERE PROFILE_USER.ID=:34
3 rows selected.

3. kill锁的进程.
SQL语句:alter system kill session '77,22198';

SQL> alter system kill session '391,48398';
System altered.

4. 查看谁锁了谁。
select s1.username || [email='@']'@'[/email] || s1.machine
  || ' ( SID=' || s1.sid || ' )  is blocking '
  || s2.username || [email='@']'@'[/email] || s2.machine || ' ( SID=' || s2.sid || ' ) ' AS blocking_status
  from v$lock l1, v$session s1, v$lock l2, v$session s2
  where s1.sid=l1.sid and s2.sid=l2.sid
  and l1.BLOCK=1 and l2.request > 0
  and l1.id1 = l2.id1
  and l2.id2 = l2.id2 ;

注:
> : 重定向输出,将文件的标准输出重新定向输出到文件,或将数据文件作为另一程序的标准输入内容。
| :UNIX管道:将一文件的输出作为另一文件的输入.

在执行SQL语句试:alter system kill session '391,48398'(sid为391); 应当注意对于sid在100以下的应当谨慎,可能该进程对应某个application,如对应某个事务,可以kill.

------------------------------------------------------csdn 网友的SQL-------------------------------

SELECT   sn.username, m.SID,sn.SERIAL#, m.TYPE,
         DECODE (m.lmode,
                 0, 'None',
                 1, 'Null',
                 2, 'Row Share',
                 3, 'Row Excl.',
                 4, 'Share',
                 5, 'S/Row Excl.',
                 6, 'Exclusive',
                 lmode, LTRIM (TO_CHAR (lmode, '990'))
                ) lmode,
         DECODE (m.request,
                 0, 'None',
                 1, 'Null',
                 2, 'Row Share',
                 3, 'Row Excl.',
                 4, 'Share',
                 5, 'S/Row Excl.',
                 6, 'Exclusive',
                 request, LTRIM (TO_CHAR (m.request, '990'))
                ) request,
         m.id1, m.id2
    FROM v$session sn, v$lock m
   WHERE (sn.SID = m.SID AND m.request != 0)         --存在锁请求,即被阻塞
      OR (    sn.SID = m.SID                         --不存在锁请求,但是锁定的对象被其他会话请求锁定
          AND m.request = 0
          AND lmode != 4
          AND (id1, id2) IN (
                        SELECT s.id1, s.id2
                          FROM v$lock s
                         WHERE request != 0 AND s.id1 = m.id1
                               AND s.id2 = m.id2)
         )
ORDER BY id1, id2, m.request;

alter system kill session 'sid,SERIAL#';

转载于:https://www.cnblogs.com/spring3mvc/archive/2009/10/27/2414975.html

oracle 锁问题的解决相关推荐

  1. oracle锁表怎么解决,Oracle锁表问题的简捷处理技巧

    在开发Oracle数据库时,我们常遇到频繁操作的Oracle数据表,会出现Oracle锁表.现在就针对这一问题,提下个人的解决Oracle锁表的技巧. 首先问题分析: (1)锁的分析 ORACLE里锁 ...

  2. oracle 锁表如何解决_Java高并发解决什么方式

    对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了.而并发问题是绝大部分的程序员头疼的问题,但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研究 ...

  3. oracle 锁表如何解决_「技术分享」高并发下的接口幂等性解决方案

    高并发下的接口幂等性解决方案! 一.背景我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果.例如:前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果.我们发起 ...

  4. ORACLE锁学习总结

    ORACLE锁机制 http://www.cnblogs.com/gengyulong/archive/2011/04/07/2007586.html 专业名词: 数据库 事务 并发 锁 并发控制 排 ...

  5. Oracle锁表解决方法的详细记录详解

    一淘模板网给大家带来了关于Oracle的相关知识,在开发Oracle数据库时,我们常遇到频繁操作的Oracle数据表,会出现Oracle锁表,下面给大家介绍了关于Oracle锁表解决方法的相关资料,希 ...

  6. ORACLE锁表解决办法

    ORACLE锁表解决办法 [61000][54] ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效 报错原因:对表的操作短时间内太过快速和频繁而导致的数据库锁表. ...

  7. oracle锁表原因,解决方法

    1.oracle数据库表在操作insert  update .delete 时忘记提交事务或者回滚,就会发生锁表  2.锁表的原理是 数据库使用独占式封锁机制,当执行上面的语句时,对表进行锁住,直到发 ...

  8. oracle未提交锁表,解决ORACLE锁表问题

    转载备用 在ORACLE操作中经常会发生,尚未提交(或回滚)数据Session异常关闭的情况 会导致表中的某些数据被锁死. 解决办法是用sys登录后,先找出lock的Session. select o ...

  9. 解决Oracle锁表问题

    文章目录 数据库操作语句的分类 oracle表在什么情况下会被锁住 Oracle锁表查询和解锁 通过第一步查出来的信息找到被锁的表之后执行如下语句解锁该表: 锁的模式 数据库操作语句的分类 DDL:数 ...

最新文章

  1. 关于matlab向文件写入数据的方法——留着备用
  2. 对话腾讯AI Lab:即将开源自动化模型压缩框架PocketFlow,加速效果可达50%
  3. 标准模板库(STL)学习指南之vector向量
  4. Android mediaRecorder框架简述(二)
  5. Asp.Net Core之Identity应用(下篇)
  6. shell与其他语言不同点
  7. Java中逗号运算符的使用
  8. c oracle更新参数化,Dapper的参数化更新和插入?
  9. python爬虫网络出错怎么办_python网络爬虫(3)python爬虫遇到的各种问题(python版本、进程等)...
  10. 打开plsqldev报错解决
  11. kX3552 + HiFi级播放器 + wifi无线保真= 实战HiFi音乐娱乐欣赏
  12. 如何去掉word标题前面的小黑点
  13. PR预设:100种缩放旋转移动摇晃变形分割转场预设Transitions Pro for win/Mac​
  14. 基于百度AI开放平台的人脸识别实验
  15. 神经网络与深度学习-吴岸城
  16. 详解 n 维向量、n 维数组 和 矩阵的维度
  17. pycharm 更换 pip 下载源
  18. 《XSS跨站脚本攻击剖析与防御》—第6章6.1节参 考 文 献
  19. 物联网云平台的角色有哪些?
  20. js将数字金额转换为大写人民币

热门文章

  1. 2020 年“我爱计算机视觉”视频号最受欢迎视频 Top10!
  2. 重读GhostNet:使用轻量操作代替部分传统卷积层生成冗余特征以减少计算量
  3. 精英赛上线|冠军万元奖金
  4. 一文梳理水下目标检测方法
  5. 视频 | MIT计算机科学速成课
  6. NLP基础|中英文词向量评测理论与实践
  7. python__画图表可参考(转自:寒小阳 逻辑回归应用之Kaggle泰坦尼克之灾)
  8. python的flask服务器修改,python-Nginx,uWSGI,Flask应用程序直到服务器重启后才会显示更改...
  9. c语言跳至表域跳几个字符,c语言学习最好资料.doc
  10. python 浏览器自动化 弹窗控制_Selenium2+Python自动化-处理浏览器弹窗(转载)