欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于分布式數(shù)據(jù)庫集群的故障數(shù)據(jù)庫切換方法及系統(tǒng)與流程

文檔序號:11864808閱讀:721來源:國知局
用于分布式數(shù)據(jù)庫集群的故障數(shù)據(jù)庫切換方法及系統(tǒng)與流程

本發(fā)明涉及互聯(lián)網(wǎng)后端分布式數(shù)據(jù)庫的故障切換領(lǐng)域,具體涉及一種用于分布式數(shù)據(jù)庫集群的故障數(shù)據(jù)庫切換方法及系統(tǒng)。



背景技術(shù):

隨著互聯(lián)網(wǎng)業(yè)務(wù)規(guī)模的擴(kuò)展,使用互聯(lián)網(wǎng)業(yè)務(wù)的用戶大量增長,進(jìn)而使得互聯(lián)網(wǎng)的網(wǎng)絡(luò)數(shù)據(jù)急劇增大。在此基礎(chǔ)上,傳統(tǒng)的依靠單臺服務(wù)器搭載數(shù)據(jù)庫的架構(gòu)已經(jīng)無法大量網(wǎng)絡(luò)數(shù)據(jù)業(yè)務(wù)提供完整的服務(wù),為了保證大量網(wǎng)絡(luò)數(shù)據(jù)業(yè)務(wù)的服務(wù)質(zhì)量,必須對數(shù)據(jù)庫進(jìn)行擴(kuò)展。

目前在互聯(lián)網(wǎng)領(lǐng)域中常見的對數(shù)據(jù)庫進(jìn)行擴(kuò)展的方式為:對數(shù)據(jù)進(jìn)行水平拆分,進(jìn)而使得依賴于分片路由的MySQL(關(guān)系型數(shù)據(jù)庫)集群方式日益被越來越多的互聯(lián)網(wǎng)公司所使用。

但是,使用MySQL集群方式會存在以下缺陷:若單臺MySQL在使用的過程出現(xiàn)故障,則會對整個集群產(chǎn)生非常大的不良影響,此時若進(jìn)行數(shù)據(jù)庫切換,則會造成部分?jǐn)?shù)據(jù)丟失。



技術(shù)實現(xiàn)要素:

針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明解決的技術(shù)問題為:當(dāng)分布式數(shù)據(jù)庫集群中的數(shù)據(jù)庫發(fā)生故障時,快速進(jìn)行故障數(shù)據(jù)庫的切換、同時最大化保證數(shù)據(jù)不丟失。本發(fā)明排查故障數(shù)據(jù)庫的精準(zhǔn)度較高,工作時負(fù)載較小。

為了達(dá)到以上目的,本發(fā)明提供的用于分布式數(shù)據(jù)庫集群的故障數(shù)據(jù)庫切換方法,包括以下步驟:

S1:對數(shù)據(jù)庫集群中所有的主數(shù)據(jù)庫進(jìn)行監(jiān)控,當(dāng)監(jiān)控到發(fā)生偽故障的主數(shù)據(jù)庫時,轉(zhuǎn)到S2;

S2:判斷當(dāng)前主數(shù)據(jù)庫的數(shù)據(jù)庫實例端口是否工作正常,若是,重新執(zhí)行S1,否則將當(dāng)前主數(shù)據(jù)庫確定為故障數(shù)據(jù)庫,轉(zhuǎn)到S3;

S3:定義故障數(shù)據(jù)庫的服務(wù)器為故障服務(wù)器,故障數(shù)據(jù)庫的數(shù)據(jù)庫實例為故障數(shù)據(jù)庫實例:若故障服務(wù)器未發(fā)生宕機(jī)、且故障數(shù)據(jù)庫實例發(fā)生宕機(jī),轉(zhuǎn)到S4;若故障服務(wù)器發(fā)生宕機(jī),轉(zhuǎn)到S5;

S4:將故障數(shù)據(jù)庫的日志信息,覆蓋至故障數(shù)據(jù)庫對應(yīng)的從數(shù)據(jù)庫,轉(zhuǎn)到S5;

S5:將故障數(shù)據(jù)庫對應(yīng)的從數(shù)據(jù)庫更新為主數(shù)據(jù)庫,結(jié)束。

本發(fā)明提供的實現(xiàn)上述方法的用于分布式數(shù)據(jù)庫集群的故障數(shù)據(jù)庫切換系統(tǒng),該系統(tǒng)包括監(jiān)控節(jié)點模塊和管理節(jié)點模塊,管理節(jié)點模塊包括數(shù)據(jù)庫實例判斷子模塊、宕機(jī)狀態(tài)確定子模塊、日志信息覆蓋子模塊和數(shù)據(jù)庫更新子模塊;

監(jiān)控節(jié)點模塊用于:對數(shù)據(jù)庫集群中所有的主數(shù)據(jù)庫進(jìn)行監(jiān)控,當(dāng)監(jiān)控到發(fā)生偽故障的主數(shù)據(jù)庫時,將發(fā)生偽故障的主數(shù)據(jù)庫的節(jié)點信息發(fā)送至數(shù)據(jù)庫實例判斷子模塊;

數(shù)據(jù)庫實例判斷子模塊用于:收到發(fā)生偽故障的主數(shù)據(jù)庫的節(jié)點信息后,判斷當(dāng)前主數(shù)據(jù)庫的數(shù)據(jù)庫實例端口是否工作正常,若是,通知監(jiān)控節(jié)點模塊繼續(xù)監(jiān)控數(shù)據(jù)庫集群中所有的主數(shù)據(jù);否則將當(dāng)前主數(shù)據(jù)庫確定為故障數(shù)據(jù)庫,向宕機(jī)狀態(tài)確定子模塊發(fā)送宕機(jī)狀態(tài)確定信號;

宕機(jī)狀態(tài)確定子模塊用于:收到宕機(jī)狀態(tài)確定信號后,確定故障服務(wù)器和故障數(shù)據(jù)庫實例的宕機(jī)狀態(tài):若故障服務(wù)器未發(fā)生宕機(jī)、且故障數(shù)據(jù)庫實例發(fā)生宕機(jī),向日志信息覆蓋子模塊發(fā)送日志信息覆蓋信號;若故障服務(wù)器發(fā)生宕機(jī),向數(shù)據(jù)庫更新子模塊發(fā)送數(shù)據(jù)庫更新信號;

日志信息覆蓋子模塊用于:收到日志信息覆蓋信號后,將故障數(shù)據(jù)庫的日志信息,覆蓋至故障數(shù)據(jù)庫對應(yīng)的從數(shù)據(jù)庫,向數(shù)據(jù)庫更新子模塊發(fā)送數(shù)據(jù)庫更新信號;

數(shù)據(jù)庫更新子模塊用于:收到數(shù)據(jù)庫更新信號后,將故障數(shù)據(jù)庫對應(yīng)的從數(shù)據(jù)庫更新為主數(shù)據(jù)庫。

與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點在于:

本發(fā)明當(dāng)主數(shù)據(jù)庫出現(xiàn)故障時,能夠快速定位故障數(shù)據(jù)庫;與現(xiàn)有技術(shù)中造成部分?jǐn)?shù)據(jù)丟失的數(shù)據(jù)庫切換方式相比,本發(fā)明在切換故障數(shù)據(jù)庫之前,會確定故障數(shù)據(jù)庫中的數(shù)據(jù)是否能夠進(jìn)行數(shù)據(jù)備份(將數(shù)據(jù)覆蓋至從數(shù)據(jù)庫),進(jìn)而在快速切換故障數(shù)據(jù)庫的同時,最大化保證數(shù)據(jù)不會丟失。

與此同時,本發(fā)明當(dāng)監(jiān)測到數(shù)據(jù)庫出現(xiàn)故障時,將當(dāng)前主數(shù)據(jù)庫初步定義為“偽故障”數(shù)據(jù)庫,待確定“偽故障”數(shù)據(jù)庫的數(shù)據(jù)庫實例端口工作異常時,才將“偽故障”數(shù)據(jù)庫最終確定為故障數(shù)據(jù)庫。因此,本發(fā)明能夠排除因為網(wǎng)絡(luò)異常等其他原因而被監(jiān)控到發(fā)生故障,實際上工作正常的主數(shù)據(jù)庫,進(jìn)而提高故障數(shù)據(jù)庫排查的精準(zhǔn)度。

(2)本發(fā)明的系統(tǒng)工作時,監(jiān)控節(jié)點模塊提供監(jiān)控功能(監(jiān)控是否出現(xiàn)“偽故障”數(shù)據(jù)庫),管理節(jié)點模塊提供管理功能(對“偽故障”數(shù)據(jù)庫進(jìn)行二次檢測、以及對檢測出的故障數(shù)據(jù)庫進(jìn)行切換)。因此,本發(fā)明將監(jiān)控功能與管理功能隔離,進(jìn)而能夠降低單個監(jiān)控節(jié)點模塊和管理節(jié)點模塊的負(fù)載,保證監(jiān)控節(jié)點模塊和管理節(jié)點模塊的正常工作。

附圖說明

圖1為本發(fā)明實施例中用于分布式數(shù)據(jù)庫集群的故障數(shù)據(jù)庫切換系統(tǒng)的結(jié)構(gòu)框圖;

圖2為本發(fā)明實施例中用于分布式數(shù)據(jù)庫集群的故障數(shù)據(jù)庫切換方法的流程圖。

具體實施方式

以下結(jié)合附圖及實施例對本發(fā)明作進(jìn)一步詳細(xì)說明。

參見圖1所示,本發(fā)明實施例中的分布式數(shù)據(jù)庫集群包括至少1臺承載有主數(shù)據(jù)庫(實際應(yīng)用中主數(shù)據(jù)庫的數(shù)量根據(jù)數(shù)據(jù)業(yè)務(wù)量而增加)的服務(wù)器,每個主數(shù)據(jù)庫分別對應(yīng)1條分片路由;每臺承載有主數(shù)據(jù)庫的服務(wù)器對應(yīng)一臺承載有從數(shù)據(jù)庫(從數(shù)據(jù)庫用于備份主數(shù)據(jù)庫的日志信息)的服務(wù)器。每臺服務(wù)器均設(shè)置有物理IP,承載有主數(shù)據(jù)庫的服務(wù)器的物理IP與分片路由的虛擬IP關(guān)聯(lián)。

在此基礎(chǔ)上,參見圖2所示,本發(fā)明實施例中的用于分布式數(shù)據(jù)庫集群的故障數(shù)據(jù)庫切換方法,包括以下步驟:

S1:定時對數(shù)據(jù)庫集群中所有的主數(shù)據(jù)庫進(jìn)行監(jiān)控,當(dāng)監(jiān)控到發(fā)生偽故障的主數(shù)據(jù)庫時,轉(zhuǎn)到S2。

S1中發(fā)生偽故障的主數(shù)據(jù)庫的監(jiān)控流程為:當(dāng)監(jiān)控的主數(shù)據(jù)庫的心跳檢測和滲透測試發(fā)生異常時,確定當(dāng)前主數(shù)據(jù)庫發(fā)生偽故障。

S2:判斷當(dāng)前主數(shù)據(jù)庫的數(shù)據(jù)庫實例端口是否工作正常,若是,重新執(zhí)行S1,否則證明當(dāng)前主數(shù)據(jù)庫確實發(fā)生故障,將當(dāng)前主數(shù)據(jù)庫確定為故障數(shù)據(jù)庫,轉(zhuǎn)到S3。

S2的目的在于:確認(rèn)真正發(fā)生故障的主數(shù)據(jù)庫,排除因為網(wǎng)絡(luò)異常等其他原因而被監(jiān)控到發(fā)生故障,實際上工作正常的主數(shù)據(jù)庫(即未發(fā)生故障的主數(shù)據(jù)庫),提高故障數(shù)據(jù)庫確認(rèn)的精準(zhǔn)度。

S3:定義故障數(shù)據(jù)庫的服務(wù)器為故障服務(wù)器,故障數(shù)據(jù)庫的數(shù)據(jù)庫實例為故障數(shù)據(jù)庫實例,確定故障服務(wù)器和故障數(shù)據(jù)庫實例是否宕機(jī)(故障數(shù)據(jù)庫實例的宕機(jī)狀態(tài)根據(jù)故障數(shù)據(jù)庫的狀態(tài)信息確定):

若故障服務(wù)器和故障數(shù)據(jù)庫實例均未發(fā)生宕機(jī),則證明故障服務(wù)器和故障數(shù)據(jù)庫均可用,重新執(zhí)行S1;

若故障服務(wù)器未發(fā)生宕機(jī)、且故障數(shù)據(jù)庫實例發(fā)生宕機(jī),則證明故障數(shù)據(jù)庫不可用、但數(shù)據(jù)能夠備份,轉(zhuǎn)到S4;

若故障服務(wù)器發(fā)生宕機(jī),則證明故障服務(wù)器不可用,此時無論故障數(shù)據(jù)庫實例是否發(fā)生宕機(jī),均無法備份數(shù)據(jù),轉(zhuǎn)到S5。

S4:將故障數(shù)據(jù)庫的日志信息,覆蓋至故障數(shù)據(jù)庫對應(yīng)的從數(shù)據(jù)庫,轉(zhuǎn)到S5。

S5:將故障數(shù)據(jù)庫對應(yīng)的從數(shù)據(jù)庫更新為主數(shù)據(jù)庫,數(shù)據(jù)庫接收訪問,完成故障切換,結(jié)束。

S5的具體流程為:將故障數(shù)據(jù)庫對應(yīng)的從數(shù)據(jù)庫的權(quán)限表,與故障數(shù)據(jù)庫的權(quán)限表同步,以保證應(yīng)用用戶擁有足夠的連接權(quán)限;將故障數(shù)據(jù)庫對應(yīng)的從數(shù)據(jù)庫的物理IP;與分片路由的虛擬IP關(guān)聯(lián),以實現(xiàn)后端數(shù)據(jù)庫的入口切換。

在執(zhí)行S4和S5的過程中,若發(fā)現(xiàn)與故障數(shù)據(jù)庫對應(yīng)的從數(shù)據(jù)庫的數(shù)據(jù)庫實例、或者承載從數(shù)據(jù)庫的服務(wù)器發(fā)生宕機(jī)(從數(shù)據(jù)庫實例的宕機(jī)狀態(tài)根據(jù)從數(shù)據(jù)庫的狀態(tài)信息確定),則證明無法完成故障數(shù)據(jù)庫的切換,此時直接結(jié)束。

S5之后還可以包括以下步驟:為更新的主數(shù)據(jù)庫配置新的從數(shù)據(jù)庫和對應(yīng)的服務(wù)器,以便更新的主數(shù)據(jù)庫發(fā)生故障時,可以繼續(xù)進(jìn)行故障數(shù)據(jù)庫切換。

參見圖1所示,本發(fā)明實施中的實現(xiàn)上方法的用于分布式數(shù)據(jù)庫集群的故障數(shù)據(jù)庫切換系統(tǒng),包括監(jiān)控節(jié)點模塊和管理節(jié)點模塊,管理節(jié)點模塊包括數(shù)據(jù)庫實例判斷子模塊、宕機(jī)狀態(tài)確定子模塊、日志信息覆蓋子模塊和數(shù)據(jù)庫更新子模塊。

監(jiān)控節(jié)點模塊用于:對數(shù)據(jù)庫集群中所有的主數(shù)據(jù)庫進(jìn)行監(jiān)控,當(dāng)監(jiān)控到發(fā)生偽故障的主數(shù)據(jù)庫時,將發(fā)生偽故障的主數(shù)據(jù)庫的節(jié)點信息發(fā)送至數(shù)據(jù)庫實例判斷子模塊。

數(shù)據(jù)庫實例判斷子模塊用于:收到發(fā)生偽故障的主數(shù)據(jù)庫的節(jié)點信息后,判斷當(dāng)前主數(shù)據(jù)庫的數(shù)據(jù)庫實例端口是否工作正常,若是,通知監(jiān)控節(jié)點模塊繼續(xù)監(jiān)控數(shù)據(jù)庫集群中所有的主數(shù)據(jù);否則將當(dāng)前主數(shù)據(jù)庫確定為故障數(shù)據(jù)庫,向宕機(jī)狀態(tài)確定子模塊發(fā)送宕機(jī)狀態(tài)確定信號。

宕機(jī)狀態(tài)確定子模塊用于:收到宕機(jī)狀態(tài)確定信號后,確定故障服務(wù)器和故障數(shù)據(jù)庫實例的宕機(jī)狀態(tài):

若故障服務(wù)器未發(fā)生宕機(jī)、且故障數(shù)據(jù)庫實例發(fā)生宕機(jī),向日志信息覆蓋子模塊發(fā)送日志信息覆蓋信號;

若故障服務(wù)器發(fā)生宕機(jī),向數(shù)據(jù)庫更新子模塊發(fā)送數(shù)據(jù)庫更新信號;

若故障服務(wù)器和故障數(shù)據(jù)庫實例均未發(fā)生宕機(jī),通知監(jiān)控節(jié)點模塊繼續(xù)監(jiān)控數(shù)據(jù)庫集群中所有的主數(shù)據(jù)。

日志信息覆蓋子模塊用于:收到日志信息覆蓋信號后,將故障數(shù)據(jù)庫的日志信息,覆蓋至故障數(shù)據(jù)庫對應(yīng)的從數(shù)據(jù)庫,向數(shù)據(jù)庫更新子模塊發(fā)送數(shù)據(jù)庫更新信號。

日志信息覆蓋子模塊和數(shù)據(jù)庫更新子模塊在工作時,若發(fā)現(xiàn)與故障數(shù)據(jù)庫對應(yīng)的從數(shù)據(jù)庫的數(shù)據(jù)庫實例、或者承載從數(shù)據(jù)庫的服務(wù)器發(fā)生宕機(jī),則直接終止工作。

數(shù)據(jù)庫更新子模塊用于:收到數(shù)據(jù)庫更新信號后,將故障數(shù)據(jù)庫對應(yīng)的從數(shù)據(jù)庫更新為主數(shù)據(jù)庫;為更新的主數(shù)據(jù)庫配置新的從數(shù)據(jù)庫和對應(yīng)的服務(wù)器。

本發(fā)明不局限于上述實施方式,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也視為本發(fā)明的保護(hù)范圍之內(nèi)。本說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
沾益县| 鹤壁市| 河曲县| 淮滨县| 麟游县| 宁远县| 腾冲县| 福清市| 罗山县| 邓州市| 齐齐哈尔市| 洛宁县| 樟树市| 绥中县| 科尔| 克东县| 伽师县| 乡城县| 永宁县| 东乌珠穆沁旗| 龙游县| 石棉县| 泽库县| 固原市| 广州市| 冀州市| 固安县| 汉川市| 奇台县| 新竹县| 探索| 英德市| 红安县| 迁西县| 达孜县| 平舆县| 防城港市| 湟源县| 定结县| 德令哈市| 千阳县|