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

不见得能查出,碰运气了

相关推荐
韩立学长6 分钟前
基于Springboot流浪动物救助系统o8g44kwc(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
聆风吟º37 分钟前
金仓数据库:以 “多模融合” 重塑国产文档数据库新标杆
数据库·重构·kingbasees
子沫202042 分钟前
使用mybatis-plus、mybatis插入数据库时加密,查询数据库时解密,自定义TypeHandler 加解密使用
数据库·mybatis·mybatis-plus
清风拂山岗 明月照大江43 分钟前
MySQL运维
运维·数据库·mysql
小伍_Five1 小时前
《NoSQL数据库技术与应用(黑马程序员)》课后习题答案完整版
数据库·nosql
oas11 小时前
山东大学软件学院2024-2025非关系型数据库期末考试(限选)
数据库·nosql
crossaspeed1 小时前
MySql三大日志——(八股)
数据库·mysql
Modeler·X1 小时前
关系型与非关系型数据库终极对决
数据库·人工智能
梓潇涵枫2 小时前
pg数据库一键迁移脚本
数据库
Savvy..3 小时前
Day16若依-帝可得
数据库