陳光 holen@263.net 2003.10 本文簡要介紹了ORACLE的進階複製功能,並通過一個實際項目,討論了在內外網的兩級DB中如何採用進階複製達到內外網的資料統一,最後給出配置指令碼供大家參考。
1、基本概念 ORACLE ORACLE是以進階結構化查詢語言 (SQL)(SQL)為基礎的大型關聯式資料庫,通俗地講它是用方便邏輯管理的語言操縱大量有規律資料的集合。是客戶/伺服器(CLIENT/SERVER)體繫結構的資料庫之一。 進階複製什麼是複製?簡單地說複製就是在由兩個或者多個資料庫系統構成的一個分散式資料庫環境中拷貝資料的過程。進階複製,是在組成分散式資料庫系統的多個資料庫中複製和維護資料庫物件的過程。 Oracle 進階複製允許應用程式更新資料庫的任何副本,並將這些更改自動傳遞到其他資料庫,同時確保全域交易處理的一致性和資料完整性。同步複製,複製資料在任何時間在任何複製節點均保持一致。如果複製環境中的任何一個節點的複製資料發生了更新操作,這種變化會立刻反映到其他所有的複製節點。這種技術適用於那些對於即時性要求較高的商業應用中。非同步複製,所有複製節點的資料在一定時間內是不同步的。如果複製環境中的其中的一個節點的複製資料發生了更新操作,這種改變將在不同的事務中被傳播和應用到其他所有複製節點。這些不同的事務間可以間隔幾秒,幾分種,幾小時,也可以是幾天之後。複製節點之間的資料臨時是不同步的,但傳播最終將保證所有複製節點間的資料一致。
2、項目情況 需求描述 這是一個內外網結構的審批系統。外網有一個WEB(+APPSERVER),一個DB(ORACLE9.2,雙網卡),負責接收申報和反饋審批結果。內網有一個WEB(+APPSERVER),一個DB(ORACLE9.2,雙網卡),負責接收申報和反饋審批結果,以及通過審批次程序處理來自外網的審批申報。由上可知,內網功能包括外網功能,不過外網申報需要CA認證,內網則不需要。根據國家保密有關規定,政務系統的內外網必須物理隔絕,所以外網接收到的申報並不能馬上反應到內網,同理,內網的處理結果也不能迅速反饋到外網。 技術選擇` 我們選擇ORACLE非同步手工複製,複製主要完如下功能: 1. 把外網新申報資料複製到內網; 2. 把內網對申報的處理結果反饋到外網。 操作實現因為正常工作時間,內外網均不能停頓,而內外網又不能物理連通。於是設定在每天晚上18:00至18:15(或其它時段)為維護視窗,該時段內外網均停止作業,由系統管理員把與內外網DB相連的所有網線均斷開,用一根直連網線把兩台DB串連,通過ORACLE提供的操作介面,在外網端手工重新整理記錄。
3、具體實現步驟 詳細請下載http://www.cn-java.com/download/doc/oracler.zip
4、後記 ORACLE的進階複製功能非常強大,能實現多點間的資料同步、非同步複製。內外網結構的報送、審批、備案等兩(多)級系統日益流行,若內外DB為同類型商務資料庫,一般資料庫本身都提供複製功能,若內外網為不同類型的資料庫,如內網為SQLSERVER,外網為ORACLE,則一般使用“同步機”中介軟體,在程式中調用即可。感謝李鑫為我提供技術解答!
5、關於作者 陳光,J2EE專案經理,熟悉EJB、XML,致力Aapche Jakarta、Aapche XML項目的應用與推廣,可通過holen@263.net與作者聯絡。