Oracle 数据库的锁排查方法

news/2024/7/24 10:15:49 标签: sql

关键字

oracle lock

问题描述

Oracle 数据库上锁问题如何排查

解决问题思路

准备数据
create table lock_test(name varchar(10),age varchar(10));

insert into lock_test values('ff','10');
insert into lock_test values('yy','20');
insert into lock_test values('ll','30');


Oracle 会话默认开启事务:
session1:
update lock_test set age = 'session1' where name = 'ff';

session2:
update lock_test set age = 'session2' where name = 'ff';

session2 因为更新同一行数据肯定 pending



-- 查新活跃会话
select s.sid,
       s.sql_id,
       s.SQL_CHILD_NUMBER CHILD,
       s.USERNAME,s.CLIENT_INFO,
       s.LOGON_TIME,
       s.EVENT,
       s.BLOCKING_SESSION BLOCK,
       v.SQL_TEXT
 from V$SQL v right join v$session s  on v.sql_id=s.sql_id
 where  s.WAIT_CLASS<>'Idle'
 group by s.sid,s.sql_id,s.SQL_CHILD_NUMBER,s.USERNAME,s.CLIENT_INFO,s.LOGON_TIME,s.EVENT,s.BLOCKING_SESSION,v.SQL_TEXT;
 
 
|SID|SQL_ID       |CHILD|USERNAME|CLIENT_INFO|LOGON_TIME             |EVENT                        |BLOCK|SQL_TEXT                                                                                                                                                                                                                                                                                                                                                                                                  |
|---|-------------|-----|--------|-----------|-----------------------|-----------------------------|-----|-----------------------------------------------------------
|8  |5cnbp94b459wf|0    |ADMIN   |           |2023-09-22 09:47:44.000|enq: TX - row lock contention|1,837|update lock_test set age = 'session2' where name = 'ff'                                                                                                                                                                                                                                                                                                                                                   |




-- 查看正在锁的会话
SELECT * FROM V$SESSION_BLOCKERS;
SELECT * FROM V$SESSION_BLOCKERS  WHERE  BLOCKER_SID  NOT IN (SELECT SID  FROM V$SESSION_BLOCKERS);

|SID|SESS_SERIAL#|WAIT_ID|WAIT_EVENT|WAIT_EVENT_TEXT              |BLOCKER_INSTANCE_ID|BLOCKER_SID|BLOCKER_SESS_SERIAL#|CON_ID|
|---|------------|-------|----------|-----------------------------|-------------------|-----------|--------------------|------|
|8  |59,610      |43     |307       |enq: TX - row lock contention|1                  |1,837      |43,494              |0     |


-- 杀掉SESSION
SELECT DISTINCT  'ALTER SYSTEM KILL SESSION ''' || a.BLOCKER_SID  || ',' ||a."BLOCKER_SESS_SERIAL#" || ''';' FROM V$SESSION_BLOCKERS a ;

|'ALTERSYSTEMKILLSESSION'''||A.BLOCKER_SID||','||A."BLOCKER_SESS_SERIAL#"||''';'|
|-------------------------------------------------------------------------------|
|ALTER SYSTEM KILL SESSION '1837,43494';                                        |





模拟二
session1:
update lock_test set age = 'session1' where name = 'ff';

session2:
alter table lock_test add  name1 varchar(100);


以上方法可以查询处理

问题总结

Oracle 数据库的锁排查方法


http://www.niftyadmin.cn/n/5121740.html

相关文章

以数据赋能,星辰天合推进智慧化校园建设

近日&#xff0c;上海市高等教育学会校园网络专业委员会 2023 年度学术年会在上海举办&#xff0c;本次会议以“数智赋能教育 生成美好未来”为主题&#xff0c;围绕 AI 与教育融合、高校数字化转型创新发展等内容进行了专业研讨。 XSKY星辰天合解决方案总监李瑞宇作了《应用融…

C++-openssl-aes-加密解密

hmac Hash-based Message Authentication Code MAC 定义&#xff1a; Message Authentication Code 一种确认完整性并进行认证的技术。 1.openssl基本版 加密解密 #include "openssl/rand.h" #include "openssl/md5.h" #include "openssl/hmac.h…

基于 Appium 的 Android UI 自动化测试!

自动化测试是研发人员进行质量保障的重要一环&#xff0c;良好的自动化测试机制能够让开发者及早发现编码中的逻辑缺陷&#xff0c;将风险前置。日常研发中&#xff0c;由于快速迭代的原因&#xff0c;我们经常需要在各个业务线上进行主流程回归测试&#xff0c;目前这种测试大…

开关柜无源无线测温有几种技术方式?

关柜无源无线测温装置目前市场上常用的有三种技术方式&#xff1a;表面声波无线测温、温差供电式无线测温、感应取电式无线测温 一、声表面波测温原理&#xff1a; 声表面波温度传感器由叉指换能器、反射栅及压电基板组成。声表面波传感器经天线接收到外部激励信号后&#xff…

C# 基于腾讯云人脸核身和百度云证件识别技术相结合的 API 实现

目录 腾讯云人脸核身技术 Craneoffice.net 采用的识别方式 1、活体人脸核身(权威库)&#xff1a; 2、活体人脸比对&#xff1a; 3、照片人脸核身(权威库)&#xff1a; 调用成本 百度云身份证识别 调用成本 相关结合点 核心代码 实现调用人脸核身API的示例 实现调用身…

I/O设备的概念和分类,I/O控制器

文章目录 1.什么是I/O设备2.按使用特性分类1.人机交互类外部设备2.存储设备3.网络通信设备 3.按传输速率分类1.低速设备:2.中速设备:3.高速设备: 4.按信息交换的单位分类1.块设备:2.字符设备: 5.I/O设备的机械部件6.I/O设备的电子部件&#xff08;I/O控制器&#xff09;1.接收和…

Java New对象分配内存流程

一、流程图 二、流程介绍 1、进行逃逸分析&#xff0c;判断是否能够分配到栈上&#xff1a; Y&#xff1a; 如果能分配到栈上&#xff0c;则进行分配。等方法出栈时&#xff0c;对象内存销毁&#xff0c;可有效减少GC的次数。 N&#xff1a;无法分配到栈上&#xff0c;则判断是…