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

不见得能查出,碰运气了

相关推荐
娇娇yyyyyy3 分钟前
QT编程(20): Qt QListWidget QTreeWidget介绍
数据库·qt·microsoft
孤影过客4 分钟前
Flutter高性能任务管理APP开发实战代码解析
jvm·flutter·oracle
阿里云瑶池数据库5 分钟前
阿里云瑶池数据库KVCache亮相NVIDIA GTC 2026
数据库·阿里云
橙子家14 分钟前
行式存储(Row-based Storage)和列式存储(Column-base Storage)简介
数据库
l1t8 小时前
DeepSeek总结的 pg_regresql插件:真正可移植的 PostgreSQL 统计信息
数据库·postgresql
oradh9 小时前
Oracle 11.2.0.1版本升级至11.2.0.4_单机环境
数据库·oracle·oracle11g·oracle升级
l1t9 小时前
用docker安装测试crate数据库
数据库·docker·容器·cratedb
anzhxu9 小时前
QT数据库(三):QSqlQuery使用
数据库·qt·oracle
身如柳絮随风扬9 小时前
MySQL核心知识
数据库·mysql
德彪稳坐倒骑驴9 小时前
Oracle 11g安装
数据库·oracle