• 快照库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,050TM1234 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问题依次全部解决,大家参照学习,禁止转载。

  • 相关阅读:
    Python好酷|JSON字段校验库DeepDiff
    如何推动团队测试转型自动化测试
    Python好酷|allpairspy一款高效的正交实验法生成用例工具
    性能测试很简单JMeter性能测试实践
    接口测试框架开发实践2:接口自动化测试框架设计思路
    vscode添加python文件头模板(Mac版)
    Python|200行代码实现贪吃蛇小游戏
    如何有效提升软件测试质量?

    我的正版游戏
  • 原文地址:https://www.cnblogs.com/lhdz_bj/p/8716711.html
Copyright © 2020-2023  润新知