Oracle数据库管理-清除物化日志

今日对数据库巡检发现 ,存在100G 对象,MLOG$_T1

查看物化日志刷新情况

set line 200;
set pagesize 20000;
col owner for a15;
col mview_name for a30;
col query for a60;

select owner,mview_name,refresh_method,last_refresh_date,compile_state from dba_mviews;

  步骤理解分析:

1.用户/应用创建事务。
2.数据在主表中提交
3.完全刷新操作是通过DBMS_MVIEW软件包手动执行
4.MV中的数据会被删除并通过主表的内容完全刷新
5.用户可以通过MV查询数据,其中含有主表的实时快照

 

快速刷新MV的步骤:
1.用户创建事务
2.数据在主表中提交
3.主标上的内部触发器为MV日志表添加数据
4.通过DBMS_MVIEW软件包执行快速刷新
5.MV上一次刷新后创建的DML更改被应用到MV。从MV日志删除不在有用的行
6.用户可以通过MV查询数据,其中含有主表数据的快照
————————————————
 

  • 1 查询对应的注册的MVIEW

SELECT * FROM DBA_REGISTERED_MVIEWS       where can_use_log='YES';

  • 2 取消对物化视图的注册依赖       

begin
  dbms_mview.unregister_mview('OPERATION','MV','TXB');
  END;
  /**

EXEC   DBMS_MVIEW . UNREGISTER_MVIEW ( mviewowner ,  mviewname ,  mviewsite ) ;

  • mviewowner: MView的OWNER。
  • mviewname: MView的名字。
  • mviewsite: 这个可以从DBA_REGISTERED_MVIEWS中的MVIEW_SITE中看到。
  • **/

  begin
  dbms_mview.purge_mview_from_log('123');   ----mvid从哪里看????
  END;

  • 3 删除物化日志

 drop materialized view log  on fm.T1;

  • 4 创建物化日志

 create materialized view log on fm.t1  with rowid /with primary key;
 select * from  fmdb.MLOG$_T1;

create materialized view log on teacher with primary key;--创建视图日志
/****
create materialized view mv_teacher8
refresh fast [ with primary key/with rowid] --此处可省略,因为该视图默认就是基于主键
as
select * from teacher  ******/

  • 5 删除物化视图

 drop materialized VIEW OPERATION.MV;

  • 6 创建物化视图

CREATE MATERIALIZED VIEW OPERATION.MV
REFRESH FAST ON DEMAND
START WITH sysdate NEXT SYSDATE+ 1/17280 
AS
SELECT STATEMENT@app;
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值