號碼攜帶集中管理系統的高可用技術(shù)應用
3.5.2 數據庫集群軟件
我們以ORACLE的真正應用集群(Real Application Cluster,RAC)軟件為例,介紹數據庫集群軟件的主要特點(diǎn)。
?。?)共享磁盤(pán)
與Single-Instance Oracle的存儲方式最主要的不同之處在于RAC存儲必須將所有RAC中數據文件存放在共享設備中,以便訪(fǎng)問(wèn)相同Database的Instance能夠共享。同時(shí),為了能夠使每個(gè)Instance能夠獨立操作,也為了系統恢復時(shí)其他Instance能找到相關(guān)的操作痕跡,RAC數據庫與單實(shí)例數據庫在存儲結構上還存在以下不同:
?。?)每一個(gè)Instance都有自己的SGA(系統全局區)。
?。?)每一個(gè)Instance都有自己的Background Process。
?。?)每一個(gè)Instance都有自己的Redo Logs。
?。?)每一個(gè)Instance都有自己的Undo表空間。
RAC也不能使用傳統的文件系統,因為傳統的文件系統不支持多系統的并行掛載,必須將文件存儲在沒(méi)有任何文件系統的裸設備或是支持多系統并發(fā)訪(fǎng)問(wèn)的文件系統中。
RAC操作要求在所有Instance中對控制共享資源的訪(fǎng)問(wèn)進(jìn)行同步。RAC使用Global Resource Directory來(lái)記錄Cluster Database中資源的使用信息,Global Cache Service(GCS)和Global Enqueue Service(GES)管理GRD中的信息。每個(gè)Instance在進(jìn)行讀寫(xiě)操作后,要由GCS或者GES按照嚴格的流程同步到其他Instance的Buffer中。
?。?)緩存融合(Cache Fusion)
在RAC環(huán)境中,每個(gè)實(shí)例的內存結構和后臺進(jìn)程都是相同的,它們看起來(lái)像單一系統的一樣。每個(gè)實(shí)例的SGA內有一個(gè)緩沖區,使用Cache Fusion技術(shù),每個(gè)實(shí)例就像使用單一緩存一樣使用集群實(shí)例的緩存來(lái)處理數據庫。Cache Fusion技術(shù)可以最大限度地降低磁盤(pán)I/O,優(yōu)化數據讀寫(xiě)。節點(diǎn)之間會(huì )產(chǎn)生不小的網(wǎng)絡(luò )通信和CPU的開(kāi)銷(xiāo),因此雙節點(diǎn)RAC的性能不會(huì )是單節點(diǎn)性能的兩倍。
?。?)透明應用切換
當RAC群集中的一個(gè)節點(diǎn)發(fā)生了故障,故障節點(diǎn)上所有保存在內存中運行的事務(wù)會(huì )丟失,Oracle將故障節點(diǎn)所擁有數據塊的控制權限重新轉交給正常節點(diǎn),此過(guò)程稱(chēng)為全局緩存服務(wù)重置。在全局緩存服務(wù)重置發(fā)生時(shí),RAC中所有服務(wù)器都會(huì )被凍結,所有應用程序將被掛起,GCS將不會(huì )響應群集中任何節點(diǎn)發(fā)出的請求;重置后,Oracle讀取日志記錄,確定并鎖定需要恢復的頁(yè)面,并執行回滾,此時(shí)數據庫恢復可用。
3.6 應用軟件的系統恢復方案
即使我們采取了前面所有的措施,也需要考慮在前面方案失敗的情況下,即系統底層軟件或者硬件發(fā)生錯誤而導致系統重啟時(shí)的處理辦法。
系統在重啟前,系統中正在運行的有若干個(gè)流程,每個(gè)流程都處于不同的狀態(tài),應用軟件的恢復方案就是要保證系統重啟后,這些狀態(tài)都能夠恢復并自動(dòng)運行到結束狀態(tài)。為此,系統在運行過(guò)程中,所有消息和流程的狀態(tài)都需要在修改的時(shí)候保存在數據庫中,而不能僅僅保存在內存中,在System Recover的時(shí)候,需要檢查數據庫中所有沒(méi)有到最終狀態(tài)的消息和流程并進(jìn)行后續處理。
CSMS在System Recover后實(shí)現過(guò)程如下:
?。?)恢復所有消息:恢復CSMS發(fā)出的消息,恢復CSMS收到的消息。
?。?)恢復申請流程。
?。?)恢復注銷(xiāo)流程。
?。?)恢復停機相關(guān)流程。
?。?)恢復審計流程。
?。?)檢查當天的生效廣播。
?。?)檢查當天的同步。
?。?)檢查當月的同步。
系統恢復的關(guān)鍵就是要清楚每個(gè)流程的不同狀態(tài),比如在消息的恢復中,對于從CSMS發(fā)送出去的NP消息,狀態(tài)包括:
●Init(初始)。
●Sending(發(fā)送中):該消息已經(jīng)發(fā)送給SOA/LSMS,等待ACK。
●Wait Send(等待發(fā)送):ACK超時(shí)重發(fā)。
●Sent(發(fā)送成功):收到ACK信息。
●Complete(完成):收到該NP消息(請求/指示)的回復(響應/確認),并已經(jīng)成功發(fā)送相應的ACK。
對于CSMS接收到的NP消息,狀態(tài)包括:
●Init(初始)。
●Processing(處理中):表示系統正在處理該NP消息,主要包括將該NP消息保存入系統,根據該NP消息的類(lèi)型,選擇需要處理的方式。
●Processed(處理結束):表示系統已經(jīng)處理結束該NP消息。
●Replying(正在發(fā)送回復消息):系統將組織好的NP回復消息已經(jīng)發(fā)送到SOA/LSMS,該消息沒(méi)有收到ACK。
●Wait Reply(等待回復):ACK超時(shí)等待重發(fā)。
●Complete(完成):系統收到該消息的ACK信息。
對于系統的其他恢復流程,方法類(lèi)似不再贅述。
3.7 磁盤(pán)陣列的RAID和磁帶庫備份方案
系統高可靠性最后的考慮就是存儲設備,以目前的技術(shù)而言,有效的存儲方案不僅可以保證存儲數據的安全可靠,還能夠提高硬盤(pán)讀寫(xiě)的速度,常用的技術(shù)就是RAID。
RAID技術(shù)按照級別可以分為RAID0,RAID1,RAID5等,不同級別RAID的存儲效率不同,當硬盤(pán)出現故障時(shí)能夠恢復的時(shí)間也不相同,具體技術(shù)可以參考相關(guān)技術(shù)文檔。
為了進(jìn)一步增加數據存儲的保護功能,系統一般還會(huì )有其他介質(zhì)的備份方案,如磁帶庫備份。磁盤(pán)陣列的數據按照一定的規則備份到磁帶庫上,一方面可以增加存儲設備的容量,同時(shí)對數據保護又增加了一層保障。
4 結束語(yǔ)
作為號碼攜帶集中管理系統的重要性能指標之一,高可用性具有十分重要的意義。因為高可用性需要考慮到系統的各個(gè)層面,相對也比較復雜。尤其在各種新的IT技術(shù)層出不窮的今天,研究各種高可用性技術(shù),選擇合適的高可用性技術(shù)方案,應作為系統架構設計者和相關(guān)技術(shù)研究人員的重點(diǎn)研究?jì)热?。本文僅作為拋磚引玉,對號碼攜帶集中管理系統的各種高可用技術(shù)進(jìn)行了簡(jiǎn)單的分析和總結,相信這些高可用性技術(shù)對類(lèi)似系統的設計具有一定的參考意義。
評論