由于要随时查询数据,所以就在一台机器上排定了一个JOB,专门用来刷新SNAPSHOT的,每隔20分钟刷新一次。这个JOB一共要刷新4个SNAPSHOT,其中有一个数据量比较大,大概200多万条记录,原先几天刷新都没有问题,但是过了一段时间之后就不能刷新了,手动刷新也不行。现在只要一出现这个问题就要重新再建SNAPSHOT,哪位高手能解决这个问题?不胜感激!
附:JOB的语句如下
fadwadm/fadwadm@micweb
execute dbms_snapshot.refresh(sn_asse);
execute dbms_snapshot.refresh(sn_err);
execute dbms_snapshot.refresh(wo);
execute dbms_snapshot.refresh(trn_log);
COMMIT;
重新建SNAPSHOT就可以刷新了吗?
首先要看snapshot是完全刷新还是快速刷新.然后用dbms_mview.explain_mview来检查为什么不能刷新;如果在表mv_capabilities_table中查询到的相关数据均显示为支持DML刷新并且snapshot为快速刷新模式,那么把refresh fast on demand改为refresh fast on commit试试