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