两台数据库电脑,一台上面的物化视图是从另一台电脑上的基表中取数据的,设置是每 3 秒种增量刷新,正常情况没有问题,现在问题是 当基表所在的电脑重新启动再启动数据库正常后(意思就是两台电脑网络断开再重新恢复正常后), 另一台电脑中物化视图就再也刷新不了了。大概查看了下,发现是刷新组不工作了,状态处于“中断”,还有个就是 开始刷新时间不是 sysdate 了(创建的时候设置开始刷新时间就是sysdate),变成 4000年1月1号了。 只有在orahome手动点即时刷新,并且把刷新时间改回 sysdate之后, 物化试图才能恢复正常。 请问有没有办法保证在这种情况下不用手动操作就能自动恢复?????? 散了所有分,救命啊!!!
参数:增量是'f',不过由于有过网络中断,建议使用'c'完全刷新。
可以手动刷新试图。
CURSOR my_broken_jobs IS SELECT job FROM user_jobs WHERE broken = 'Y';
BEGIN
FOR broken_job IN my_broken_jobs LOOP
BEGIN
dbms_job.broken(broken_job.job, FALSE); /*设置job的broken为N,这样job可以再次执行*/
commit;
EXCEPTION WHEN OTHERS THEN NULL;
END;
END LOOP;
END;
/sql>variable job2 number;
begin
dbms_job.submit(:job2,'resume_broken_job;',sysdate,'sysdate+5/(24*60*60)');
commit;
end;
/我在物化视图复制环境中用过,没有问题。请参考。
是可以的,主体站点---物化视图站点 两个数据库(好像叫方案更合适些)可以不一样的名字也可以一样,如果两个都是主体站点的话,好像必须同名(这是我的同事测试出来的结果)。我的database link 建立的情况如下,给你参考下。
alter database rename global_name to hh.garims.com;HH =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SID = tsgarims)
(SERVER = DEDICATED)
)
)Create database link hh.garims.com connect to repadmin identified by repadmin using 'HH';