解决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'

不见得能查出,碰运气了

相关推荐
JIngJaneIL7 小时前
基于springboot + vue古城景区管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
微学AI8 小时前
复杂时序场景的突围:金仓数据库是凭借什么超越InfluxDB?
数据库
廋到被风吹走8 小时前
【数据库】【Redis】定位、优势、场景与持久化机制解析
数据库·redis·缓存
有想法的py工程师9 小时前
PostgreSQL + Debezium CDC 踩坑总结
数据库·postgresql
Nandeska9 小时前
2、数据库的索引与底层数据结构
数据结构·数据库
小卒过河01049 小时前
使用apache nifi 从数据库文件表路径拉取远程文件至远程服务器目的地址
运维·服务器·数据库
过期动态9 小时前
JDBC高级篇:优化、封装与事务全流程指南
android·java·开发语言·数据库·python·mysql
Mr.朱鹏10 小时前
SQL深度分页问题案例实战
java·数据库·spring boot·sql·spring·spring cloud·kafka
一位代码10 小时前
mysql | 常见日期函数使用及格式转换方法
数据库·mysql
SelectDB10 小时前
Apache Doris 4.0.2 版本正式发布
数据库·人工智能