本文簡要介紹了 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、具體實現步驟
以下是指令碼中用到的技術參數,內外網表結構相同,且都有主鍵。
內網 外網
IP 192.168.0.50 192.168.0.100
SID ORANEI ORAWAI
表 LAWTABLE
REGISTER
USERINFO
……
共68張表 LAWTABLE
REGISTER
共2張表
登入名稱/密碼 HOLEN/HOLEN HOLEN/HOLEN
以下是我們到客戶處安裝所用的 SQL 指令碼
第一步:配置內網,即MASTER端
--版本:2.0
--修訂者:陳光 holen@263.net
--時間:2003-6-8 15:30
--內網作為MASTER
--建立內網使用者HOLEN
CONN SYSTEM/PASSWORD@ORANEI
CREATE USER "HOLEN" PROFILE "DEFAULT" IDENTIFIED BY "HOLEN" ;
GRANT "CONNECT" TO "HOLEN";
GRANT "DBA" TO "HOLEN";
GRANT "RESOURCE" TO "HOLEN";
--匯入內網Database Backup,在 dos 下到入完成(表LAWTABLE,REGISTER及其他表)
第二步:配置內網,即MASTER端(續)
--需要複製(同步)的表為HOLEN使用者下的LAWTABLE,REGISTER
--建立repadmin使用者管理複製環境
CREATE USER REPADMIN IDENTIFIED BY REPADMIN;
ALTER USER REPADMIN DEFAULT TABLESPACE USERS;
ALTER USER REPADMIN TEMPORARY TABLESPACE TEMP;
GRANT connect, resource TO REPADMIN;
--授予repadmin使用者權限可以管理當前網站中任何主體組
EXECUTE dbms_repcat_admin.grant_admin_any_schema('REPADMIN');