情况如下:
有2个数据库,一个master, 一个物化视图站点。双向复制。
主体站点的表需要添加字段,并且初始化新添加的字段。
当我把复制关系,刷新组都删除,物化视图日志也删除了,但是在执行update 主体站点的时候,提示“表或视图不存在”。
物化视图站点
SELECT * FROM DBA_REPGROUP;
SELECT * FROM DBA_REPOBJECT;
SELECT * FROM USER_REFRESH;
都没有结果。
主体站点查询
SELECT * FROM DBA_REPGROUP;
SELECT * FROM DBA_REPOBJECT;
没有记录,查看dba_tables ,dba_objects没有MLOG$_XXXXXX 开头的表。说明删除干净。
但是SELECT * FROM DBA_MVIEW_LOGS; 有MLOG$_XXXXXX 开始的表。
分析:因为错误发生在断开复制,添加字段后。
领导说能不能rename 表,这时候提示:
Action: If desired,
unregister the replicated table with dbms_repcat.drop_master_repobject, or use
the recommended procedure to rename the master table of a materialized
view.
DBMS_REPCAT.DROP_MASTER_REPOBJECT 我执行过了啊。
create MATERIALIZED VIEW LOG ON tab; 提示日志已存在。
drop MATERIALIZED VIEW LOG ON tab;
再次update主表,不再提示表或视图不存在。
原来物化视图日志会报这么一个错。提示信息让人莫名其妙。倒是重命名表,根据提示去看action ,能抓到一些眉目。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25027760/viewspace-1133643/
,如需转载,请注明出处,否则将追究法律责任。