前言
日益增長的分布式應用需求要求實現更好分布式的軟體環境,不斷推動著分布式技術的進步。Oracle資料複製是實現分布式資料環境的一種技術,通過在不同的物理網站拷貝資料來建立分布式資料環境。它與分散式資料庫不同,在分散式資料庫中,雖然每個資料對象也對所有的網站可用,但是特定的資料對象只存在於一個特定的網站中。而資料複製實現所有的網站都有相同資料對象的可用拷貝。
在一個典型的分布式商業應用中經常需要把個地區的資料備份到總部的資料庫中,一方面可以作為一種備份方式,另一方面也方便總部應用中的綜合統計。這是Oracle資料複製中的簡單應用,本文將以這樣一個例子,講述如何?Oracle資料複製。
實際情況是,A公司總部在北京,有三個營業部分別位於上海(ORACLE.SHANGHAI.COM)、杭州(ORACLE.HANGZHOU.COM)和武漢(ORACLE.WUHAN.COM)。三個營業部的軟體系統相同,資料庫結構也相同。現在需要把三個營業部的資料全部備份到總部的資料庫中。
準備工作
在進行複製之前需要準備的東西很多,當然最基礎就是網路必須暢通,之後需要收集一些複製環境的基本資料:
1. 需要複製的資料庫網站的數量。
2. 每個網站的Oracle版本號碼。
3. 每個需要複製的資料庫的大小。
4. 每個資料庫所使用的字元集。
5. 每個需要複製的資料所用的方案名。
收集完環境資訊,可以開始建立總部的集中資料庫,集中資料庫要求版本高於所有主戰點的版本,最好所有的資料庫都是用相同的字元集。建好庫後為每個主要站台的備份資料分別建一個資料表空間,資料表空間大於需要複製的資料量,至於預留以後的發展空間視實際情況而定。
為每個主要站台的對應複製資料建立方案,如果各個主要站台所使用的方案名不同,在集中資料庫網站分別建立名稱相同的對應方案。否則為各主要站台的複製資料分別建立相應的方案名。實際情況是後者,各營業部的資料庫都是用Oracle的方案名,這裡我們建立三個對應方案:SHORACL、HZORACL 和WHORACL。所有資料庫的版本都是9i。
基本概念
複製之前先解釋一下複製中的幾個概念:
1.主要站台(Mater Site):在複製過程中提供資料來源的網站。如上圖中的上海資料庫網站。
2.實體化視圖網站(Materialized View Site):實體化視圖複製中的目標網站。如上圖中的北京資料庫網站。
3.多主體網站複製(Multimaster Replication):複製環境中的網站都是主要站台,對複製的資料庫物件有相同的系統管理權限。
4.實體化視圖複製(Materialized View Replication): 一個主體網站提供源複製對象,一個實體化視圖網站拷貝主要站台資料。
5.實體化視圖(Materialized View):在實體化視圖網站為每個複製表或者視圖建立一個對應的表儲存相應的資料,該表只能通過Oracle的複製機制進行增刪改資料的操作。
6. 快速重新整理、完全重新整理和強制重新整理:複製過程中的三種重新整理方式。快速重新整理只複製來源資料對象的改變部分;完全重新整理每次都拷貝一遍來源資料對象;強制重新整理是資料庫的一個折衷方案,如果快速重新整理失敗則使用完全重新整理。
7. 主體組(Master Group):主體網站中被複製的來源資料對象的集合。
8. 實體化視圖組(Materialized View Site):實體化視圖網站中複製對象的集合。
9. 實體化視圖日誌(Materialized View Log):實體化視圖複製中使用快速重新整理時記錄主體來源資料對象動作記錄的表。
同步複製和非同步複製就不解釋了,本例採用每天一次的非同步複製。