Oracle物化视图错误日志表?

Jef*_*eff 4 oracle

我有许多具体化的观点,由于各种原因(罕见的)情况下无法具体化。是否有一个数据库表可以存储我可以查询的刷新尝试的错误消息?

ato*_*pas 5

您可以使用以下查询来检查 MV 上次刷新的时间。

SQL> select owner, mview_name, last_refresh_type, last_refresh_date
from dba_mviews/user_mviews;
Run Code Online (Sandbox Code Playgroud)

如果您使用DBMS_SCHEDULER以下方法刷新这些 MV :-

SQL> select log_date, status 
from dba_scheduler_job_run_details 
where job_name='JOB_NAME';

LOG_DATE                                     STATUS
--------------------------------------       ------------------------------
16-APR-17 04.42.58.546973 AM +05:45          SUCCEEDED
08-APR-17 02.38.12.843886 AM +05:45          FAILED
Run Code Online (Sandbox Code Playgroud)

如果您使用 Job Queues/DBMS_JOB` 刷新这些 MV:-

SQL> select job, last_date last_refresh,next_date next_refresh, total_time,broken, failures, what
from dba_jobs
where what like '%dbms_refresh%';
Run Code Online (Sandbox Code Playgroud)

作业失败的原因写入alert_<SID>.log如下所示的文件以及警报日志文件中引用的跟踪文件中。

Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_j003_143260.trc:
ORA-12012: error on auto execute of job "SCHEMA"."JOB_NAME"
ORA-12008: error in materialized view refresh path
ORA-22992: cannot use LOB locators selected from remote tables
ORA-06512: at "SCHEMA.PACKAGE/PROCEDURE", line 70
ORA-06512: at line 1
Run Code Online (Sandbox Code Playgroud)