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

不见得能查出,碰运气了

相关推荐
信阳农夫几秒前
Django中select_related 的作用
数据库·django·sqlite
一张假钞4 小时前
Python3操作MongoDB批量upsert
开发语言·数据库·python·mongodb
Beronhider4 小时前
SQLZoo-SELECT within SELECT Tutorial
数据库·sql·mysql·数据分析
atom goper5 小时前
Redis混合持久化
数据库·redis·mybatis
yqcoder5 小时前
MongoDB 的基本概念
数据库·mongodb
JavaGuide6 小时前
Spring 项目接入 DeepSeek,分享两种超简单的方式!
数据库·python·spring
Minxinbb7 小时前
MySQL 中可以通过添加主键来节省磁盘空间吗?(译文)
数据库·mysql·dba
qq_13948428827 小时前
springboot239-springboot在线医疗问答平台(源码+论文+PPT+部署讲解等)
java·数据库·spring boot·后端·spring·maven·intellij-idea
陈老师还在写代码8 小时前
讲解下MySql的外连接查询在SpringBoot中的使用情况
数据库·spring boot·mysql
思考的Joey8 小时前
MongoDB聚合查询解析:多维数据关联和聚合
数据库