Oracle中表被锁住及解锁方法

在新项目中,有个新同事写的service,其中要对数据库进行update或者insert的操作时,他并 没有对该方法添加@Transactional(readOnly = false),此时插入数据保存的时候,就会出现表被锁住,因此需要解锁,其中还需要对表进行update或者insert的方法进行事务注解的添加。
当数据库表被锁住的时候,应该按照如下的步骤操作,来解锁表:

--1、查看数据库锁,诊断锁的来源及类型:
SELECT OBJECT_ID, SESSION_ID, LOCKED_MODE FROM V$LOCKED_OBJECT;

--2、找出数据库的serial#,以备杀死:
SELECT T2.USERNAME, T2.SID, T2.SERIAL#, T2.LOGON_TIME
FROM V$LOCKED_OBJECT T1, V$SESSION T2
WHERE T1.SESSION_ID = T2.SID
ORDER BY T2.LOGON_TIME;

--3、杀死该session, ps: sid ,serial# --为步骤2中查出来的值
  alter system kill session 'sid,serial#'

--示例
alter system kill session '24,111'; 

 

出处:https://blog.csdn.net/u012934325/article/details/81015484

posted on 2021-03-26 16:58  jack_Meng  阅读(193)  评论(0编辑  收藏  举报

导航