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

不见得能查出,碰运气了

相关推荐
他们叫我技术总监31 分钟前
Oracle数据库常见问题实战:从连接错误到自动清理空闲会话
数据库·oracle
菲兹园长2 小时前
MySql(SQL)
数据库·sql·mysql
一只小bit3 小时前
MySQL表的操作:创建—修改—删除流程解析
数据库·mysql·oracle
做运维的阿瑞3 小时前
PostgreSQL 从入门到精通:Windows 环境下安装与使用指南
数据库·windows·postgresql
学编程的小鬼3 小时前
MySQL的快速入门
数据库·mysql
_Power_Y3 小时前
MySql复习及面试题学习
数据库·学习·mysql
学习编程的Kitty3 小时前
MySQL——数据类型和表的操作
数据库·mysql
程序新视界3 小时前
MySQL中,日期、时间与时间戳三种数据类型的区别
数据库·后端·mysql
lang201509284 小时前
MySQL 8.0性能优化终极指南
数据库·mysql·性能优化
Elastic 中国社区官方博客4 小时前
在 Elasticsearch 中改进 Agentic AI 工具的实验
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索