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

不见得能查出,碰运气了

相关推荐
2501_941111514 分钟前
Python多线程与多进程:如何选择?(GIL全局解释器锁详解)
jvm·数据库·python
2501_9411113311 分钟前
使用Python处理计算机图形学(PIL/Pillow)
jvm·数据库·python
♡喜欢做梦13 分钟前
MyBatis操作数据库(入门)
java·数据库·mybatis
敲上瘾27 分钟前
MySQL事务全攻略:ACID特性、隔离级别与并发控制
linux·数据库·mysql·安全
懒羊羊不懒@40 分钟前
【MySQL | 基础】事务
数据库·mysql
lucky_syq42 分钟前
再谈向量数据库:AI时代的存储新引擎
大数据·数据库·人工智能
v***446743 分钟前
【Mysql】:如何恢复误删的数据?
数据库·mysql
x***010644 分钟前
使用 MySQL 从 JSON 字符串提取数据
mysql·oracle·json
b***67641 小时前
使用 Canal 实时从 MySql 向其它库同步数据
数据库·mysql
2501_941111371 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python