張忠國
摘要:社保信息系統(tǒng)數(shù)據(jù)的安全性和運行不間斷都非常重要,本人所在單位信息系統(tǒng)采用了本地備份和異地容災(zāi)備份的雙重備份模式,提高了系統(tǒng)數(shù)據(jù)的安全可靠性,利用生產(chǎn)系統(tǒng)退下來的設(shè)備組建了實時查詢系統(tǒng)。整個系統(tǒng)采用異構(gòu)方式,結(jié)構(gòu)靈活,性能高效,成本節(jié)省。
關(guān)鍵詞:
中圖分類號:C913 文獻標識碼:A 文章編號:1674-098X(2016)5(c)-0000-00
一、概述
我市社會保險信息系統(tǒng)內(nèi)容涵蓋社會保障業(yè)務(wù)經(jīng)辦、公共服務(wù)、基金監(jiān)管和宏觀決策等核心應(yīng)用,信息系統(tǒng)運行的持續(xù)性、穩(wěn)定性,業(yè)務(wù)數(shù)據(jù)的完整性、正確性、有效性會直接關(guān)系到業(yè)務(wù)的生產(chǎn)、管理與決策活動,關(guān)系到廣大參保人的切身利益。當前我市參保人數(shù)達到500多萬人,但隨著人數(shù)與應(yīng)用系統(tǒng)的不斷增加,系統(tǒng)的數(shù)據(jù)存儲量與處理量越來越大。如果業(yè)務(wù)運行中斷或重要業(yè)務(wù)數(shù)據(jù)的丟失和破壞,會給廣大參保人員和單位帶來不便,甚至會帶來重大的社會影響,給國家造成損失。
二、系統(tǒng)設(shè)計與實現(xiàn)
為保證系統(tǒng)的安全,除了良好的管理和運維外,更重要的是系統(tǒng)結(jié)構(gòu)本身設(shè)計的可靠性要高。整個信息系統(tǒng)主要涉及到中心機房環(huán)境、核心網(wǎng)絡(luò)、服務(wù)器(小型機)、存儲、數(shù)據(jù)庫與應(yīng)用系統(tǒng),這里僅討論其中最重要的與數(shù)據(jù)運行最緊密相關(guān)的服務(wù)器、存儲、數(shù)據(jù)庫系統(tǒng)的安全冗余結(jié)構(gòu)設(shè)計與實現(xiàn)方式。
提高系統(tǒng)運行可靠性最主要的方法就是將系統(tǒng)設(shè)計成冗余結(jié)構(gòu),早前最主流的方式是雙機熱備模式與磁帶備份,后來發(fā)展到建設(shè)容災(zāi)系統(tǒng)。本市與數(shù)據(jù)相關(guān)的主要核心設(shè)備有小型機IBM P750 2臺、華為S18000存儲1臺,小型機HP RX8620 1臺、HP EVA6400存儲1臺,小型機HP RX6600 1臺、NETAPP 存儲FAS3020C 1臺,浪潮NF5270M3服務(wù)器1臺,浪潮AS500G存儲1臺,SAN存儲交換機3臺,ORACLE11G數(shù)據(jù)庫1套,備份軟件:Symantec NetBackup 1套。根據(jù)這些軟硬件條件,系統(tǒng)設(shè)計為本地系統(tǒng)和異地容災(zāi)系統(tǒng),本地系統(tǒng)包含生產(chǎn)系統(tǒng)、備份系統(tǒng)和查詢系統(tǒng)。本地系統(tǒng)存放在本市數(shù)據(jù)中心機房內(nèi),異地容災(zāi)系統(tǒng)存放在B市電信運營商IDC機房。
所有幾套系統(tǒng)都運行ORACLE11G數(shù)據(jù)庫,各系統(tǒng)所使用的設(shè)備如圖中所示。
由于系統(tǒng)中小型機有IBM和HP兩種,其文件結(jié)構(gòu)不同,系統(tǒng)則設(shè)計成異地主機異構(gòu)容災(zāi)系統(tǒng)和本地主機異構(gòu)雙活查詢系統(tǒng), 系統(tǒng)邏輯結(jié)構(gòu)如上圖所示。
1.本地生產(chǎn)系統(tǒng)
生產(chǎn)系統(tǒng)為采用兩個節(jié)點的Oracle RAC,確保數(shù)據(jù)庫的高可用性及充分使用硬件資源,為所有幾個系統(tǒng)提供原始數(shù)據(jù)源。RAC全稱是Real Application Cluster,即真正的應(yīng)用集群,是Oracle提供的一個并行集群系統(tǒng),整個集群系統(tǒng)由Oracle Clusterware (集群就緒軟件)和 Real Application Clusters(RAC)兩大部分組成。Oracle RAC的實質(zhì)是位于不同操作系統(tǒng)的Oracle實例節(jié)點同時訪問同一個Oracle數(shù)據(jù)庫,每個節(jié)點間通過私有網(wǎng)絡(luò)進行通信,互相監(jiān)控節(jié)點的運行狀態(tài),Oracle數(shù)據(jù)庫所有的數(shù)據(jù)文件、聯(lián)機日志文件、控制文件等均放在集群的共享存儲設(shè)備上,而共享存儲設(shè)備可以是RAW、ASM、OCFS2等,所有集群節(jié)點可以同時讀寫共享存儲。本系統(tǒng)數(shù)據(jù)庫每個服務(wù)器節(jié)點上都有自己獨立的OS、ClusterWare、Oracle RAC等數(shù)據(jù)庫程序,每個節(jié)點都有自己的網(wǎng)絡(luò)監(jiān)聽器,當其中一個節(jié)點出現(xiàn)硬件故障、實例故障等問題時不會造成應(yīng)用訪問中斷,從而實現(xiàn)數(shù)據(jù)庫7×24小時的高可用性及高效性。
2.本地數(shù)據(jù)備份系統(tǒng)
本地數(shù)據(jù)備份我們使用了賽門鐵克的Netbackup軟件,對所有需要進行備份的數(shù)據(jù)庫實現(xiàn)完全的在線熱備份而無須數(shù)據(jù)庫服務(wù)停機。在本地備份系統(tǒng)中,采用了集中統(tǒng)一的備份策略管理,通過連接到LAN中的Netbackup Master Server,對整個數(shù)據(jù)庫和應(yīng)用系統(tǒng)的備份工作進行集中的管理、監(jiān)控。
該系統(tǒng)的組成如下:
一臺服務(wù)器為Netbackup軟件的主備份服務(wù)器,連接到局域網(wǎng),本機上的數(shù)據(jù)通過直接備份到備份存儲中。同時,它負責整個備份系統(tǒng)的管理,包括備份策略的制訂、備份數(shù)據(jù)庫的保存。
在LAN中其他的數(shù)據(jù)庫服務(wù)器,作為NetBackup Client,連接到存儲局域網(wǎng)中,并安裝相應(yīng)的數(shù)據(jù)庫Agent,在線備份數(shù)據(jù)庫,然后直接通過LAN將數(shù)據(jù)傳輸?shù)絺浞莘?wù)器上進行備份。
一臺大容量存儲設(shè)備,負責存儲備份后的數(shù)據(jù)。
備份系統(tǒng)對數(shù)據(jù)庫的備份采用在線備份,通過VERITAS Netbackup的Database Agent,在不停止數(shù)據(jù)庫運行的情況下,對數(shù)據(jù)庫數(shù)據(jù)進行備份,備份策略包括全備份、累計增量備份、者增量備份三種方式的結(jié)合。當發(fā)生數(shù)據(jù)損壞時,則可以從虛擬存儲中恢復(fù)數(shù)據(jù),首先選定最近一次全備份進行恢復(fù),然后選定最近一次累計增量備份,最后選定這次累計增量備份以后的所有增量備份項目,依時間順序進行恢復(fù)。
3.異地容災(zāi)系統(tǒng)
能實現(xiàn)異構(gòu)的容災(zāi)軟件有多種,比如DSG,飛康,ORACLE的GoldenGate,為了降低系統(tǒng)的復(fù)雜度,便于維護,本系統(tǒng)采用ORACLE的GoldenGate 來實現(xiàn)。GoldenGate是領(lǐng)先的交易數(shù)據(jù)管理Transactional Data Management (TDM)軟件,可以在異構(gòu)的IT基礎(chǔ)結(jié)構(gòu)之間實現(xiàn)大量數(shù)據(jù)的秒一級的數(shù)據(jù)捕捉、轉(zhuǎn)換和投遞。GoldenGate通過解析數(shù)據(jù)庫日志并將數(shù)據(jù)傳輸和應(yīng)用到目標數(shù)據(jù)庫,實現(xiàn)數(shù)據(jù)同步復(fù)制,通常用于實現(xiàn)關(guān)鍵業(yè)務(wù)數(shù)據(jù)庫容災(zāi)、報表分離和外網(wǎng)查詢等場景,其復(fù)制的原理如下圖所示:
Oracle GoldenGate的復(fù)制技術(shù)對網(wǎng)絡(luò)資源占用極少,完全可以適合各種遠距離的數(shù)據(jù)復(fù)制,本市至B市(數(shù)據(jù)容災(zāi)中心)兩地實際距離超過400公里。設(shè)計采用點到點的光纖專線連接,分別租用中國移動、中國聯(lián)通10Mbps帶寬光纖各一條,互為備份。
正常運行情況下,數(shù)據(jù)同步方向為生產(chǎn)系統(tǒng)到災(zāi)備系統(tǒng)。啟動GoldenGate生產(chǎn)系統(tǒng)上的復(fù)制進程,數(shù)據(jù)同步的工作過程如下:在生產(chǎn)系統(tǒng)上運行GoldenGate捕獲進程,負責實時讀取Oracle數(shù)據(jù)庫交易日志中的數(shù)據(jù)變化,并根據(jù)需要執(zhí)行過濾操作,將數(shù)據(jù)捕獲過來,寫入本地的源隊列文件中,寫入隊列文件的數(shù)據(jù)量約為交易日志文件的四分之一,即日志過濾比為4,這時的數(shù)據(jù)是未經(jīng)過任何壓縮的,同時在生產(chǎn)系統(tǒng)上運行GoldenGate DataPump進程,該進程負責將源隊列文件的內(nèi)容發(fā)送到目標隊列文件中。通過壓縮機制壓縮后傳輸,最大壓縮比理論上可以達到9:1,本系統(tǒng)實際測試值在,6到8之間。我們在選擇傳輸帶寬需求時,就是據(jù)此設(shè)計計算的,依據(jù)如下:在業(yè)務(wù)高峰期間產(chǎn)生歸檔日志大小目前最高為4GB/小時,設(shè)計未來6年內(nèi)漲到3倍,考慮峰值小時內(nèi)瞬時最大值與平均值偏離系數(shù)3, 網(wǎng)絡(luò)傳輸效率為70%。需要的傳輸帶寬則可依據(jù)如下計算公式算出:V=8*((Q*K/T)*P)/(L*Y*X),式中8是1BYTE=8bit,字節(jié)到字位單位換算,Q表示當前高峰數(shù)據(jù)量,K表示增長量,T表示1小時的秒數(shù),P表示最大值偏離系數(shù),L表示日志過濾比,Y表示實際最小壓縮比, X表示網(wǎng)絡(luò)傳輸效率。帶入前述數(shù)據(jù)得V=8*((4GB*3/3600)*3)/(4*6*0.7),算出V=4.8Mbps,據(jù)此我們租用帶寬1OMbps合理實用。
變化數(shù)據(jù)到達災(zāi)備系統(tǒng)后,災(zāi)備系統(tǒng)上的GoldenGate災(zāi)備進程將實時讀取這些交易變化數(shù)據(jù),根據(jù)其在生產(chǎn)系統(tǒng)上的交易順序,完全一致地備份到災(zāi)備系統(tǒng),保證了兩邊交易數(shù)據(jù)的一致性。由于GoldenGate數(shù)據(jù)復(fù)制是實時解釋REDO日志獲取變化的數(shù)據(jù),所以對生產(chǎn)系統(tǒng)的性能影響幾乎可以忽略。
當生產(chǎn)系統(tǒng)發(fā)生故障,無法對外提供服務(wù)時,則將應(yīng)用系統(tǒng)切換到災(zāi)備中心。此時,GoldenGate需要實現(xiàn)反向的數(shù)據(jù)同步,即災(zāi)備系統(tǒng)到生產(chǎn)系統(tǒng)的實時數(shù)據(jù)同步。因此,在啟用災(zāi)備系統(tǒng)的同時,需要同時啟動反向數(shù)據(jù)同步的GoldenGate集成。此時,數(shù)據(jù)同步的工作過程如下:
災(zāi)備系統(tǒng)上的GoldenGate捕獲進程實時讀取災(zāi)備系統(tǒng)交易日志的變化數(shù)據(jù),寫入災(zāi)備系統(tǒng)本地的源隊列文件中;網(wǎng)絡(luò)正常時,則災(zāi)備系統(tǒng)上的GoldenGate DataPump進程將把變化數(shù)據(jù)從源隊列文件壓縮/加密傳輸?shù)缴a(chǎn)系統(tǒng)的目標隊列文件中,而此時,生產(chǎn)系統(tǒng)不必處于正常運行狀態(tài);當生產(chǎn)系統(tǒng)數(shù)據(jù)庫恢復(fù)運行時,生產(chǎn)系統(tǒng)上的GoldenGate交付進程會自動將積累在目標隊列文件中的變化數(shù)據(jù)應(yīng)用到生產(chǎn)系統(tǒng)數(shù)據(jù)庫中,保證生產(chǎn)系統(tǒng)與災(zāi)備系統(tǒng)的交易數(shù)據(jù)同步。
4.本地查詢系統(tǒng)
查詢系統(tǒng)的運算量和安全性要求比生產(chǎn)系統(tǒng)低,則利用原來從核心生產(chǎn)機退下來的設(shè)備,組成查詢系統(tǒng)。通過建立本地讀庫來保持一個與源系統(tǒng)數(shù)據(jù)同步的目標系統(tǒng),同樣使用GoldenGate進行數(shù)據(jù)復(fù)制,工作原理和上面的異地容災(zāi)系統(tǒng)相同,配置基本一樣,這種配置環(huán)境下,生產(chǎn)系統(tǒng)的在線事務(wù)處理性能不會受到影響。因為查詢系統(tǒng)上查詢的數(shù)據(jù)信息與生產(chǎn)系統(tǒng)是秒級的延遲,所以廣大市民進行網(wǎng)上查詢的數(shù)據(jù)是實時信息,同時查詢系統(tǒng)上的數(shù)據(jù)也可以作為一套本地容災(zāi)數(shù)據(jù)備份。生產(chǎn)庫和查詢庫都是OPEN的,都處于激活狀態(tài),因此查詢系統(tǒng)和生產(chǎn)系統(tǒng)組成了異構(gòu)數(shù)據(jù)庫雙活運行系統(tǒng),這里的雙活是指數(shù)據(jù)庫應(yīng)用雙活,而非業(yè)務(wù)應(yīng)用上的相互切換雙活。
三、結(jié)論與意義
按照如上設(shè)計的系統(tǒng)經(jīng)實施驗收后,已經(jīng)運行了近2年,系統(tǒng)穩(wěn)定,性能優(yōu)良。每個季度進行的備份數(shù)據(jù)恢復(fù)測試和每半年的異地容災(zāi)演練中,系統(tǒng)數(shù)據(jù)都能正??煽康幕謴?fù),所建立的實時查詢系統(tǒng),運行也相當穩(wěn)定,極大的方便了參保人。
在財力有限的情況下,本系統(tǒng)通過主機異構(gòu)平臺設(shè)計,即充分利用了設(shè)備價值又實現(xiàn)了系統(tǒng)多功能與保證數(shù)據(jù)安全。因此,這種設(shè)計具有相當?shù)慕?jīng)濟價值和社會價值,值得借鑒和參考。