Oracle 11g 通过创建物化视图实现不同数据库间的表数据同步
生活随笔
收集整理的這篇文章主要介紹了
Oracle 11g 通过创建物化视图实现不同数据库间的表数据同步
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Oracle 11g 物化視圖語(yǔ)法如下:
| |
以上是Oracle創(chuàng)建物化視圖(Materialized View,以下簡(jiǎn)稱(chēng)MV)時(shí)的常用語(yǔ)法,各參數(shù)的含義如下:
1.refresh [fast|complete|force] 視圖刷新的方式:
fast: 增量刷新.假設(shè)前一次刷新的時(shí)間為t1,那么使用fast模式刷新物化視圖時(shí),只向視圖中添加t1到當(dāng)前時(shí)間段內(nèi),主表變化過(guò)的數(shù)據(jù).為了記錄這種變化,建立增量刷新物化視圖還需要一個(gè)物化視圖日志表。create materialized view log on (主表名)。(多張表時(shí),此語(yǔ)句也生效,創(chuàng)建后,原來(lái)的表中會(huì)多出兩類(lèi)視圖表:MLOG$_table_name和RUPD$_table_name) complete:全部刷新。相當(dāng)于重新執(zhí)行一次創(chuàng)建視圖的查詢語(yǔ)句。
force: 這是默認(rèn)的數(shù)據(jù)刷新方式。當(dāng)可以使用fast模式時(shí),數(shù)據(jù)刷新將采用fast方式;否則使用complete方式。
2.MV數(shù)據(jù)刷新的時(shí)間:
? on demand:在用戶需要刷新的時(shí)候刷新,這里就要求用戶自己動(dòng)手去刷新數(shù)據(jù)了(也可以使用job定時(shí)刷新)
on commit:當(dāng)主表中有數(shù)據(jù)提交的時(shí)候,立即刷新MV中的數(shù)據(jù);
start ……:從指定的時(shí)間開(kāi)始,每隔一段時(shí)間(由next指定)就刷新一次;
比如說(shuō)我們要全刷新一張mv_test物化視圖: begin
dbms_mview.refresh(TAB=>'MV_TEST',
METHOD=>'COMPLETE',
PARALLELISM=>8);
end;
/ 增量刷新就不需要使用什么并行了,通常情況下,是沒(méi)有那個(gè)必要的。 begin
dbms_mview.refresh(TAB=>'MV_TEST',
METHOD=>'FAST',
PARALLELISM=>1);
end;
/ 或者,也可以這樣執(zhí)行: exec dbms_mview.refresh('MV_TEST','F'); 寫(xiě)此文,只是幫自己記住一些基本的語(yǔ)法,到時(shí)可以參照。 dbms_mview.refresh('表名', 'F') --快速刷新,也就是增量刷新
dbms_mview.refresh('表名', 'C')--完全刷新
以下是我創(chuàng)建物化視圖的一個(gè)過(guò)程記錄(兩臺(tái)服務(wù)器A和B,其中,要把數(shù)據(jù)從A節(jié)點(diǎn)同步到B節(jié)點(diǎn)上): 1.在A上先創(chuàng)建view log:
| ? |
| |
|
| SQL> select log_owner,master,log_table,PRIMARY_KEY,LAST_PURGE_DATE,LAST_PURGE_STATUS from user_mview_logs; LOG_OWNER MASTER LOG_TABLE PRI LAST_PURGE_DATE LAST_PURGE_STATUS
|
轉(zhuǎn)載于:https://blog.51cto.com/255361/837476
總結(jié)
以上是生活随笔為你收集整理的Oracle 11g 通过创建物化视图实现不同数据库间的表数据同步的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: netstat -an中state含义
- 下一篇: Socket编程实践(11) --epo