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

不见得能查出,碰运气了

相关推荐
cqsztech7 小时前
windows上主机名长度超过16个字符导致连接报:ORA-12518
oracle
青春:一叶知秋8 小时前
【Redis存储】List列表
数据库·redis·缓存
爆更小哇10 小时前
MyBatis的TypeHandler :优雅地实现数据加密与解密
数据库·后端·mybatis
likuolei11 小时前
Eclipse 创建 Java 接口
java·数据库·eclipse
w***153111 小时前
Spring boot启动原理及相关组件
数据库·spring boot·后端
q***656911 小时前
PostgreSQL 17 发布了!非常稳定的版本
数据库·postgresql
云飞云共享云桌面12 小时前
如何降低非标自动化工厂的研发软件采购成本
运维·服务器·网络·数据库·性能优化·自动化
泰克教育官方账号12 小时前
泰涨知识 | 什么是自动化巡检?
运维·服务器·数据库
oneslide12 小时前
分享一个MySQL数据库备份恢复脚本--II
数据库·mysql
Gauss松鼠会12 小时前
【GaussDB】使用DBLINK连接到ORACLE
数据库·sql·database·gaussdb