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;
复制代码
 

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

复制代码
 
相关推荐
码农黛兮_46几秒前
数据库数据清洗、预处理与质量监控、 数据质量的核心概念
数据库
张哈大2 小时前
【 Redis | 实战篇 秒杀实现 】
数据库·redis·缓存
weixin_472339462 小时前
Postgresql与openguass对比
数据库·postgresql
惊起白鸽4507 小时前
MySQL全量,增量备份与恢复
数据库·mysql
暮雨疏桐8 小时前
MySQL SQL Mode及其说明
数据库·sql·mysql·sql mode
Tangcan-8 小时前
【MySQL】数据库基础
数据库·mysql
蔡蓝9 小时前
Mysql的索引,慢查询和数据库表的设计以及乐观锁和悲观锁
数据库·mysql
jstart千语9 小时前
【Redis】分布式锁的实现
数据库·redis·分布式
一把年纪学编程10 小时前
【牛马技巧】word统计每一段的字数接近“字数统计”
前端·数据库·word
极小狐10 小时前
极狐GitLab 通用软件包存储库功能介绍
java·数据库·c#·gitlab·maven