Oracle物化视图常用操作

查看物化视图刷新情况:
select MVIEW_NAME,to_char(LAST_REFRESH_DATE,'yyyy-MM-dd HH24:mi:ss'),LAST_REFRESH_TYPE,FAST_REFRESHABLE from user_mviews;   

查看主表上物化视图日志情况:
select * from ALL_REGISTERED_MVIEWS;    --物化视图在主表上的注册情况
select * from DBA_BASE_TABLE_MVIEWS;    
select * from dba_mview_logs    --查看存在的物化视图日志

创建基于主键的物化视图
1、首先在主表上创建基于主键的物化视图日志
alter table u01.t3 add constraint pk_u03 primary key(id);
create materialized view log on u01.t3 with primary key including new values;

2、创建物化视图(十分钟刷新一次)
create materialized view u01.t3
refresh force on demand
start with sysdate next sysdate + (1/24/12)
as
select * from u01.t3@wqwq_to_eisoo;

3、删除物化视图
(1)停止物化视图job
begin  
  dbms_job.broken(1194,true);  
  commit;  
end;

(2)删除物化视图job
begin   
  dbms_job.remove(1194);  
  commit;  
end;

(3)删除物化视图
drop materialized view u01.t3;

注:如果要将主表上的物化视图日志一块删除,首先在主表所在的用户下执行DROP MATERIALIZED VIEW LOG ON u01.t3命令,在执行上面的删除物化视图命令。


记录一次物化视图无法删除的案例:
说明:测试环境中物化视图刷新失败,计划删除物化视图:停止物化视图job,删除job,然后删除物化视图,但是在删除物化视图时候一直挂着无法删除

1、查看正在运行的job
SQL> select * from dba_jobs_running;

       SID      JOB    FAILURES LAST_DATE LAST_SEC                THIS_DATE THIS_SEC                 INSTANCE
---------- ---------- ---------- --------- -------------------------------- --------- -------------------------------- ----------
       219     1174


SQL> select job from dba_jobs where job=1174;

no rows selected

2、确定要停掉的job的SID,SERIAL#和系统进程id
select b.SID,b.SERIAL#,c.SPID
from dba_jobs_running a,v$session b,v$process c
where a.sid = b.sid and b.PADDR = c.ADDR;
      SID    SERIAL# SPID
---------- ---------- ------------------------
       219    48709 2369

3、杀掉job的会话
SQL> alter system kill session '219,48709';
*
ERROR at line 1:
ORA-00031: session marked for kill

上面的命令需要时间较长于是在OS层面杀掉SPID
[oracle@pdadep ~]$ ps -ef | grep 2369
oracle    2369     1  0 Sep29 ?        00:00:00 ora_j001_pda

[oracle@pdadep ~]$ kill -9 2369

此时再次执行删除物化视图的命令,顺利删除!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30373263/viewspace-2125832/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30373263/viewspace-2125832/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值