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

不见得能查出,碰运气了

相关推荐
爱打代码的小林18 分钟前
python基础(mysql)
数据库·mysql
码农阿豪20 分钟前
从 Oracle 到金仓:一次真实迁移经历的复盘与思考
数据库·oracle·金仓数据库
·云扬·25 分钟前
深入理解InnoDB锁机制:从理论到实验验证
数据库·mysql
一颗宁檬不酸28 分钟前
Oracle PL/SQL 过程与游标实战分享:马拉松赛事管理系统
数据库·sql·oracle
染指111029 分钟前
72.渗透-Mysql基础-选择数据库
数据库·oracle
DFT计算杂谈39 分钟前
ABINIT能带计算数据处理脚本
数据库·人工智能
BioRunYiXue39 分钟前
双荧光素酶报告基因实验
java·运维·服务器·数据库·人工智能·数据挖掘·eclipse
数据皮皮侠1 小时前
政府创新采购数据库(2016-2024)
大数据·数据库·人工智能·制造·微信开放平台
kkkkkkkkl241 小时前
MySQL 深分页查询优化实践与经验总结
数据库·mysql
数据知道1 小时前
MySQL业务数据量增长到单表成为瓶颈时,该如何做?
数据库·mysql·mysql优化