NO.67 | 2020.05.29
banner
title有備而來 友善列印>>
活用實質化視觀表,將資料有效利用

<應用服務組/吳汝右>

  正式環境資料庫(Production Database)不會提供使用者(End User)直接進行資料存取,而是間接透過資料複製(Data Replication)的技術,將正式資料庫複製到其它資料庫(Reporting Database),再藉由查詢介面或報表工具提供使用者作資料查詢,以維持正式環境資料庫之資料完整交易以及可用效能。

  而Oracle資料庫依據異質與同質資料庫,提供多種資料複製技術選擇,在Oracle同質資料庫中,最常採用的方法為實質化視觀表(Materialized View),其資料複製步驟說明如下:
  1. 在來源資料庫(Master Database)內的表格建立實質化視觀表記錄(Materialized View Log),該物件負責記錄來源表格(Source Table)內每行異動資料之記錄。
  2. 在來源資料庫與目標資料庫(Target Database)之間建立資料庫連結(Database Link)。
  3. 在目標資料庫建立實質化視觀表後,即可完成單一表格之資料複製。
 
 
 
圖1 實質化視觀表架構
(資料來源:TTC整理)

 
  實質化視觀表的管理注意重點:
  1. 實質化視觀表記錄使用空間之監控:雖然每次資料更新(Refresh)後,會將實質化視觀表記錄內資料清空,但若是目標資料庫發生問題,資料則會持續累積在來源資料庫的實質化視觀表記錄內。因此在建立實質化視觀表記錄時應該預先分配適度的表格空間(Tablespace)。
  2. 資料更新方式:大致可分為完整更新(Complete Refresh)和差異更新(Fast Refresh),完整更新指每次進行資料更新會將全部表格資料進行更新,而差異更新則只是進行差異資料之更新,不同類型的表格可視情況使用不同的資料更新方式。
  3. 監控資料更新狀態:由於目標資料庫每個實質化視觀表資料更新時間可能不同,資料庫管理者應該留意資料更新之狀態,確保來源資料庫與目標資料庫資料一致。
  實質化視觀表不單單只是資料複製的功能,若善加利用還能夠獲得以下的效益:
  1. 將資料複製到目標資料庫,供報表系統或其他使用者使用,可將單一資料庫故障的影響範圍降低。
  2. 實質化視觀表可將資料彈性利用,可選擇複製表格的部分欄位(Column)或是可在目標資料庫建立不同的索引(Index)以滿足不同系統的需求,並提升查詢效能。
  3. 活用實質化視觀表功能,可建立多層次實質化視觀表(Multitier Materialized Views)架構,將資料複製至中介資料庫,集中資料管理後,再將資料複製至不同系統的資料庫將資料進行最大化利用。
 
 

圖2 多層次實質化視觀表
(資料來源:TTC整理)

 
  雖然利用實質化視觀表進行資料複製會多出額外的使用空間,但藉由實質化視觀表功能,可確保來源資料庫與目標資料庫的資料正確性,同時也可將資料提供給不同系統使用,更大幅提升資料的使用範圍。
 


參考資料:Oracle Database Online Documentation Library, 11g Release 2 (11.2)