在其他数据库脱机时停止刷新MV

时间:2013-10-20 06:57:50

标签: database oracle materialized-views dblink

我有一个oracle数据库(DB1),它通过DB2的db-link,使用预定的JOB每隔午夜刷新物化视图。

MV的刷新发生在一个过程中,该过程遍历模式中的每个表名并逐个刷新每个表。

最近,存在DB2驻留的电力问题。如果DB2在DB1启动其作业时处于脱机状态,则DB1上的物化视图将变为空。如果没有连接,为什么刷新不会失败?我怎么能阻止这种情况发生?

提前致谢

1 个答案:

答案 0 :(得分:1)

您确定刷新过程没有错误输出(在这种情况下,错误会被写入警报日志)吗?

你在做完全的刷新吗?还是增量刷新?你在做原子清新吗?还是非原子刷新?我的猜测是你正在做一个完整的非原子刷新(在幕后,意味着你正在做TRUNCATE和直接路径INSERTTRUNCATE成功但是直接路径INSERT失败了。您可以执行完整的原子刷新,而不是执行DELETEINSERT。但是,当远程数据库可用时,这将比非原子刷新慢,并且它将生成更多REDO。或者,您可以执行增量刷新,但这至少需要在远程数据库上创建物化视图日志。