一、設(shè)計原則
1、單機可展性
即設(shè)備升級的余地,系統(tǒng)采用的每一臺主機,都具備良好的擴展性。特別是系統(tǒng)硬件具備平衡的設(shè)計,各主要組成部分(CPU,內(nèi)存,I/O)可以按照應(yīng)用的需要相對獨立地升級,而不互相牽制。另外,高性能的主機還應(yīng)該具備網(wǎng)絡(luò)接口的Trunking,即將幾個物理網(wǎng)絡(luò)通道合成一個高帶寬的邏輯網(wǎng)絡(luò)通道的冗余擴展,實現(xiàn)網(wǎng)絡(luò)可擴展性。
2、群集可擴展性
一個方案中,使用了群集的設(shè)計,其目的就是負(fù)載均衡、冗余、可靠性和可擴展性。在群集中增加一臺新的機器,結(jié)合系統(tǒng)級高可用群集的配置,由并行數(shù)據(jù)庫自行調(diào)整處理任務(wù)的分布。
3、高可靠性設(shè)計
對于關(guān)鍵應(yīng)用來說,高可靠性的要求是不言而諭的。在總體方案設(shè)計中,我們始終將系統(tǒng)的高可靠性設(shè)計放在首先考慮的位置,系統(tǒng)的高可靠可用性,也即系統(tǒng)能否提供高度持續(xù)不間斷的用戶服務(wù)能力,是系統(tǒng)成敗的關(guān)鍵所在。系統(tǒng)設(shè)計無單點故障。
4、高可用性
確保數(shù)據(jù)完整有效,無丟失,無錯誤。
二、概述
隨著系統(tǒng)日常業(yè)務(wù)運行及數(shù)據(jù)量大大增加,反恐事件突發(fā),特別是在可靠性保障及數(shù)據(jù)安全性,需要對于核心系統(tǒng)應(yīng)構(gòu)建集群容錯系統(tǒng),應(yīng)通過一整套基礎(chǔ)備份方案統(tǒng)一備份系統(tǒng),極大的提高了業(yè)務(wù)系統(tǒng)的可靠性及數(shù)據(jù)安全性。在基礎(chǔ)備份方案完善的基礎(chǔ)之上,應(yīng)要著重考慮核心業(yè)務(wù)系統(tǒng)的災(zāi)難熱備能力,可以在生產(chǎn)節(jié)點遭遇重大災(zāi)難打擊的時候可以快速的恢復(fù)業(yè)務(wù)應(yīng)用,提高抗重大災(zāi)難打擊能力。
核心系統(tǒng)應(yīng)該運行在Oracle數(shù)據(jù)庫之上,信息化IT系統(tǒng)提供穩(wěn)定性及數(shù)據(jù)安全性基礎(chǔ)保障。Oracle數(shù)據(jù)庫系統(tǒng)是一個較為復(fù)雜的數(shù)據(jù)庫,作為信息化IT系統(tǒng)的基礎(chǔ)數(shù)據(jù)存儲和運行平臺,存儲著核心數(shù)據(jù)資料和基本業(yè)務(wù)邏輯,其穩(wěn)定性及安全性直接關(guān)系著對外服務(wù)能力。
如何確保應(yīng)急系統(tǒng)信息化IT系統(tǒng)各業(yè)務(wù)子系統(tǒng)之間的數(shù)據(jù)信息共享,數(shù)據(jù)之間及時或定時同步。采用ORACLE STREAM數(shù)據(jù)流技術(shù)進行業(yè)務(wù)系統(tǒng)之間的數(shù)據(jù)同步,幾乎對主系統(tǒng)不產(chǎn)生任何性能壓力。大大提高核心業(yè)務(wù)系統(tǒng)的性能,穩(wěn)定性等。
三、系統(tǒng)設(shè)計
四、服務(wù)器負(fù)載均衡及集群技術(shù)
服務(wù)器系統(tǒng)的高可靠運行是任何一個信息系統(tǒng)硬件環(huán)境設(shè)計的基本原則,隨著信息系統(tǒng)對穩(wěn)定性、可靠性以及性能的要求不斷提高,我們在進行系統(tǒng)設(shè)計時更多的引進目前主流的、技術(shù)成熟雙機集群以及負(fù)載均衡技術(shù)。
1、服務(wù)器集群
集群技術(shù)(Cluster)定義如下:一組相互獨立的服務(wù)器在網(wǎng)絡(luò)中表現(xiàn)為單一的系統(tǒng),并以單一系統(tǒng)的模式加以管理。此單一系統(tǒng)為客戶工作站提供高可靠性服務(wù)。大多數(shù)模式下,集群中所有的計算機擁有一個共同的名稱,集群內(nèi)任一系統(tǒng)上運行的服務(wù)可被所有的網(wǎng)絡(luò)客戶所使用。Cluster必須可以協(xié)調(diào)管理各分離的組件的錯誤和失敗,并可透明的向Cluster中加入組件。一個Cluster包含多個(至少二臺)擁有共享數(shù)據(jù)存儲空間的服務(wù)器。任何一臺服務(wù)器運行一個應(yīng)用時,應(yīng)用數(shù)據(jù)被存儲在共享的數(shù)據(jù)空間內(nèi)。每臺服務(wù)器的操作系統(tǒng)和應(yīng)用程序文件存儲在其各自的本地存儲空間上。Cluster內(nèi)各節(jié)點服務(wù)器通過一內(nèi)部局域網(wǎng)相互通訊。當(dāng)一臺節(jié)點服務(wù)器發(fā)生故障時,這臺服務(wù)器上所運行的應(yīng)用程序?qū)⒃诹硪粋€節(jié)點服務(wù)器上被自動接管。當(dāng)一個應(yīng)用服務(wù)發(fā)生故障時,應(yīng)用服務(wù)將被重新啟動或被另一臺服務(wù)器接管。當(dāng)以上任一故障發(fā)生時,客戶將能很快連接到新的應(yīng)用服務(wù)上。
服務(wù)器集群技術(shù)能夠非常有效的提高系統(tǒng)的可靠性、穩(wěn)定運行,而且所有的應(yīng)用切換時間非常短暫,對終端用戶透明,用戶的業(yè)務(wù)應(yīng)用可以持續(xù)運行,他并不關(guān)注后臺故障的發(fā)生。
如圖所示,服務(wù)器集群包含至少兩臺服務(wù)器,其中一臺為主服務(wù)器,另一臺為備服務(wù)器,兩臺服務(wù)器共享存儲??蛻舳嗽L問數(shù)據(jù)時候通過主服務(wù)器進行訪問,備服務(wù)器通過心跳線不斷監(jiān)測主服務(wù)器的運行狀況,一旦主服務(wù)器故障,被服務(wù)器將自動接管主服務(wù)器的所有應(yīng)用服務(wù),確保整個系統(tǒng)的持續(xù)運行。
2、服務(wù)器負(fù)載均衡
雖然服務(wù)器集群技術(shù)有效解決了系統(tǒng)的可靠性問題,但是隨著信息化程度的不斷提高,大型的應(yīng)用系統(tǒng)不斷被推出。指揮系統(tǒng)是一個涉及多方面資源的綜合應(yīng)用系統(tǒng),系統(tǒng)可靠運行是首要條件,此外硬件環(huán)境還需要考慮系統(tǒng)性能問題,尤其是在系統(tǒng)并發(fā)訪問量大的情況下,如何保障系統(tǒng)的運行效率。在此我們推薦選用服務(wù)器負(fù)載均衡方案。業(yè)界服務(wù)器負(fù)載均衡方案很多,而且技術(shù)都比較成熟,我們推薦選用Oracle 10G中的RAC(Real Application Cluster)技術(shù)以及Weblogic網(wǎng)絡(luò)部署軟件的負(fù)載均衡技術(shù)。
Oracle RAC:數(shù)據(jù)庫級負(fù)載均衡技術(shù),實現(xiàn)數(shù)據(jù)訪問層的負(fù)載均衡,達到數(shù)據(jù)庫系統(tǒng)的高可用性。
應(yīng)用中間層的負(fù)載均衡技術(shù),部署在B/S多層機構(gòu)的應(yīng)用中間層,通過兩臺應(yīng)用服務(wù)器實現(xiàn)中間層邏輯處理的負(fù)載均衡。最終保證應(yīng)用層的高可用性。
Real Application Cluster(以前稱作Oracle Parallel Server,OPS)用來在集群環(huán)境下實現(xiàn)多機共享數(shù)據(jù)庫,以保證應(yīng)用的高可用性。同時可以自動實現(xiàn)并行處理及負(fù)載均衡,還能實現(xiàn)數(shù)據(jù)庫在故障時的容錯和無斷點恢復(fù)。
Real Application Cluster為大多數(shù)高要求數(shù)據(jù)庫環(huán)境提供了極高的性能和完美的糾錯功能。Real Application Cluster允許集群系統(tǒng)或大型并行系統(tǒng)中的多個節(jié)點共享同一物理數(shù)據(jù)庫。Real Application Cluster可以自動進行負(fù)載平衡、故障修復(fù)和規(guī)劃停機時間,以支持高可用性應(yīng)用程序。它還顯著提高了大型數(shù)據(jù)倉庫和決策支持系統(tǒng)的性能。與并行查詢選件結(jié)合,它還提供了節(jié)點間并行性和節(jié)點的并行性,以得到更高的性能。
多服務(wù)器集群的Cluster結(jié)構(gòu),因其具有高可靠性、大容量共享磁盤支持、以及無斷點的故障恢復(fù),越來越受到世人的關(guān)注,越來越多的硬件廠商都相繼推出自己的Cluster機種和機型,它已經(jīng)成為硬件平臺的一個新的發(fā)展方向。
Oracle獨有的并行服務(wù)器技術(shù)可以良好地保證應(yīng)用系統(tǒng)的高可用性,同時最大限度地發(fā)揮多機系統(tǒng)硬件平臺的性能。
在并行服務(wù)器方式下,兩臺(或多臺)服務(wù)器上各自運行一個數(shù)據(jù)庫核心進程,但共同管理、操作一個數(shù)據(jù)庫。客戶端無論連接到哪個服務(wù)器都可以在數(shù)據(jù)庫中進行操作。當(dāng)服務(wù)器A由于故障失效時,數(shù)據(jù)庫系統(tǒng)本身并未停止工作,連接在服務(wù)器B上的客戶端還可以繼續(xù)進行正常工作。同時,服務(wù)器B上也不需要再啟動新的數(shù)據(jù)庫服務(wù)器進程,因此也沒有“切換時間”。
Oracle并行服務(wù)器方式有以下優(yōu)點:
各服務(wù)器共享一個數(shù)據(jù)庫,在正常運行時可以進行負(fù)載分擔(dān),無需考慮應(yīng)用數(shù)據(jù)的人為分割。
并行服務(wù)器方式對應(yīng)用完全透明,在應(yīng)用程序設(shè)計和開發(fā)的過程中也不需要進行特殊編程,簡化了開發(fā)的復(fù)雜程度,同時今后系統(tǒng)擴展也無需修改應(yīng)用程序。
不需要重新啟動數(shù)據(jù)庫核心進程,縮短了故障造成的停機時間。