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推出的高级复制功能分为两个部分,多主复制和物化视图复制.而物化视图复制就是利用了物化视图的功能. 物化视图复制包含只读物化 ...
随机推荐
- Flutter-icon
常用屬性 Icon( Icons.access_alarm,//设置使用哪种图标 size: 300,//设置图标大小 color: Colors.yellow,//设置图标颜色 textDirect ...
- SQL Server 2005 的动态管理视图DMV和函数DMF
优化 的动态管理视图DMV和函数DMF SQL Server 05提供了动态管理视图Dynamic Management Views和函数 Functions,方便了我们对系统运行情况的监控,故障诊断 ...
- 如何在Ubuntu下搭建tftp服务器
远程桌面连接工具 今天开始调试arm的板子,要通过tftp下载到板子上,所以又要配置tftp服务器,真的烦死了… (本人酷爱装系统,所以经常都要搞配置) 因为之前已经在Ubuntu下搭建过很多次t ...
- SDUT 1266 出栈序列统计(卡特兰数)
这道题是回溯算法,网上一查是卡特兰数先占上代码,题解过两天会写. #include <bits/stdc++.h> using namespace std; int main() { // ...
- 左除与右除的区别--MATLAB
MATLAB 左除与右除的区别 先定义两个矩阵a和矩阵b.如下: /:右除.a/b表示矩阵a乘以矩阵b的逆. \:左除.a\b表示矩阵a的逆乘以b. ./:右除.a./b表示矩阵a中的每个元素除以矩阵 ...
- 【Java】java获取json中某个字段
import com.alibaba.fastjson.JSONObject; public class JsonTest { public static void main(String[] arg ...
- YII 1.0 常用CURD写法
<?php //yii1.0 curd简单写法 //查询 Yii::app()->db->createCommand($sql)->queryAll();//查询所有行数据 ...
- Apache: No space left on device: Couldn’t create rewrite_map(XXXX)
启动apache的时候 有时候会遇到这样的错误:No space left on device: Couldn’t create rewrite_map(XXXX) 第一眼看以为是磁盘没有空间了,其实 ...
- error C2664: “ATL::CStringT<BaseType,StringTraits>::Remove”: 不能将参数 1 从“const char [2]”转换为“char”
转自VC错误:http://www.vcerror.com/?p=1395 问题描述: 代码: CString str("asdfafda"); str.Remove(" ...
- Openstack Restful API 开发框架 Paste + PasteDeploy + Routes + WebOb
目录 目录 Paste PasteDeploy Routes WebOb 简介 WSGI入口 Paste和PasteDeploy 配置文件 pasteini 中间件的实现 Routes WebOb 参 ...