解决Oracle死锁问题

增加人员信息即死锁,排查过程如下(表名字为A001):

1、根据表查询死锁进程ID

select b.owner,b.object_name,a.session_id,a.locked_mode

from v$locked_object a,dba_objects b

where b.object_id = a.object_id and object_name='A080'

其中locked_mode:

"1":Select。

"2":Select for update,Lock For Update,Lock Row Share

"3":Insert, Update, Delete, Lock Row Exclusive

"4":Create Index, Lock Share

locked_mode为2,3,4不影响DML(insert,delete,update,select)操作, 但DDL(alter,drop等)操作会提示ora-00054:"resource busy and acquire with NOWAIT specified"

"5"::Lock Share Row Exclusive

"6":Alter table, Drop table, Drop Index, Truncate table, Lock Exclusive

2、根据ID查询进程具体信息

select b.username,b.sid,b.serial#,logon_time

from v$session b

where sid='9'

这时可以杀进程

ALTER SYSTEM KILL SESSION '9,5' IMMEDIATE;

3、查死锁语句

SELECT s.sid, s.serial#, s.username, s.sql_id, s.sql_child_number, s.program, t.used_ublk

FROM vsession s, vtransaction t

WHERE s.saddr = t.ses_addr and sid='579'

不见得能查出,碰运气了

相关推荐
猿小喵1 分钟前
TDSQL-MySQL相对MySQL5.7版本主从复制性能优化
数据库·mysql·性能优化
姓蔡小朋友5 分钟前
MySQL读写锁(元数据锁、意向锁、行锁、间隙锁、临键锁)
数据库·mysql
山峰哥7 分钟前
SQL性能优化实战:从索引策略到查询优化案例全解析
大数据·数据库·sql·oracle·性能优化·架构
rannn_1119 分钟前
【SQL题解】力扣高频 SQL 50题|DAY5
数据库·后端·sql·leetcode·题解
松涛和鸣9 分钟前
DAY38 TCP Network Programming
linux·网络·数据库·网络协议·tcp/ip·算法
ss27313 分钟前
ThreadPoolExecutor七大核心参数:从源码看线程池的设计
java·数据库·算法
+VX:Fegn089514 分钟前
计算机毕业设计|基于springboot + vue健康茶饮销售管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
陌路2023 分钟前
redis的哨兵模式
数据库·redis·缓存
ohoy24 分钟前
mysql数据存在则更新、不存在插入
数据库·mysql