快照库MV不能成功刷新问题的解决

前几天,一个用户找到我,说他们的物化视图不能刷新了,这得从几天前主库的一次意外down机说起(另文说明),前几天,用户现场的一个中心库因某原因意外down掉了,当时短期内对中心库进行了重启修复,没有造成数据丢失,但重启后,围绕中心库的几个快照库不能刷新MV了,让我帮忙解决下,没办法,用户就是上帝,用户的需求就是命令,开工吧。
首先,我看了一个快照库上的MV,都是从中心库往快照库中同步数据的,并且也对一个数据量小的MV进行了测试,确实是不可以刷新,一直卡在那里不动,但在快照库上,通过定义MV的SELECT语句,可以快速的从中心库查到数据,有点纳闷儿,怎么回事儿呢?继续排查:

select * from v$Lock where type='TM' and id1='1234';


看到结果,发现了线索,如下:
ADDR          KADDR         SID   TYPE   ID1    ID2    LMODE  REQUEST  CTIME     BLOCK
-------------------------------------------------------------------------------------- 

64B3AB44 64B3AB5C1,050 TM1234 0 3 0   370500    0


如果有的同学还没发现线索,那么继续:

select * from v$session where sid=1050;


这条语句的结果较长,我就不贴在这里了,通过结果的SCHEMANAME,MACHINE,PROGRAME,TYPE,LOGON_TIME,STATE等信息,基本可以确定问题所在了,否则,可以通过SQL_ID继续检查:

select * from v$sql where sql_id='bsw0sjtftg6vw'


通过以上语句,可以获取到具体的SQL,这样就能更清楚这些会话当时所做的工作,好了,确定问题所在,我们总的解决:

alter system kill session 'sid,serial#';


命令发出去,居然kill不掉,v$session虽然显示killed,但依然能查到该session,并且,再次刷新MV时,依然卡在那里,通过v$session的process,可以知道该sid对应的PID,于是:
kill -9 pid
再次测试MV的刷新,成功解决,其他几个快照库都如法炮制,MV问题依次全部解决,大家参照学习, 禁止转载。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lhdz_bj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值