oracle11g rename user导致物化视图失效的处理

在上一篇文章中,已经点到了数据库改名时,引起该schema下物化视图会失效的问题。从表面上看,该物化视图是删也删不掉,那当然就无法重建了。以下是实验过程:

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

SQL> conn yyf123/yyf123
 SQL> select s.owner,s.object_name,s.object_type,status from dba_objects  s  where object_name=‘EMP‘ ;
OWNER       OBJECT_NAME     OBJECT_TYPE STATUS
------------------------------ -----------------------------------------------------------
SCOTT EMP  TABLE VALID
SCOTT       EMP     MATERIALIZED VIEW   VALID
YYF123 EMP  TABLE VALID
YYF123       EMP     MATERIALIZED VIEW   INVALID

SQL> drop table emp purge;
ERROR at line 1:
ORA-12083: must use DROP MATERIALIZED VIEW to drop "YYF123"."EMP"

SQL> drop materialized view emp;
Materialized view dropped.

既然提示已经删除了物化视图,那尝试着重建一下看看

SQL>CREATE MATERIALIZED VIEW  emp
ON PREBUILT TABLE
REFRESH FORCE ON DEMAND
START WITH sysdate  NEXT SYSDATE + 10/1442 
as
SELECT * FROM [email protected]_to_scott;
*
ERROR at line 1:
ORA-00955: name is already used by an existing object

虽然上面删除物化视图的命令已经成功执行,但是请看dba_objects里面还有记录,也就是说并没有真正的删除。

select s.owner,s.object_name,s.object_type,status from dba_objects  s  where object_name=‘EMP‘ ;
OWNER       OBJECT_NAME     OBJECT_TYPE STATUS
------------------------------ ------------------------------ ------------------- ----------
YYF123       EMP     TABLE VALID
YYF123       EMP     MATERIALIZED VIEW   INVALID

问题来了,就是因为存在对该物化视图的summary信息

SQL> select t.owner,t.summary_name,t.container_owner,t.container_name from dba_summaries t where owner=‘YYF123‘ ;
OWNER       SUMMARY_NAME     CONTAINER_OWNER    CONTAINER_NAME
------------------------------ ------------------------------ ------------------------------ ------------------------------
YYF123       EMP     YYF123    EMP
SQL> conn / as sysdba
SQL> drop summary yyf123.emp;    <------------这就是解决问题的关键

接下来验证下是否已经清楚

SQL> select t.owner,t.summary_name,t.container_owner,t.container_name from dba_summaries t where owner=‘YYF123‘ ;
no rows selected

SQL>CREATE MATERIALIZED VIEW  emp
ON PREBUILT TABLE
REFRESH FORCE ON DEMAND
START WITH sysdate  NEXT SYSDATE + 10/1442 
as
SELECT * FROM [email protected]_to_scott;

Materialized view created.
SQL> select count(*) from emp;

COUNT(*)
----------
14

SQL> exec dbms_mview.refresh(‘emp‘,‘c

PL/SQL procedure successfully completed.

到此为止,已经顺利解决。

reference:

http://dba.stackexchange.com/questions/4235/why-in-oracle-11gr2-i-cant-drop-the-materialized-view-with-the-same-user-that-c

DBA_SUMMARIES is ‘Description of the summaries accessible to dba‘;
DBA_SUMMARIES.OWNER is ‘Owner of the summary‘;
DBA_SUMMARIES.SUMMARY_NAME is ‘Name of the summary‘;
DBA_SUMMARIES.CONTAINER_OWNER is ‘Owner of the container table‘;
DBA_SUMMARIES.CONTAINER_NAME is ‘Name of the container table for this summary‘;
DBA_SUMMARIES.LAST_REFRESH_SCN is ‘The SCN of the last transaction to refresh the summary‘;
DBA_SUMMARIES.LAST_REFRESH_DATE is ‘The date of the last refresh of the summary‘;
DBA_SUMMARIES.REFRESH_METHOD is ‘User declared method of refresh for the summary‘;
DBA_SUMMARIES.SUMMARY is ‘Indicates the presence of either aggregation or a GROUP BY‘;
DBA_SUMMARIES.FULLREFRESHTIM is ‘The time that it took to fully refresh the summary‘;
DBA_SUMMARIES.INCREFRESHTIM is ‘The time that it took to incrementally refresh the summary‘;
DBA_SUMMARIES.CONTAINS_VIEWS is ‘This summary contains views in the FROM clause‘;
DBA_SUMMARIES.UNUSABLE is ‘This summary is unusable, the build was deferred‘;
DBA_SUMMARIES.RESTRICTED_SYNTAX is ‘This summary contains restrictive syntax‘;
DBA_SUMMARIES.INC_REFRESHABLE is ‘This summary is not restricted from being incrementally refreshed‘;

时间: 2024-10-24 10:39:32

oracle11g rename user导致物化视图失效的处理的相关文章

物化视图日志过大,手工清理

参考 https://blog.csdn.net/demonson/article/details/91518341 问题说明: 1.生产环境遇到一个物化视图日志表100g,问题处理根据上述博客,后续测试环境重演 2.总结 由于测试环境关闭或者网络问题,导致主库物化视图日志一直保留,需要清除有问题的物化视图日志. How to purge MLOG$ Tables in the OLTP database (文档 ID 1922560.1) How to REGISTER and UNREGIS

物化视图的刷新(转载)

转载源自于:http://czmmiao.iteye.com/blog/1827254 物化视图 物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表.物化视图存储基于远程表的数据,也可以称为快照.物化视图可以基于表查询,视图和其它的物化视图.通常情况下,在复制环境下,物化视图被称为主表,在数据仓库中称为明细表.对于复制,物化视图允许你在本地维护远程数据的副本,这些副本是只读的.如果你想修改本地副本,必须用高级复制的功能.当你想从一个表或视图中抽取

详解物化视图(汇总比较有用的资料)

物化视图是包括一个查询结果的数据库对象,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表.物化视图存储基于远程表的数据,也可以称为快照.对于复制,物化视图允许你在本地维护远程数据的副本,这些副本是只读的.如果你想修改本地副本,必须用高级复制的功能.当你想从一个表或视图中抽取数据时,你可以用从物化视图中抽取. 对于数据仓库,创建的物化视图通常情况下是聚合视图,单一表聚合视图和连接视图.物化视图可以查询表,视图和其它的物化视图. 一.            关于物化视图日志: 查询物化视

物化视图刷新慢--有可能是mv log被多个mv使用造成的

同事说物化视图刷新慢,经检生产环境,发现部分物化视图刷新慢的原因是:由于同一个物化视图日志(mv log)被多个物化视图(mv)使用,不同的物化视图(mv)使用不同的刷新间隔,导致物化视图日志(mv log)中记录过多而使得快速刷新变得缓慢. 具体查找过程如下:1.首先查询物化视图日志表select * from user_table t where t.table_name like 'MLOG%'这些MLOG$开头的表都是物化视图的日志表,换句话说这些基表每次发生改变的信息就记录在这个日志表

oracle中使用物化视图实现表的同步

表的同步可以使用物化视图来实现,可以是同库的也可以是不同数据库之间进行数据同步,建议在同库的数据同步可以使用实时的同步,如果使用db link建议使用增量的刷新方式,防止dblink导致原库的性能急剧下降. 主要步骤: 1.在原表上建立物化视图日志 2.在创建目标表 3.创建与目标表同名的物化视图日志 1.创建原表和物化视图日志 SQL> conn bre/bre Connected. SQL> create table t1(id int,name varchar2(30)); Table

Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步

摘自:http://blog.csdn.net/javaee_sunny/article/details/53439980 目录(?)[-] Oracle 10g 物化视图语法如下 实例演示 主要步骤 在A节点创建原表和物化视图日志 在B节点创建连接A节点的远程链接 在B节点处创建目标表和与目标表名称相同的物化视图 在B节点处刷新物化视图 升级采用存储过程定时任务JOB方式定时刷新物化视图 进一步优化 文章更新记录 参考文章 Oracle 10g 物化视图语法如下: create materia

oracle物化视图

原文URL: oracle 10g物化视图简介 2012-05-09 17:33:55|  分类: ORACLE性能 |  标签:oracle  物化视图  |举报|字号 订阅 下载LOFTER我的照片书  | 环境oracle 10g 10.2.0.4  linux 64 要大而专业的看oracle自己的文档-sql参考. 说实话,oracle需要学习的内容太多,每个都看过去,实在太费事. 所以如果能够对物化视图有个概览,那最方便不过. 主要涉及内容 物化视图日志,用于快速刷新所必须的 物化视

[转载]oracle物化视图

原文URL:http://lzfhope.blog.163.com/blog/static/636399220124942523943/?suggestedreading&wumii 环境oracle 10g 10.2.0.4  linux 64 要大而专业的看oracle自己的文档-sql参考. 说实话,oracle需要学习的内容太多,每个都看过去,实在太费事. 所以如果能够对物化视图有个概览,那最方便不过. 主要涉及内容 物化视图日志,用于快速刷新所必须的 物化视图 权限,通常不是个难题,因

【翻译自mos文章】怎么样kill 一个被挂起的自动物化视图刷新job?

怎么样kill 一个被挂起的自动物化视图刷新job? 参考原文:How to kill a hung automated materialized view refresh job (文档 ID 341842.1) 适用于: Oracle Server - Enterprise Edition - Version 8.1.5.0 to 10.2.0.5 [Release 8.1.5 to 10.2] Information in this document applies to any plat