Oracle 物化视图无法删除,无法更新解决方法

本文介绍了一种解决Oracle数据库中物化视图死锁的方法,包括通过PL/SQL登录sys用户,查询并终止死锁的会话,以及在服务器上运行特定命令解锁物化视图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

物化视图我习惯在字段最后面加一个

to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') update_ts

来区别是否更新,也方便他人知道数据是否更新

但是有的时候因为某些原因,导致物化视图死锁了,无法自动更新,也无法删除重建

在网上找了好久也没有找到有效的解决方法,最后各种拼在一起总算是解决了。

下面是解决方法:

1、使用PL/SQL登录 sys 用户(不知道密码或者忘记的可以参考 https://www.cnblogs.com/jiangxinnju/p/7928029.html 进行重置密码)

2、select * from dba_jobs_running;  查询正在运行的工作流,应该是死锁导致一直在等待运行

3、根据第二步查询出来的sid进行查询spid

 

select s.sid,s.serial#,p.spid from v$session s left join v$process p on s.paddr=p.addr where sid=114;


4、删除session

alter system kill session '114,35605';  (114为第三步的sid,35605为第三步的serial#)

5、运行服务器的cmd 

orakill orcl 6800  (orcl为数据库实例名,默认是orcl,6800是第三步查询出来的spid)

 

最终  物化视图被解锁了,想做什么操作都可以啦~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值