oracle 解锁表

操作的前提 用 sys 用户 以 SYSDBA 角色登录

第一种解锁方式

1.查询被锁的表

复制代码
select object_name,machine,s.sid,s.serial#
from v$locked_object l,dba_objects o ,v$session s
where l.object_id = o.object_id and l.session_id=s.sid;

2.查询那个session引起表被锁

复制代码
select b.username,b.sid,b.serial#,logon_time
from v$locked_object a,v$session b
where a.session_id = b.sid order by b.logon_time;

select object_name,machine,s.sid,s.serial#
from v$locked_object l,dba_objects o ,v$session s
where l.object_id = o.object_id and l.session_id=s.sid;

3.解锁表

复制代码
ALTER system kill session '614, 50281';

第二种解锁表的方式

1. 查看被锁的表

复制代码
SELECT p.spid, a.serial#, c.object_name, b.session_id, b.oracle_username,b.os_user_name
 FROM v$process p, v$session a, v$locked_object b, all_objects c
 WHERE p.addr = a.paddr 
 AND a.process = b.process
 AND c.object_id = b.object_id;

2.批量解锁

复制代码
declare cursor mycur is   
select b.sid,b.serial#   
  from v$locked_object a,v$session b   
  where a.session_id = b.sid group by b.sid,b.serial#;   
   
begin   
  for cur in mycur   
    loop     
     execute immediate ( 'alter system  kill session  '''||cur.sid || ','|| cur.SERIAL# ||''' ');   
     end loop;   
end;
复制代码
 

觉得文章实用,请在右上方点个赞

复制代码
 
相关推荐
KENYCHEN奉孝3 分钟前
一个基于Django的进销存管理系统Demo实现
数据库·sqlite
m01ly4 分钟前
Django 使用 Celery 完成异步任务或定时任务
数据库·django·sqlite
自由与自然7 分钟前
乐观锁与悲观锁的使用场景
java·服务器·数据库
Yasen^o3 小时前
Redis高可用
数据库·redis·缓存
.生产的驴7 小时前
SpringBoot 接口限流Lua脚本接合Redis 服务熔断 自定义注解 接口保护
java·大数据·数据库·spring boot·redis·后端·lua
施嘉伟7 小时前
Oracle 表空间高水位收缩全攻略
数据库·oracle
apcipot_rain7 小时前
【数据库原理及安全实验】实验二 数据库的语句操作
数据库·安全·oracle
Dav_20998 小时前
dav_1_MySQL数据库排查cpu消耗高的sql
数据库·sql·mysql
小诸葛的博客10 小时前
Go 语言中的select是做什么的
数据库·sql·golang
独泪了无痕11 小时前
数据库开发必备:理解DDL、DML、DQL和DCL
数据库·后端