oracle 物化视图不能正常刷新,状态为BROKEN

1、 问题描述:用户反馈之前定时刷新的物化视图现在不能正常刷新,导致用户查询物化视图的数据存在差异并影响集团考核,物化视图是通过scheduler job来调用的,scheduler job的状态是BROKEN,手动enable拉起之后到了调度时间点又会BROKEN,最后查询原因是由于用户提单删除了一批不用的账号导致scheduler job的创建者被删除引起的,这种情况一般很少遇到,举例来说,存在两个用户A、B,现在需要创建一个JOB并且JOB的OWNER是B,但是是通过A用户来创建的,也就是在A用户下创建B用户的JOB,代码为dbms_scheduler.create_job(JOB_NAME=>'B.JOB_TEST'。  如果这个时候删除B用户,那么B用户对应的对象也都会级联删除,但是如果这个时候删除A用户,B.JOB_TEST这个job是不会被删除的,但是这个JOB也不会正常执行了,scheduler job的状态会变为BROKEN。

演示案例如下:

1、首先创建A、B用户并授权

2、在B用户下创建表QXY,并创建物化视图MV_QXY_ROWID

3、切换到A用户,并在A用户下创建属于B用户的任务JOB_TEST,10s一次执行快速刷新物化视图MV_QXY_ROWID

4、查询JOB的运行情况,可以看到JOB_TEST的创建者是A,OWNER是B,enabled的状态是true,state是SCHEDULED也就是正常调度,JOB_ACTION就是刷新物化视图

5、测试SHCHEDULER JOB是否正常运行

6、删除创建者用户A

7、重新查询JOB_TEST的运行状态发现,enabled列从之前的true变成了false, state从原来正常的SCHEDULED变成了BROKEN

8、由于scheduler job不能正常刷新,物化视图也就不能定时刷新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值