1、未提交事务引起的表的行锁

1.1、判断哪个SESSION执行了DML(Insert/Update/Delete) 但是未提交 (Commit ),引起的行锁

--找到修改了数据,但是未提交的Session,选择WAIT_CALSS='Idle',也就是Session处于休息状态,但是有锁定的表

SELECT A.SID,A.SERIAL#,A.USERNAME,A.EVENT,A.WAIT_CLASS,A.SECONDS_IN_WAIT,A.PREV_EXEC_START,b.LOCKED_MODE,C.OWNER,C.OBJECT_NAME,C.OBJECT_TYPE

FROM V$SESSION A

INNER JOIN V$LOCKED_OBJECT B

ON A.SID=b.SESSION_ID

INNER JOIN DBA_OBJECTS C

ON B.OBJECT_ID=c.OBJECT_ID

WHERE A.WAIT_CLASS='Idle'

AND A.SECONDS_IN_WAIT>10/*SESSION空闲后一段时间还锁定的才算有问题,这里随便给了个数值10秒*/

如果确认这些SESSION确实有问题,可以直接KILL掉,传入前面语句的SID和SERIAL#

ALTER SYSTEM KILL SESSION 'SID,SERIAL#'

如上图,我杀了这两个

ALTER SYSTEM KILL SESSION '139,3558' ;

注:ORACLE有个很有趣的地方,就是KILL SESSION的时候需要填“”SERIAL#“,是为了避免刚刚查询的时候获得了一个SID,然后你打算杀掉他,在这个时间之间,打算杀掉的SESSION结束了断开连接,然后新的SESSION复用了这个SID,也就是避免误杀,SQL SERVER 直接KILL可以了。

2、判断哪些SESSION被阻塞了,且定位到是谁阻塞了,是由于哪个表哪个行引起的阻塞

--当SESSION被阻塞,通过ROW_WAIT_OBJ#,ROW_WAIT_FILE#,ROW_WAIT_BLOCK#,ROW_WAIT_ROW#这几个字段找到ROWID,然后通过ROWID找到被锁定的记录

SELECT SID,SERIAL#,AUDSID,PADDR,USER#,USERNAME,EVENT,WAIT_CLASS,SECONDS_IN_WAIT,ROW_WAIT_OBJ#,ROW_WAIT_FILE#,ROW_WAIT_BLOCK#,ROW_WAIT_ROW#,

BLOCKING_SESSION_STATUS,BLOCKING_INSTANCE,BLOCKING_SESSION,C.OWNER,C.OBJECT_NAME,C.OBJECT_TYPE

,dbms_rowid.rowid_create(1,ROW_WAIT_OBJ#,ROW_WAIT_FILE#,ROW_WAIT_BLOCK#,ROW_WAIT_ROW#)

FROM V$SESSION A

INNER JOIN V$LOCKED_OBJECT B

ON A.SID=b.SESSION_ID

INNER JOIN DBA_OBJECTS C

ON B.OBJECT_ID=c.OBJECT_ID

WHERE BLOCKING_SESSION IS NOT NULL ;

通过上面返回的OBJECT_NAME 和ROWID,知道是由于那个行引起的阻塞

SELECT * FROM 前面返回的表名称

where ROWID=前面返回的ROWID

oracle运维平台开发,Oracle数据库运维相关推荐

  1. Ansible 企业级自动化运维平台开发实战

    一.运维开发 普通的运维方式:使用Xshell或者脚本去操作服务器. 运维开发的方式:可以实现把运维的工作Web化. 运维开发优点:可以把运维工作简单化.运维工作规划化. 运维开发: 负责具体的产品的 ...

  2. ducter运维平台_开源自动运维管理平台_自动化运维平台 开源

    专访运维管理开源平台负责人刁文波:Ducter能 550x364 - 47KB - JPEG 专访运维管理开源平台负责人刁文波:Ducter能 550x381 - 45KB - JPEG 光宇游戏黄振 ...

  3. 为什么要搞数据库运维平台 附带招聘信息

    昨天的招聘信息,相信老粉们都看见了,目前所在的新公司在这方面是有投入的,那么数据库运维平台到底是一个什么东西,与我们商业的一些数据库运维平台之间的区别在哪里,并且这个行业的到底有没有发展,我有一些想法 ...

  4. 低代码、高敏捷的智和网管平台,运维平台二次开发极简化

    随着信息化进程加快,企业户业务规模的不断扩大,整个IT运维环境变得日益复杂,传统的被动.孤立.半自动式的运维手段已经无法满足运维人员实际运维需求,自动.智能化运维势在必行.但是,任何一款运维软件都无法 ...

  5. 智能化IT运维平台建设方案,基于智和信通运维体系的高敏捷二次开发

    随着企业信息进程不断加速,运维人员需要面对越来越复杂的业务和越来越多样化的用户需求,不断扩展的应用需要越来越合理的模式.越来越智能的工具来保障运维能灵活便捷.安全稳定地开展.企业网络规模的不断扩大,从 ...

  6. SSM医院移动收费运维平台毕业设计源码161045

    目  录 摘要 1 绪论 1.1 开发意义 1.2研究现状 1.3论文结构与章节安排 2医院移动收费运维平台系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流 ...

  7. DevOps之运维平台构建

    如今很多人认为devops将彻底取代传统运维,我不这么认为,在我看来devops只是很大程度上的代替了传统运维的手工操作,运维人员只需写好自动化运维脚本,利用自动化工具(zabbix,elk,ansi ...

  8. SSM+医院移动收费运维平台 毕业设计-附源码161045

    目  录 摘要 1 绪论 1.1 开发意义 1.2研究现状 1.3论文结构与章节安排 2医院移动收费运维平台系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流 ...

  9. 基于Python的企业级运维平台 了解一下?

    2018年3月21-22日,由中国信息通信研究院主办.中国通信标准化协会支持的"OSCAR云计算开源产业大会"在国家会议中心举行.DevOps论坛作为分论坛之一,于21日下午召开. ...

最新文章

  1. 【Qt】QT_BEGIN_NAMESPACE 和 QT_END_NAMESPACE
  2. OpenCV入门要掌握的基本函数
  3. Science:基于微生物条形码系统的高分辨率物源追踪技术
  4. Apollo本地jar包启动方法
  5. 代码的坏味道:控制结构嵌套太深
  6. 制作登录注册密码找回网站常用控件
  7. Fedora和Red Hat Enterprise Linux实用指南(第6版)(套装上下册)火热上市!!!!
  8. 错误与异常_2-7选择题
  9. python bytes转int_Python学习进阶教程(11)—数值类型
  10. 基于SpringBoot的外卖点餐小程序 餐厅点单小程序
  11. 帐号登录:oAuth2.0流程
  12. Tableau Desktop 10.4.2 的安装和激活
  13. WPS for linux 安装及windows字体添加
  14. 【95】太空射击游戏——玩家代码
  15. base64还原成图片
  16. 支持服务器和客户端杀毒软件,服务器上小心使用杀毒软件和软件防火墙
  17. 亚马逊产品该如何定价?这9种定价策略你一定要了解哦!
  18. 倍福TwinCAT3中使用久同伺服
  19. 今日头条“偷偷复活”内涵段子,那快播是不是也能重生了?
  20. UVA, 10286 Trouble with a Pentagon

热门文章

  1. 基於MySQL+PHP的羽毛球費用查询网站设计
  2. HTML和CSS入门
  3. Pandas知识点-统计运算函数
  4. ExtJs2.0学习系列(12)--Ext.TreePanel之第一式
  5. JAVA中ByteArrayInputStream和ByteArrayOutputStream详解
  6. oracle的临时表和With As总结
  7. Malta中any函数
  8. Matlab中用到的bsxfun函数
  9. Opencv--resize函数五种插值算法实现
  10. Ubuntu16.04 sudo apt-get install lib***-dev安装失败,无法锁定文件,sudo apt-get update 更新失败也无法解决