龙空技术网

分享一份标准的Oracle物化视图重建方案,值得收藏

波波说运维 286

前言:

现时你们对“可更新视图oracle”大概比较看重,姐妹们都想要了解一些“可更新视图oracle”的相关资讯。那么小编也在网上搜集了一些有关“可更新视图oracle””的相关资讯,希望朋友们能喜欢,大家快快来了解一下吧!

概述

由于源库上的表rename切换时重建了物化视图日志,而物化视图完全刷新耗时过久,这里采取删除后重建方式。那么,只是按网上一样drop后重建就可以了吗?那你就很有可能踏坑了...

1、查看物化视图定义

 select dbms_metadata.get_ddl('MATERIALIZED_VIEW','<TAB_NAME>','<Schema_name>') from dual;



2、查看物化视图上的索引

--查看物化视图上的索引SELECT * FROM DBA_INDEXES WHERE TABLE_NAME='物化视图名字';--查看索引定义select dbms_metadata.get_ddl('INDEX','INDEX_NAME','INDEX_OWNER') from dual;


3、重建物化表的日志表(在源库执行)

--删除物化视图日志DROP MATERIALIZED VIEW LOG ON 表名;--为将要创建物化视图的表添加带主键的日志表CREATE MATERIALIZED VIEW LOG ON 表名 WITH PRIMARY KEY;


4、删除物化视图

DROP MATERIALIZED VIEW 表名;


5、创建物化视图和索引

5.1、创建物化视图

这里就用到前面事先查找的定义了

5.2、创建索引(主键索引会自动创建,不需要再创建)

这一步是很有可能被漏的,要谨慎!

CREATE INDEX ....


6、验证是否创建成功

SELECT * FROM 物化视图表名;


7、查询

这里查看物化视图刷新状态信息和物化视图日志

SELECT MVIEW_NAME, LAST_REFRESH_DATE, STALENESS FROM USER_MVIEWS;SELECT NAME, LAST_REFRESH FROM USER_MVIEW_REFRESH_TIMES; SELECT * FROM MLOG$_xx;

觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~


标签: #可更新视图oracle