取消物化視圖的註冊信息

MYTEST01為源庫,WISONTEST為物化視圖站點,在WISONTEST上有2個Schema Wison和Wison1同時去抓取源庫的數據.
表的名字均為PKREADONLY.
此時在源庫上執行
SELECT * FROM DBA_REGISTERED_MVIEWS WHERE NAME='PKREADONLY';

查詢結果為:

 

執行
select * from sys.slog$
結果為:
 

由於兩個物化視圖站點在同一台機器上,不好模擬,所以假設此時WISON1下的視圖不能刷新.
那麼當物化視圖站點上WISON下的物化視圖刷新之後,源庫上的MLOG$_PKREADONLY記錄不能清空,會越變越大.
那麼,我們一般的處理方法為:
----錯誤方法(之後可以完全解決):
在源庫上執行:

begin
DBMS_MVIEW.unregister_mview('WISON1','PKREADONLY','TEST.TEST.COM');
end;
此時再執行
SELECT * FROM DBA_REGISTERED_MVIEWS WHERE NAME='PKREADONLY';
結果為:
 
我們可以發現WISON1對應的註冊信息已經被清理了.
那麼即使物化視圖站點上的WISON下的MV已經刷新,但是MLOG$_PKREADONLY不會減少.
但是此時執行
select * from sys.slog$
結果為:
 
爲了使得MLOG$_PKREADONLY中記錄可以自行刪除,那麼我們需要的操作為:
1:在源庫上註冊WISON1的信息,注意MVIEW_ID與之前保持一樣,也即277

begin
dbms_mview.register_mview
(mviewowner => 'WISON1',
mviewname  => 'PKREADONLY',
mviewsite  => 'TEST.TEST.COM',
mview_id   => 277,
flag       => 32,
qry_txt    => '(MEMO)');
--rep_type   =>'REG_REPAPI_SNAPSHOT');
end;

2:執行SELECT * FROM DBA_REGISTERED_MVIEWS WHERE NAME='PKREADONLY';
我們發現:
 
3:我們在源庫上執行PURGE包
begin
DBMS_SNAPSHOT.PURGE_SNAPSHOT_FROM_LOG(277);
end;
此時執行select * from sys.slog$
結果為:
 
4:然後再次執行刪除註冊信息的語句

begin
DBMS_MVIEW.unregister_mview('WISON1','PKREADONLY','TEST.TEST.COM');
end;
執行之後在查詢該物化視圖信息已經被刪除
 

----正確的解決辦法:

如果發現WISON1下的物化視圖,已經無法正常刷新,那麼我們應該按照下列步驟進行作業:
1:在源庫上執行select * from dba_registered_mviews where NAME='PKREADONLY';
查詢出無法正常刷新的信息的SNAPID
 
檢查發現MVIEW_ID為278
2:在源庫上執行PURGE包,清除相關信息
begin
DBMS_SNAPSHOT.PURGE_SNAPSHOT_FROM_LOG(278);
end;
此時執行select * from sys.slog$
結果為:
 
但是此時執行select * from dba_registered_mviews where NAME='PKREADONLY';結果不變,仍然包括WISON1的信息.
3:在源庫上執行清除註冊信息的包
begin
DBMS_MVIEW.unregister_mview('WISON1','PKREADONLY','TEST.TEST.COM');
end;
然後執行select * from dba_registered_mviews where NAME='PKREADONLY';確認結果
 
4:之後當WISON下的物化視圖刷新之後,MLOG$_PKREADONLY的記錄會自動清空,自此,已完全解決.

 

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

转载于:http://blog.itpub.net/25198367/viewspace-704224/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值