今天在看Oracle的快照(Snapshot)機制時,發現這個技術雖然很重要,但官方文件所記載的說明要詳細的解釋起來還蠻繞舌的,而且中文還找不到什麼資料,這裡做個筆記以利參考。

Snapshot Groups

Snapshot Groups是Oracle實現Replication的機制之一,主要是把位在Master中的物件(Tables、Procedures…)給設定在同一群組中,被設定在同一群組(Group)中的物件就可同時間進行Snapshot資料。

以下圖而言:
Master Site中的Group A裡被設定存有四個物件,Snapshot Site中的Group A只有二個物件,Snapshot就只會Snapshot在Group A中的這二個物件資料。
設定時要注意Group名稱必需要相同才能同步。

Refresh Groups

Refresh Groups則是用來確保當包在同一個Refresh Group裡、不同Snapshot Groups中所有物件中的資料,會以Transaction機制同步成與該時間點的Master中相同物件相同。利用此機制可確保資料不會出現不一致的情況。
如下圖中,Group A與Group B同時設在Refresh Group A中,所以當進行Snapshot時,系統會使用Transaction的方式把該時間點裡,所有的變動資料同時間從Master中更新至Snapshot Site中該Refresh Group中所有的Snapshot Group中的所有物件。

官方文件中有提到此方式可減少Overhead。(such a configuration reduces the amount of “overhead” needed to refresh your snapshots)

Refresh Groups機制的三種Refresh方法

Refresh方式分三種:FAST, COMPLETE, FORCE

  1. Fast是讀取最近變動的資料然後更新,
  2. Complete是把所有資料捉出然後覆蓋過去,
  3. Force是當Fast失敗時會自動執行Complete
Tags:

發佈留言