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推出的高级复制功能分为两个部分,多主复制和物化视图复制.而物化视图复制就是利用了物化视图的功能. 物化视图复制包含只读物化 ...
随机推荐
- Facebook被指控通过其应用程序进行监视用户照片
Facebook被批使用其应用程序收集有关用户及其朋友的信息,其中包括一些尚未注册社交网络,阅读短信,跟踪其位置并在手机上查看照片的人. 有关大众监督的声称是前创业公司Six4Three对该公司提起的 ...
- python运行windows终端程序
其实是用python控制windows里的shell 1.windows有PowerShell,可以通过搜索打开,运行python不需要打开shell 2.用python里的subprocess函数, ...
- 使用C#实现网站用户登录
我们在写灌水机器人.抓资源机器人和Web网游辅助工具的时候第一步要实现的就是用户登录.那么怎么用C#来模拟一个用户的登录拉?要实现用户的登录,那么首先就必须要了解一般网站中是怎么判断用户是否登录的.H ...
- Appium运行报错:No Chromedriver found that can automate Chrome '39.0.0'
运行appium切换webview时候遇到报错:’No Chromedriver found that can automate Chrome 'xx.xx.xx' 此报错是因为Appium在运行过程 ...
- [CSP-S模拟测试]:weight(Kruskal+树链剖分)
题目描述 给你一个$n$个点$m$条边的带边权的无向图(无重边,无自环),现在对于每条边,问你这条边的权值最大可以是多大,使得这条边在无向图的所有最小生成树中?(边权都是整数). 输入格式 第一行包含 ...
- python类与对象练习题扑克牌
#定义一个扑克类,属性是颜色,数字.#定义一个手类,属性是扑克牌得颜色数字#定义一个人类,属性是左手,右手.类里定义一些方法,比如交换,展示 class Poker : def __init__(se ...
- python的迭代器(转自廖雪峰老师python基础)
我们已经知道,可以直接作用于for循环的数据类型有以下几种:一类是集合数据类型,如list.tuple.dict.set.str等:一类是generator,包括生成器和带yield的generato ...
- ACM中java的使用 (转)
ACM中java的使用 这里指的java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目. 1. 输入: 格式为:Scanner ...
- Nuget-Doc:Nuget 简介
ylbtech-Nuget-Doc:Nuget 简介 1.返回顶部 1. NuGet 简介 2019/05/24 适用于任何现代开发平台的基本工具可充当一种机制,通过这种机制,开发人员可以创建.共享和 ...
- Git 内部原理
首先要弄明白一点,从根本上来讲 Git 是一个内容寻址(content-addressable)文件系统,并在此之上提供了一个版本控制系统的用户界面. 马上你就会学到这意味着什么. git objec ...