oracle kill权限不足,oracle 出现锁表甚至kill 操作无效的处理方式

问题:

给oracle数据库插入海量数据时,发现归档日志剩余空间不足,所以停止执行,但是等待了很长时间,锁仍然没有被释放;

解决:

(1)查看被锁的信息:

select * from v$locked_object;

通过字段查看到锁表者的操作信息

SESSION_ID :需要在v$session表中查看的 sid 值,我查到的值为478

ORACLE_USERNAME :锁表者使用的oracle账号

OS_USER_NAME:锁表这操作系统的用户名称

(2)通过上述信息锁定到部分锁表者,若仍然无法确定可以再查看:

select * from v$session t where sid = '478'

查看需要处理事务的几个字段:

sid ,SERIAL# :这两个字段是用来杀进程的字段。

PROGRAM :查看到使用者使用的工具

PREV_HASH_VALUE:通过这个字段在查看出哪个sql语句执行的锁表

3、查看到相关锁表语句:

select * from v$sql where hash_value =‘PREV_HASH_VALUE’

4、确定可以去掉的,不影响其他业务可以执行:

alter system kill session '478,13';

这里的这两个数字分别是sid ,SERIAL# 。

5、正常情况下到这一步就可以完成相关解锁的操作,如果提示无法操作可以查看:

select pro.spid from v$session ses,v$process pro where ses.sid=478 and ses.paddr=pro.addr;

这里sid就是上面1的 SESSION_ID 。

查出 spid 后再在linux中查看 相关进程的信息

ps -ef|grep spid

sid是上面的sid然后可以杀掉这个进程

KILL -9 'SPID'

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值