0 引言
廣州地鐵自動(dòng)售檢票系統(tǒng)(Automatic Fare Collection ,AFC)是基于計(jì)算機(jī)、通信、網(wǎng)絡(luò)、自動(dòng)控制等技術(shù),實(shí)現(xiàn)城市軌道交通售票、檢票、計(jì)費(fèi)、收費(fèi)、清分、管理等全過程的自動(dòng)化系統(tǒng)。AFC系統(tǒng)共分為車票、車站終端設(shè)備、車站計(jì)算機(jī)系統(tǒng)、線路中央計(jì)算機(jī)系統(tǒng)、清分系統(tǒng)五個(gè)層次。其中清分系統(tǒng)亦即軌道交通清分綜合中央計(jì)算機(jī)系統(tǒng)(Integrated Central Computer System,ICCS)為AFC系統(tǒng)的數(shù)據(jù)中心,主要用于廣州市軌道交通各條線路之間,與公交系統(tǒng)、銀行系統(tǒng)及其他相關(guān)系統(tǒng)之間的清算分賬、車票交易數(shù)據(jù)的處理及統(tǒng)計(jì)分析,同時(shí)還具備對(duì)線路AFC系統(tǒng)設(shè)備運(yùn)營管理的功能。ICCS遠(yuǎn)期定位于整個(gè)廣州市及珠江三角洲城際軌道交通系統(tǒng)的清分中心和AFC運(yùn)營管理中心,服務(wù)于整個(gè)廣州市軌道交通線路的收益清分,實(shí)現(xiàn)整體處理車票交易數(shù)據(jù)及統(tǒng)計(jì)分析,但不涉及具體線路的內(nèi)部運(yùn)作。
清分體系是軌道交通線網(wǎng)票務(wù)數(shù)據(jù)的頂級(jí)收斂口,其建立及原則的制定最終服務(wù)于“數(shù)據(jù)綜合應(yīng)用”的目的,除了滿足日常的結(jié)算業(yè)務(wù)外,更重要的是使得體系內(nèi)所匯集的各類票務(wù)數(shù)據(jù)能被有效整合、利用。為了提高清分系統(tǒng)的健壯性和可用性,增強(qiáng)系統(tǒng)抵御突發(fā)性災(zāi)難的能力,建立了容災(zāi)系統(tǒng),即使發(fā)生系統(tǒng)災(zāi)難,也能快速地恢復(fù)系統(tǒng)和數(shù)據(jù),確保業(yè)務(wù)的連續(xù)性。
1 容災(zāi)技術(shù)概述
容災(zāi)(disater tolerant)是指除了本地系統(tǒng)以外,用戶另外建立的冗余系統(tǒng),當(dāng)災(zāi)難發(fā)生本地系統(tǒng)受到破壞時(shí),冗余系統(tǒng)可以接管用戶正常的業(yè)務(wù),達(dá)到業(yè)務(wù)不間斷的目的。容災(zāi)表現(xiàn)為一種未雨綢繆的主動(dòng)性,而不是在災(zāi)難發(fā)生后的“亡羊補(bǔ)牢”。
1.1 容災(zāi)原理
容災(zāi)技術(shù)的基本原理就是數(shù)據(jù)備份。數(shù)據(jù)備份是指為防止由系統(tǒng)故障所導(dǎo)致的數(shù)據(jù)丟失,而將全部或部分?jǐn)?shù)據(jù)生產(chǎn)中心的主機(jī)系統(tǒng)存儲(chǔ)設(shè)備復(fù)制到其他的存儲(chǔ)介質(zhì)的過程。數(shù)據(jù)備份是用戶進(jìn)行容災(zāi)系統(tǒng)建設(shè)的第一步,也是最終容災(zāi)系統(tǒng)恢復(fù)的基礎(chǔ)。
隨著業(yè)務(wù)數(shù)據(jù)的不斷增加和可用性要求不斷提高,傳統(tǒng)的離線、在線備份根本無法滿足需求。要想達(dá)到抵御災(zāi)難的目的,必須選用專門的軟硬件設(shè)施,制定相應(yīng)的容災(zāi)方案。雖然容災(zāi)的核心是備份,但其不同于一般意義上的數(shù)據(jù)備份,因?yàn)橥ǔ5膫浞荽鎯?chǔ)系統(tǒng)總是與工作系統(tǒng)處于同一位置,而容災(zāi)備份是通過在異地建立和維護(hù)一個(gè)備份存儲(chǔ)系統(tǒng),利用地理上的分離來保證系統(tǒng)和數(shù)據(jù)對(duì)災(zāi)難性事件的抵御能力。因此,容災(zāi)與備份的根本區(qū)別在于容災(zāi)不僅要保證企業(yè)數(shù)據(jù)的安全可靠,同時(shí)要保證業(yè)務(wù)的連續(xù)性。
1.2 容災(zāi)系統(tǒng)的構(gòu)成
容災(zāi)系統(tǒng)應(yīng)包括兩個(gè)層面的問題:數(shù)據(jù)容災(zāi)和應(yīng)用容災(zāi)。
數(shù)據(jù)容災(zāi)就是指建立一個(gè)異地的數(shù)據(jù)系統(tǒng),該系統(tǒng)是本地關(guān)鍵應(yīng)用數(shù)據(jù)的一個(gè)實(shí)時(shí)復(fù)制。在本地?cái)?shù)據(jù)及整個(gè)應(yīng)用系統(tǒng)出現(xiàn)災(zāi)難時(shí),系統(tǒng)至少在異地保存一份可用的關(guān)鍵業(yè)務(wù)的數(shù)據(jù)。應(yīng)用容災(zāi)是在容災(zāi)的基礎(chǔ)上,在異地建立一套完整的與本地系統(tǒng)相當(dāng)?shù)膫浞輵?yīng)用系統(tǒng),在災(zāi)難情況下,遠(yuǎn)程系統(tǒng)迅速接管業(yè)務(wù)運(yùn)行。數(shù)據(jù)容災(zāi)是容災(zāi)系統(tǒng)的基本要求,而應(yīng)用容災(zāi)是系統(tǒng)建設(shè)目標(biāo),應(yīng)用容災(zāi)必須建立在數(shù)據(jù)容災(zāi)的基礎(chǔ)之上,通過整合應(yīng)用系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)等各種資源來實(shí)現(xiàn)。
1.3 容災(zāi)關(guān)鍵技術(shù)
在建立容災(zāi)系統(tǒng)時(shí)會(huì)涉及到多種技術(shù),目前,關(guān)鍵的技術(shù)主要有:遠(yuǎn)程復(fù)制技術(shù)、快照技術(shù)、基于SAN的互連技術(shù)、虛擬存儲(chǔ)等。
1.3.1 遠(yuǎn)程復(fù)制技術(shù)
遠(yuǎn)程復(fù)制技術(shù)是將主點(diǎn)數(shù)據(jù)中心的數(shù)據(jù)復(fù)制到遠(yuǎn)程的備份數(shù)據(jù)中心,隨著更新在主站點(diǎn)的執(zhí)行,遠(yuǎn)程站點(diǎn)保持與主站點(diǎn)的同步,遠(yuǎn)程復(fù)制技術(shù)是容災(zāi)備份技術(shù)的核心技術(shù),同時(shí)也是保持遠(yuǎn)程數(shù)據(jù)同步和實(shí)現(xiàn)災(zāi)難恢復(fù)的基礎(chǔ)。
1.3.2 快照技術(shù)
快照是通過軟件對(duì)要備份的磁盤子系統(tǒng)的數(shù)據(jù)快速掃描,建立一個(gè)要備份數(shù)據(jù)的快照邏輯單元號(hào)LUN和快照cache。在快速掃描時(shí),把備份過程中即將要修改的數(shù)據(jù)塊同時(shí)快速拷貝到快照cache中。快照LUN是一組指針,它指向快照cache和磁盤子系統(tǒng)中不變的數(shù)據(jù)塊(在備份過程中)。在正常業(yè)務(wù)進(jìn)行的同時(shí),利用快照LUN實(shí)現(xiàn)對(duì)原數(shù)據(jù)的一個(gè)完全的備份。它可使用戶在正常不受影響的情況下,實(shí)時(shí)提取當(dāng)前在線業(yè)務(wù)數(shù)據(jù)。其“備份窗口”接近于零,可大大增加系統(tǒng)業(yè)務(wù)的連續(xù)性,為實(shí)現(xiàn)系統(tǒng)真正的7×24運(yùn)轉(zhuǎn)提供了保證。
遠(yuǎn)程復(fù)制技術(shù)往往同快照技術(shù)結(jié)合起來實(shí)現(xiàn)遠(yuǎn)程備份,即先通過遠(yuǎn)程復(fù)制技術(shù)把數(shù)據(jù)備份到遠(yuǎn)程的存儲(chǔ)系統(tǒng)中,再用快照技術(shù)把遠(yuǎn)程存儲(chǔ)系統(tǒng)中的信息備份到遠(yuǎn)程的磁帶庫、光盤庫中。
1.3.3 基于SAN的互連技術(shù)
主點(diǎn)數(shù)據(jù)中心和備點(diǎn)數(shù)據(jù)中心之間的數(shù)據(jù)備份,可通過運(yùn)用SAN的遠(yuǎn)程復(fù)制技術(shù)來實(shí)現(xiàn)。目前,出現(xiàn)了多種基于IP的SAN的遠(yuǎn)程數(shù)據(jù)容災(zāi)備份技術(shù)。它們是基于IP的SAN的互連協(xié)議,將主點(diǎn)數(shù)據(jù)中心SAN中的信息通過現(xiàn)有的TCP/IP網(wǎng)絡(luò),遠(yuǎn)程復(fù)制到備援中心SAN中。當(dāng)備點(diǎn)數(shù)據(jù)中心存儲(chǔ)的數(shù)據(jù)量過大時(shí),可利用快照技術(shù)將其備份到磁帶庫或光盤庫中。這種基于IP的SAN的遠(yuǎn)程容災(zāi)備份可以跨越LAN、MAN和WAN。
1.3.4 虛擬存儲(chǔ)
虛擬存儲(chǔ)技術(shù)在系統(tǒng)彈性和可擴(kuò)展性上開創(chuàng)了新的局面,它將幾個(gè)IDE或SCSI驅(qū)動(dòng)器等不同的存儲(chǔ)設(shè)備串聯(lián)為一個(gè)存儲(chǔ)池。存儲(chǔ)集群的整個(gè)存儲(chǔ)容量可以分為多個(gè)邏輯卷,并作為虛擬分區(qū)進(jìn)行管理。
2 容災(zāi)技術(shù)在城市軌道交通系統(tǒng)中的應(yīng)用
圖 1 容災(zāi)系統(tǒng)組成框圖
2.1 數(shù)據(jù)級(jí)容災(zāi)的實(shí)現(xiàn)
2.1.1 數(shù)據(jù)復(fù)制產(chǎn)品
容災(zāi)系統(tǒng)中的遠(yuǎn)程數(shù)據(jù)復(fù)制產(chǎn)品選用Sybase 復(fù)制服務(wù)器RS(Replication Server)。該技術(shù)是Client/ Server環(huán)境下實(shí)現(xiàn)數(shù)據(jù)高可用性的一種方法。一個(gè)完整的復(fù)制服務(wù)器RS系統(tǒng)應(yīng)包括:主備點(diǎn)ASE ,RS(Replication server) , LTM(Log Transfer Manger) 或Rep Agent,RSSD(RS System Database),如圖2所示。RS的復(fù)制分為基于表的復(fù)制和數(shù)據(jù)庫的復(fù)制兩種。考慮到數(shù)據(jù)一致性維護(hù)的簡易性,采用基于數(shù)據(jù)庫整庫的復(fù)制模式。
圖2 sybase復(fù)制結(jié)構(gòu)示意圖
為不影響清算業(yè)務(wù)的正常運(yùn)行,復(fù)制同步在非業(yè)務(wù)進(jìn)行時(shí)間進(jìn)行,其中主點(diǎn)復(fù)制器名為:PS,備點(diǎn)服務(wù)器名為:BS,復(fù)制服務(wù)器名為:ccds_rep,復(fù)制服務(wù)器系統(tǒng)數(shù)據(jù)庫名為:RSSD,預(yù)復(fù)制的數(shù)據(jù)庫名為:dt_center,復(fù)制同步過程如下:
1、停用主點(diǎn)數(shù)據(jù)庫dt_center的Rep agent 線程
isq1 -Usa -P -SPS
> use dt_center
> go
> sp_stop_rep_agent dt_center
> go
2、執(zhí)行忽略輔助截?cái)帱c(diǎn)操作,以免在復(fù)制未開啟時(shí)主點(diǎn)的日志堆積導(dǎo)致日志空間的不可用
> dbcc settrunc (‘ltm’,‘ignore’)
> go
3、 截?cái)嘀鼽c(diǎn)數(shù)據(jù)庫dt_center的日志
dump tran dt_center with truncate_only
4、備份主點(diǎn)數(shù)據(jù)庫dt_center
dump database dt_center to‘/export/home/sybase/dt_center.dmp’
2.1.3 數(shù)據(jù)復(fù)制同步步驟
1、以單用戶模式重啟復(fù)制服務(wù)器
Startserver -f RUN_ccds_rep
2、清空復(fù)制服務(wù)器穩(wěn)定隊(duì)列中的數(shù)據(jù)
isq1 -Usa -P -Sccds_rep
> sysadmin sqm_purge_queue ,q number ,q type
> go
q number和q type的值使用admin who或admin who,sqm或admin who,sqt查找,其中:q type=0 表示出站隊(duì)列,q type=1 表示入站隊(duì)列。
3、登錄到復(fù)制系統(tǒng)數(shù)據(jù)庫,對(duì)主點(diǎn)數(shù)據(jù)庫執(zhí)行LTM清空操作
isql -Usa -SBS
> use ccds_rep_RSSD
> go
> rs_zeroltm PS,dt_center
2> go
4、關(guān)閉復(fù)制服務(wù)器
isq1 -Usa -P -Sccds_rep
> shutdown
> go
5、在復(fù)制點(diǎn)裝載(load) 主點(diǎn)dt_center數(shù)據(jù)庫的備份
> load database dt_center from‘/export/home/sybase/dt_center.dmp’
> go
6、以正常模式重啟復(fù)制服務(wù)器
Startserver -f RUN_ccds_rep
7、恢復(fù)主點(diǎn)數(shù)據(jù)庫的輔助截?cái)帱c(diǎn)
isq1 -Usa -P -SPS
> use dt_center
> go
> dbcc settrunc (‘ltm’,‘valid’)
> go
8、恢復(fù)主點(diǎn)數(shù)據(jù)庫的復(fù)制代理
> sp_start_rep_agent dt_center
> go
2.1.4 復(fù)制同步后續(xù)工作
數(shù)據(jù)復(fù)制同步后,查看相關(guān)DSI和Agent是否已經(jīng)UP,并進(jìn)行復(fù)制測(cè)試,根據(jù)復(fù)制日志及時(shí)排錯(cuò),確保復(fù)制功能成功啟用。
復(fù)制技術(shù)作為Sybase數(shù)據(jù)庫系統(tǒng)的關(guān)鍵技術(shù)之一,采用傳遞事務(wù)而不是數(shù)據(jù)行的復(fù)制機(jī)制,這樣可以大大減少數(shù)據(jù)的傳送量,并能夠有效地保證數(shù)據(jù)一致性、可靠性。通過以上的操作,實(shí)現(xiàn)了容災(zāi)系統(tǒng)中數(shù)據(jù)級(jí)的容災(zāi)。
2.2 應(yīng)用級(jí)容災(zāi)的實(shí)現(xiàn)
在建立了以上數(shù)據(jù)級(jí)容災(zāi)的基礎(chǔ)上,在異地容災(zāi)中心建立一套完整的與主點(diǎn)數(shù)據(jù)中心系統(tǒng)相同的關(guān)鍵業(yè)務(wù)應(yīng)用系統(tǒng),確保在災(zāi)難情況下,遠(yuǎn)程系統(tǒng)能迅速接管業(yè)務(wù)運(yùn)行。
3 小結(jié)
建立性能穩(wěn)定的災(zāi)備中心并不意味著從此可以高枕無憂,還必須要制定災(zāi)備的管理制度。廣州地鐵清分中心從容災(zāi)系統(tǒng)的基礎(chǔ)理論出發(fā),構(gòu)建滿足信息系統(tǒng)性能要求的容災(zāi)系統(tǒng)的同時(shí)相應(yīng)制定了一系列日常備份制度和災(zāi)難恢復(fù)措施,如災(zāi)備恢復(fù)流程,并在實(shí)踐中不斷進(jìn)行評(píng)估、演練并加以完善,以保證災(zāi)備不僅僅是形式上的內(nèi)容,能真正意義上確保主點(diǎn)故障情況下業(yè)務(wù)的連續(xù)性。
參考文獻(xiàn)
[1] 單桂軍,容災(zāi)技術(shù)在校園網(wǎng)絡(luò)信息中心安全中的應(yīng)用與研究[J].太原師范學(xué)院學(xué)報(bào)(自然科學(xué)版),2006,9(5):40-43
[2] 楊曉紅,李健,楊衛(wèi)國.信息系統(tǒng)容災(zāi)技術(shù)的分析與研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2005,10(10):2727-2729
[3] 李兆玉,韋世紅,李鶇.容災(zāi)系統(tǒng)的建設(shè)方案研究[J].重慶郵電學(xué)院學(xué)報(bào)(自然科學(xué)版),2005,8(4):478-482
[4] 王渝次.信息系統(tǒng)災(zāi)難恢復(fù)的規(guī)劃及實(shí)施[M].北京:北京交通大學(xué)出版社,2006
[5] 朱躍龍,洪筱菡.Sybase Replication Server12. 0 的復(fù)制服務(wù)器技術(shù)研究及應(yīng)用[J]. 計(jì) 算 機(jī) 與 現(xiàn) 代 化,2002,12,59-62