蘇智韜
(大慶油田信息技術(shù)公司北京分公司,北京 100043)
在當(dāng)前網(wǎng)絡(luò)環(huán)境下,信息越來越成為整個(gè)社會(huì)環(huán)境溝通的載體,甚至可以說,信息本身的安全與穩(wěn)定,已經(jīng)成為影響社會(huì)環(huán)境諸多方面穩(wěn)定的重要因素。而這種對(duì)于信息的安全,進(jìn)一步推動(dòng)了數(shù)據(jù)庫領(lǐng)域相關(guān)問題的產(chǎn)生,在MySQL數(shù)據(jù)庫環(huán)境中,高可用性(HA,High Availability)以及相關(guān)技術(shù)與實(shí)現(xiàn),已經(jīng)成為確保數(shù)據(jù)庫工作穩(wěn)定特征重要手段和依據(jù)。
對(duì)于MySQL數(shù)據(jù)庫工作體系而言,高可用性水平在很大程度上受到應(yīng)用環(huán)境的影響,不同的應(yīng)用領(lǐng)域,對(duì)于高可用性的要求都會(huì)有所不同。常規(guī)而言,高可用性體系需要確保整個(gè)系統(tǒng)的可用性,如果可用度達(dá)到99.9%,就意味著每年的停機(jī)時(shí)間不超過8.8小時(shí)。而對(duì)于要求更為嚴(yán)格的軍事環(huán)境,可用性甚至?xí)灰筮_(dá)到99.999%,當(dāng)然其對(duì)應(yīng)的成本也會(huì)隨之激增。
當(dāng)前在MySQL數(shù)據(jù)庫系統(tǒng)領(lǐng)域中,較為常見的打造高可用性的手段,是采用雙機(jī)服務(wù)器并且建立互為同步復(fù)制體系,進(jìn)一步配合結(jié)合后臺(tái)進(jìn)程延時(shí)數(shù)據(jù)復(fù)制技術(shù),以及服務(wù)器IP地址動(dòng)態(tài)“漂移”等相關(guān)技術(shù),切實(shí)實(shí)現(xiàn)對(duì)于數(shù)據(jù)庫系統(tǒng)可用性的提升。隨著技術(shù)的發(fā)展,目前在該領(lǐng)域中,四機(jī)體系也開始投入應(yīng)用,進(jìn)一步分為四機(jī)兩數(shù)據(jù)節(jié)點(diǎn)系統(tǒng)和四機(jī)四數(shù)據(jù)節(jié)點(diǎn)技術(shù)兩個(gè)主要分類,同時(shí)多機(jī)體系也在積極的研發(fā)過程中,對(duì)于兩機(jī)以上的高可用性系統(tǒng)而言,當(dāng)前主要采用MySQL Cluster技術(shù)予以展開,實(shí)現(xiàn)數(shù)據(jù)從整體結(jié)構(gòu)上的分布式存儲(chǔ)和熱備份等相關(guān)職能。
當(dāng)前在數(shù)據(jù)庫環(huán)境中存儲(chǔ)的數(shù)據(jù)有多個(gè)類型,不同類型的數(shù)據(jù)在存儲(chǔ)和加工的過程中都會(huì)遵守嚴(yán)格的時(shí)序特征,并且對(duì)應(yīng)的操作結(jié)果還需要進(jìn)行實(shí)時(shí)輸出,因此對(duì)于數(shù)據(jù)庫的高可用方面的要求,同樣會(huì)重點(diǎn)體現(xiàn)在實(shí)時(shí)、穩(wěn)定等方面。除此以外,MySQL數(shù)據(jù)庫環(huán)境中還會(huì)存在大量外部信息源數(shù)據(jù)以及其他操作命令數(shù)據(jù)等,這些數(shù)據(jù)攜帶對(duì)應(yīng)的時(shí)間戳存在,反映了系統(tǒng)一段時(shí)間內(nèi)的運(yùn)行情況,因此從數(shù)據(jù)庫的功能角度看,必須實(shí)現(xiàn)有快速數(shù)據(jù)錄入和數(shù)據(jù)冗余備份兩個(gè)方面的功能。
不同的方案體系,在數(shù)據(jù)庫的高可用性方面的表現(xiàn)會(huì)有所差異。就目前的情況看,雙機(jī)方案下集群的構(gòu)成條件方面,要求至少有一臺(tái)工作站上的數(shù)據(jù)庫系統(tǒng)保持正常狀態(tài);而對(duì)應(yīng)的四機(jī)兩數(shù)據(jù)節(jié)點(diǎn)方案則要求兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中至少有一個(gè)保持正常工作,管理節(jié)點(diǎn)同樣至少保持一個(gè)正常運(yùn)行;相比之下四機(jī)四數(shù)據(jù)節(jié)點(diǎn)方案下,只需要任意一個(gè)數(shù)據(jù)節(jié)點(diǎn)保持正常即可,管理節(jié)點(diǎn)同樣有一臺(tái)正常即可。但是四機(jī)環(huán)境之下,系統(tǒng)初始化構(gòu)建數(shù)據(jù)庫集群的效率就會(huì)相對(duì)低下,雙機(jī)方案下能夠?qū)崿F(xiàn)隨操作系統(tǒng)同步啟動(dòng)完成,但是對(duì)于四機(jī)環(huán)境則需要等待管理節(jié)點(diǎn)啟動(dòng)之后才能實(shí)現(xiàn)構(gòu)建。而從穩(wěn)定性方面看,尤其是在系統(tǒng)納入新節(jié)點(diǎn)這一過程上的耗時(shí)方面,雙機(jī)方案表現(xiàn)并不穩(wěn)定,需要取決于納入節(jié)點(diǎn)二進(jìn)制日志增量提及,但是對(duì)于四機(jī)系統(tǒng)而言,通常可以在10 s之內(nèi)完成,集群穩(wěn)定性會(huì)更優(yōu)。當(dāng)面對(duì)故障的時(shí)候,數(shù)據(jù)故障點(diǎn)切換方面,雙機(jī)方案依據(jù)地址漂移技術(shù)來予以實(shí)現(xiàn),通??梢栽?0 s之內(nèi)完成,但是四機(jī)節(jié)點(diǎn)時(shí)間會(huì)比較長,四機(jī)兩數(shù)據(jù)節(jié)點(diǎn)方案下通??梢栽?0 s內(nèi)完成,但是對(duì)于四數(shù)據(jù)節(jié)點(diǎn)而言,嚴(yán)重的時(shí)候會(huì)達(dá)到60 s上下。對(duì)于更新指令的執(zhí)行效率,雙機(jī)系統(tǒng)同樣標(biāo)下良好,能夠?qū)崿F(xiàn)最多7 000條/s速率,但是四機(jī)兩數(shù)據(jù)節(jié)點(diǎn)方案下卻只能處理1 500條/s,而四機(jī)四數(shù)據(jù)節(jié)點(diǎn)處理能力只有800條/s左右。
從當(dāng)前MySQL數(shù)據(jù)庫的高可用性方案實(shí)現(xiàn)以及應(yīng)用特征的角度看,其核心需求體現(xiàn)在對(duì)于響應(yīng)時(shí)間,以及故障切換能力等方面,同時(shí)對(duì)于服務(wù)本身的無縫連接,以及海量數(shù)據(jù)的存儲(chǔ)和數(shù)據(jù)庫本身的鏡像機(jī)制等方面,也都必須納入到考察的范圍之內(nèi)。在這樣的綜合考量之下,可以發(fā)現(xiàn)雙機(jī)服務(wù)器MySQL數(shù)據(jù)庫系統(tǒng),以及四機(jī)服務(wù)器MySQL數(shù)據(jù)庫在當(dāng)前的應(yīng)用環(huán)境中,分別表現(xiàn)出不同的工作特征,并且服務(wù)于不同的應(yīng)用領(lǐng)域,而對(duì)應(yīng)的在這樣兩個(gè)方面的核心技術(shù),也成為目前該領(lǐng)域中的關(guān)注重點(diǎn):
對(duì)于雙機(jī)服務(wù)器MySQL數(shù)據(jù)庫系統(tǒng)而言,互備份機(jī)制、地址漂移技術(shù)以及后臺(tái)延時(shí)復(fù)制是其有效提升可用性的核心手段。其中互備份機(jī)制即由兩臺(tái)服務(wù)器組成一個(gè)體系,將數(shù)據(jù)庫的服務(wù)端分別安裝在兩臺(tái)服務(wù)器上,而客戶端則通過網(wǎng)絡(luò)展開訪問。該方案之下的兩臺(tái)服務(wù)器分主從形式,其中主機(jī)將日志文件登記在本地,并且以增量工作方式展開對(duì)于從機(jī)的更新。但是該技術(shù)黨主服務(wù)器出現(xiàn)故障的時(shí)候,會(huì)直接導(dǎo)致客戶端無法獲取有效服務(wù),并且在頻繁操作的情況下,可能會(huì)出現(xiàn)計(jì)算資源占用過大的問題。而地址漂移技術(shù)則主要用于實(shí)現(xiàn)面向客戶的透明主備切換。由于兩個(gè)服務(wù)器需要共用IP地址展開服務(wù),因此該技術(shù)的存在實(shí)際上在于對(duì)IP地址實(shí)現(xiàn)協(xié)調(diào)和管理的作用。而后臺(tái)延時(shí)復(fù)制技術(shù)在該體系中,則主要面向于哪些時(shí)效性要求較高的數(shù)據(jù),展開對(duì)應(yīng)服務(wù),確保主次數(shù)據(jù)庫之間的實(shí)時(shí)同步;而對(duì)于實(shí)時(shí)性要求比較弱的數(shù)據(jù),后臺(tái)進(jìn)程使用mysqldump 命令定時(shí)從數(shù)據(jù)庫主機(jī)上將數(shù)據(jù)導(dǎo)入備機(jī)。
而對(duì)于四機(jī)服務(wù)器MySQL數(shù)據(jù)庫,實(shí)現(xiàn)其高可用性的核心技術(shù)在于MySQL Cluster,該技術(shù)是一種基于無共享的數(shù)據(jù)庫集群技術(shù),即網(wǎng)絡(luò)節(jié)點(diǎn)之間不提供文件共享。實(shí)際工作中,依據(jù)不同服務(wù)可以進(jìn)一步分為三個(gè)層次,即SQL訪問層、數(shù)據(jù)存儲(chǔ)層以及節(jié)點(diǎn)管理層,分別擔(dān)負(fù)不同職責(zé),共同實(shí)現(xiàn)整個(gè)系統(tǒng)的運(yùn)行。MySQL Cluster技術(shù)在應(yīng)用環(huán)境中具有良好的健康水平,一旦數(shù)據(jù)節(jié)點(diǎn)出現(xiàn)故障,服務(wù)節(jié)點(diǎn)仍然可以依據(jù)其他數(shù)據(jù)節(jié)點(diǎn)來展開對(duì)應(yīng)的服務(wù)。
對(duì)于MySQL數(shù)據(jù)庫系統(tǒng)的HA技術(shù)而言,當(dāng)前已經(jīng)成為其有效展開服務(wù)的重要技術(shù)之一,并且以一種毋庸置疑的發(fā)展?fàn)顟B(tài),占據(jù)了該領(lǐng)域中的重要位置。在實(shí)際工作中,對(duì)于大型實(shí)時(shí)控制需求,HA技術(shù)在故障切換能力、容錯(cuò)性能和響應(yīng)時(shí)間等多個(gè)方面都表現(xiàn)良好,在未來必然呈現(xiàn)出蓬勃生命力。
[1]陳冠華.基于消息中間件的高可用MySOL集群的研究[J].華中科技大學(xué)學(xué)報(bào)(社會(huì)科學(xué)版),2012,14(08).
[2]王明宇,王波.數(shù)據(jù)庫集群系統(tǒng)高可用性的研究與應(yīng)用[J].中國人民解放軍國防科技技術(shù)大學(xué)學(xué)報(bào)(社會(huì)科學(xué)版),2013,14(07).