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 emp@link_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 emp@link_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';
oracle11g rename user导致物化视图失效的处理的更多相关文章
- 定位导致物化视图无法快速刷新的原因 分类: H2_ORACLE 2013-08-08 23:04 335人阅读 评论(0) 收藏
转载自:http://yangtingkun.itpub.net/post/468/13318 物化视图的快速刷新采用了增量的机制,在刷新时,只针对基表上发生变化的数据进行刷新.因此快速刷新是物化视图 ...
- 物化视图刷新慢--有可能是mv log被多个mv使用造成的
同事说物化视图刷新慢,经检生产环境,发现部分物化视图刷新慢的原因是:由于同一个物化视图日志(mv log)被多个物化视图(mv)使用,不同的物化视图(mv)使用不同的刷新间隔,导致物化视图日志(mv ...
- ORACLE 物化视图
最近几天,我负责的P项目环境中提供给W系统的一个视图,由于查询逻辑复杂,数据量比较大,导致每次查询视图的时候,查询速度慢,效率低下,遭到了w系统人员的投诉.想了想,还是改成物化视图吧,用了物化视图,腰 ...
- ORACLE物化视图(物理视图)
百度文库 http://wenku.baidu.com/view/f78f55c68bd63186bcebbc4b.html ORACLE物化视图 一.------------------------ ...
- 由于物化视图定义为on commit导致update更新基表慢的解决方案
由于物化视图定义为on commit导致update更新基表慢的解决方案 以下是模拟和解决测试过程: (模拟update慢的过程) 1.首先基于基表创建物化视图日志: create materiali ...
- Oracle-11g 中创建物化视图
html,body { font-size: 15px } body { font-family: Helvetica, "Hiragino Sans GB", "微软雅 ...
- Oracle-11g 中两库间物化视图的同步
html,body { font-size: 15px } body { font-family: Helvetica, "Hiragino Sans GB", "微软雅 ...
- Oracle物化视图的用法与总结
物化视图(material view)是什么? 物化视图是包括一个查询结果的数据库对象,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表. 物化视图存储基于远程表的数据,也可以称为快照(类 ...
- [O]ORACLE物化视图的使用
用于数据复制的物化视图 物化视图的一个主要功能就是用于数据的复制,Oracle推出的高级复制功能分为两个部分,多主复制和物化视图复制.而物化视图复制就是利用了物化视图的功能. 物化视图复制包含只读物化 ...
随机推荐
- HTML5知识点总结(一)
最近在复习前端的基础知识,在这里做一个总结,这是HTML5篇. 新特性 取消了过时的显示效果标记<font></font>和<center></center& ...
- Spring Boot 2.x:SpringBoot
几个重要的事件回调机制: 1.配置在META-INF/spring.factories ApplicationContextInitializer SpringApplicationRunlisten ...
- TortoiseGit操作之提交代码到远程库
1.在本地代码库的文件夹中,"右键" 2.GIT提交要求必须填写Commit message,请认真填写描述信息. 建议填写的变更项编号,如上图. 代码提交到本地的配置库中,然后p ...
- python环境变量
下载并升级更新pip python -m pip install -U pip 变量名:PY_HOME 变量值:python路径 path:win10加在最后(记得用;号隔开):win7加在前面记 ...
- selenium环境搭建,浏览器驱动安装
一安装Python: 1.下载Phtyon地址:https://www.python.org/getit/ 2.安装python会默认安装两个基础包setuptools,pip 也可以手动安装: ...
- Java反射学习-1 - 反射获取类的属性,方法,构造器
新建一个Person类 package cn.tx.reflect; /** * 注解初步了解 * @author Administrator * */ public class Person { p ...
- sql判断中文、数字、英文
IF OBJECT_ID('DBO.GET_NUMBER2') IS NOT NULL DROP FUNCTION DBO.GET_NUMBER2 GO )) ) AS BEGIN BEGIN ,'' ...
- 4412 Linux定时器
一.Linux定时器基础知识 1.1 定时器的使用范围 延后执行某个操作,定时查询某个状态:前提是对时间要求不高的地方 1.2 内核时间概念 Hz:(系统时钟通过CONFIG_HZ来设置,范围是100 ...
- Vue使用的扩展
1.Bus(总线)实现非父子组件通信 Vue2.0提供了Vuex进行非父子组件之间的通信,但在简单的场景下,可以使用一个空的Vue实例作为中央事件总线. 实现代码示例: <div id=&quo ...
- APICloud框架——总结一下最近开发APP遇到的一些问题 (三)
ajax报错 Uncaught DOMException: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 需要在服务器环境下 ...