0

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

MV 的刷新使用一个过程来运行,该过程遍历模式中的每个表名并逐个刷新每个表。

最近,DB2进驻的地方出现了电力问题。如果 DB2 在 DB1 开始其工作时处于脱机状态,那么 DB1 上的物化视图将变为空。如果没有连接,为什么刷新不会简单地失败?我怎样才能阻止这种情况发生?

提前致谢

4

1 回答 1

1

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

你在做完整的刷新吗?还是增量刷新?你在做原子刷新吗?还是非原子刷新?我的猜测是您正在执行完整的非原子刷新(在幕后,这意味着您正在执行TRUNCATEand direct-path INSERT),其中TRUNCATE成功但直接路径INSERT失败。您可以执行完整的原子刷新,而不是执行DELETEand INSERT。但是,当远程数据库可用时,这将比非原子刷新慢,并且会生成更多REDO. 或者,您可能会改为执行增量刷新,但这至少需要在远程数据库上创建物化视图日志。

于 2013-10-20T07:26:06.653 回答