Oracle 具体化视图刷新错误或成功



我们有一个为远程数据库视图(db link)创建的物化视图。山地视图每晚刷新(完成)。我们要求向客户提供刷新的每日电子邮件状态,无论刷新是否成功(出于任何原因)。目前,刷新正在通过DBMS_JOB进行。系统如何自动检查刷新状态并对其执行操作? 如果我创建一个调用DBMS_MVIEW的过程。刷新(我的 mt 视图,"C")如果调用刷新不成功(例如网络问题)会失败吗?我可以在异常中捕获它并记录错误吗?另外,是DBMS_ERRLOG。刷新MT视图CREATE_ERROR_LOG有用吗?

谢谢

几件事:

无论如何,您确实应该使用dbms_scheduler而不是dbms_job,dbms_job因为它已从10g开始被弃用(前提是您至少使用10g......如果没有,您可能需要考虑升级)。

虽然您可以使用dbms_scheduler来计划 mview 刷新,但 mviews 已经内置了该功能。 以下命令将安排 mview 在每天凌晨 1 点刷新(完成):

ALTER MATERIALIZED VIEW <mviewname>
 REFRESH COMPLETE
 NEXT (TRUNC (SYSDATE+1) + 1/24);

间隔的语法可能有点棘手,直到您习惯了它......我会从 Oracle 文档开始。

要检查上次刷新 mview 的时间,请执行以下操作:

select owner, mview_name, last_refresh_date  from dba_mviews;

因此,如果每天早上刷新 mview,则可以设置计划程序作业,以便在当天早上刷新或未刷新 mview 时发送电子邮件(基于上述查询的结果)。

相关内容

  • 没有找到相关文章

最新更新