暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 提交刷新失败的实体化视图

ASKTOM 2020-05-27
503

问题描述

嗨,团队,

非常感谢您到目前为止提供的所有支持 :)

我最近在tableA上创建了一个提交实体化视图MVA。主键M视图日志在此处使用。
有时此刷新失败,并ORA-12034错误。
由于这是我们应用程序中的关键表,因此此故障为我们带来了很多问题。

在Oracle警报日志中搜索以查找为什么此刷新失败时,我可以看到下面的警报。

由于缺少 “模式” 的提交时特权,刷新失败。“MVB”
以下是未刷新的提交快照:
架构。MVB
架构。MVA

MVB是在不同的表上创建的另一个提交M视图,没有对tableA/MVA的任何引用。
我不确定此警报消息是否与我面临的ORA-12034错误直接相关。

你能就如何进一步诊断提出建议吗

注意: tableA和MVA是在同一模式中创建的。TableB/c/d和MVB也以与tableA/MVA相同的模式存在。

我可以看到tableA的M视图日志的last_purge_date小于MVA的最后刷新日期。
但是,没有进行强制清除。
有什么方法可以找到M视图日志上的清除方式?

如果您需要更多详细信息,请告诉我

谢谢,
Manoj

专家解答

MOS note 204127.1有很多可能导致ORA-12034错误的事情。

如果您将其范围缩小到清除MV日志的范围,请注意,有几个DDL命令可以清除日志。值得注意的是截断表和分区操作:

create table t (
  c1 int primary key , c2 int
) partition by range ( c1 ) interval ( 1 ) (
  partition p1 values less than ( 2 ) 
);

create materialized view log on t
  with rowid, primary key ( c2 )
  including new values;
  
insert into t 
with rws as (
  select level x from dual
  connect by level <= 10
)
  select x, x from rws;
commit;

select count(*) from mlog$_t;

COUNT(*)   
         10 

alter table t 
  truncate partition p1;

select count(*) from mlog$_t;

COUNT(*)   
          0 


因此,请检查一下桌上是否有类似的维护操作。如果不这样做,请查看是否可以在MV日志中添加一些审核以捕获确切清除它的内容。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论