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