我有一个oracle数据库(DB1),它通过DB2的db-link,使用预定的JOB每隔午夜刷新物化视图。
MV的刷新发生在一个过程中,该过程遍历模式中的每个表名并逐个刷新每个表。
最近,存在DB2驻留的电力问题。如果DB2在DB1启动其作业时处于脱机状态,则DB1上的物化视图将变为空。如果没有连接,为什么刷新不会失败?我怎么能阻止这种情况发生?
提前致谢
答案 0 :(得分:1)
您确定刷新过程没有错误输出(在这种情况下,错误会被写入警报日志)吗?
你在做完全的刷新吗?还是增量刷新?你在做原子清新吗?还是非原子刷新?我的猜测是你正在做一个完整的非原子刷新(在幕后,意味着你正在做TRUNCATE
和直接路径INSERT
)TRUNCATE
成功但是直接路径INSERT
失败了。您可以执行完整的原子刷新,而不是执行DELETE
和INSERT
。但是,当远程数据库可用时,这将比非原子刷新慢,并且它将生成更多REDO
。或者,您可以执行增量刷新,但这至少需要在远程数据库上创建物化视图日志。