專利名稱:一種內(nèi)存數(shù)據(jù)庫(kù)雙機(jī)熱備方法及主機(jī)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通訊領(lǐng)域,尤其涉及一種內(nèi)存數(shù)據(jù)庫(kù)雙機(jī)熱備方法及主機(jī)。
背景技術(shù):
內(nèi)存數(shù)據(jù)庫(kù)是通過(guò)將系統(tǒng)的常用數(shù)據(jù)庫(kù)表中的數(shù)據(jù)全部映射到主機(jī)的共享內(nèi)存,并且在數(shù)據(jù)庫(kù)表上的關(guān)鍵字段上建立內(nèi)存索引的 方式,來(lái)提高系統(tǒng)對(duì)關(guān)鍵數(shù)據(jù)的實(shí)時(shí)訪問(wèn)性。應(yīng)用程序在訪問(wèn)這些數(shù)據(jù)庫(kù)表時(shí),通過(guò)調(diào)用內(nèi)存數(shù)據(jù)庫(kù)的應(yīng)用程序編程接ロ(API,Application Programming Interface)來(lái)使用共享內(nèi)存中的數(shù)據(jù),而不是直接訪問(wèn)物理數(shù)據(jù)庫(kù)表中的數(shù)據(jù),這樣極大的提高了系統(tǒng)的實(shí)時(shí)性能。內(nèi)存數(shù)據(jù)庫(kù)雙機(jī)熱備是為了提高系統(tǒng)的高可靠性而提出的方法,主要是將記錄主機(jī)實(shí)時(shí)操作的操作日志同步到備機(jī)進(jìn)行備份,當(dāng)主機(jī)出現(xiàn)網(wǎng)絡(luò)、硬件等故障時(shí),進(jìn)行雙機(jī)切換來(lái)保證業(yè)務(wù)的正常運(yùn)行。內(nèi)存數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中在備機(jī)對(duì)數(shù)據(jù)庫(kù)進(jìn)行了備份,當(dāng)主機(jī)或者備機(jī)掉電或者故障時(shí),可以通過(guò)內(nèi)存數(shù)據(jù)庫(kù)的恢復(fù)程序重新恢復(fù)內(nèi)存數(shù)據(jù)庫(kù)。目前采用的內(nèi)存數(shù)據(jù)庫(kù)雙機(jī)熱備方法是將某一時(shí)刻的內(nèi)存數(shù)據(jù)庫(kù)的鏡像和實(shí)時(shí)記錄的操作日志備份到在主機(jī)的一個(gè)磁盤(pán)中,同時(shí)主機(jī)將上述鏡像及操作日志同步到備機(jī)的磁盤(pán)上,以便當(dāng)主機(jī)在出現(xiàn)故障時(shí),可切換到備機(jī)上進(jìn)行操作,從而保證業(yè)務(wù)的正常運(yùn)行。但上述方案存在弊端,例如當(dāng)發(fā)生雙機(jī)切換時(shí),若主機(jī)還有操作日志未同步到備機(jī)上,則需要將主機(jī)上存儲(chǔ)上述操作日志的磁盤(pán)從主機(jī)解掛然后掛接到備機(jī)上,但如果觸發(fā)上述雙機(jī)切換的原因是主機(jī)上存儲(chǔ)上述操作日志的磁盤(pán)出現(xiàn)損壞,則這時(shí)雙機(jī)切換將出現(xiàn)兩難的處境,若不切換,則主機(jī)的內(nèi)存數(shù)據(jù)庫(kù)備份已經(jīng)不可靠,若主機(jī)斷電將導(dǎo)致數(shù)據(jù)丟失,若切換,則由于備機(jī)磁盤(pán)上的操作日志沒(méi)有完全同步上主機(jī),切換將導(dǎo)致業(yè)務(wù)中斷。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種內(nèi)存數(shù)據(jù)庫(kù)雙機(jī)熱備方法及主機(jī),用于提高系統(tǒng)的可靠性,降低業(yè)務(wù)中斷的風(fēng)險(xiǎn)。為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供以下技術(shù)方案一種內(nèi)存數(shù)據(jù)庫(kù)雙機(jī)熱備方法,包括主機(jī)將實(shí)時(shí)記錄的操作日志分別寫(xiě)入主用磁盤(pán)組和至少ー個(gè)備用磁盤(pán)組中;當(dāng)雙機(jī)切換觸發(fā)時(shí),將存儲(chǔ)上述操作日志的至少ー個(gè)備用磁盤(pán)組從上述主機(jī)上解掛并掛接到備機(jī)。ー種主機(jī),包括記錄單元,寫(xiě)磁盤(pán)單元,解掛掛接単元,主用磁盤(pán)組和至少ー個(gè)備用磁盤(pán)組;其中,記錄單元用于實(shí)時(shí)記錄操作日志;上述寫(xiě)磁盤(pán)單元用于將上述記錄單元實(shí)時(shí)記錄的操作日志分別寫(xiě)入上述主用磁盤(pán)組和至少ー個(gè)上述備用磁盤(pán)組中;
上述解掛掛接単元,用于當(dāng)雙機(jī)切換觸發(fā)時(shí),將存儲(chǔ)上述操作日志的至少ー個(gè)上述備用磁盤(pán)組從上述主機(jī)上解掛并掛接到備機(jī)。由上可見(jiàn),本發(fā)明實(shí)施例中,主機(jī)將實(shí)時(shí)記錄的操作日志分別寫(xiě)入主用磁盤(pán)組和至少ー個(gè)備用磁盤(pán)組中,當(dāng)雙機(jī)切換觸發(fā)時(shí),即可將存儲(chǔ)操作日志的至少ー個(gè)備用磁盤(pán)組從主機(jī)上解掛并掛接到備機(jī)上,由備機(jī)代替主機(jī)執(zhí)行業(yè)務(wù)處理,從而保證了在主用磁盤(pán)組損壞的情況下,也可通過(guò)雙機(jī)切換來(lái)維護(hù)業(yè)務(wù)的正常運(yùn)行,提高系統(tǒng)的可靠性,同時(shí)也降低了業(yè)務(wù)中斷的風(fēng)險(xiǎn)。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下 面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為本發(fā)明一種內(nèi)存數(shù)據(jù)庫(kù)雙機(jī)熱備方法的一個(gè)實(shí)施例流程示意圖;圖2為本發(fā)明一種內(nèi)存數(shù)據(jù)庫(kù)雙機(jī)熱備方法的另ー個(gè)實(shí)施例流程示意圖;圖3為本發(fā)明一種內(nèi)存數(shù)據(jù)庫(kù)雙機(jī)熱備方法的再一個(gè)實(shí)施例流程示意圖;圖4為本發(fā)明實(shí)施例中提供的一種主機(jī)的實(shí)施例結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明實(shí)施例提供了 ー種內(nèi)存數(shù)據(jù)庫(kù)雙機(jī)熱備方法及主機(jī)。為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點(diǎn)能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而非全部實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。下面對(duì)本發(fā)明實(shí)施例中一種內(nèi)存數(shù)據(jù)庫(kù)雙機(jī)熱備方法進(jìn)行描述,請(qǐng)參閱圖1,本發(fā)明實(shí)施例中的內(nèi)存數(shù)據(jù)庫(kù)雙機(jī)熱備方法一個(gè)實(shí)施例包括101、將實(shí)時(shí)記錄的操作日志分別寫(xiě)入主用磁盤(pán)組和至少ー個(gè)備用磁盤(pán)組中;主機(jī)將實(shí)時(shí)記錄的操作日志分別寫(xiě)入主用磁盤(pán)組和至少ー個(gè)備用磁盤(pán)組中。在實(shí)際應(yīng)用中,主機(jī)和備機(jī)間通過(guò)網(wǎng)絡(luò)鏈路實(shí)現(xiàn)通信,主機(jī)和備機(jī)的磁盤(pán)中分別存儲(chǔ)有內(nèi)存數(shù)據(jù)庫(kù)的鏡像文件,主機(jī)通過(guò)操作日志實(shí)時(shí)記錄主機(jī)進(jìn)行的操作,并通過(guò)異步方式將操作日志備份到備機(jī)上,當(dāng)主機(jī)或者備機(jī)掉電或者故障時(shí),可以通過(guò)內(nèi)存數(shù)據(jù)庫(kù)的恢復(fù)程序,利用內(nèi)存數(shù)據(jù)庫(kù)的鏡像文件及操作日志重新恢復(fù)內(nèi)存數(shù)據(jù)庫(kù),當(dāng)雙機(jī)切換觸發(fā)時(shí),備機(jī)需要依據(jù)該操作日志接管主機(jī)上的業(yè)務(wù),以保證業(yè)務(wù)的正常運(yùn)行。通常情況下,主機(jī)將內(nèi)存數(shù)據(jù)庫(kù)的鏡像文件與操作日志存儲(chǔ)在同一個(gè)磁盤(pán)組中,即主用磁盤(pán)組,并通過(guò)異步方式將上述操作日志備份到備機(jī)存儲(chǔ)內(nèi)存數(shù)據(jù)庫(kù)的鏡像文件的磁盤(pán)組中。在本發(fā)明實(shí)施例中,主機(jī)利用至少ー個(gè)備用磁盤(pán)組來(lái)存儲(chǔ)上述操作日志,即主機(jī)分別將實(shí)時(shí)記錄的操作日志分別寫(xiě)入上述主用磁盤(pán)組和至少ー個(gè)備用磁盤(pán)組中。在實(shí)際應(yīng)用中,上述操作日志被記錄在內(nèi)存數(shù)據(jù)庫(kù)中,如記錄在內(nèi)存數(shù)據(jù)庫(kù)的日志區(qū)中,為了防止主機(jī)將操作日志分別寫(xiě)入主磁盤(pán)組和備磁盤(pán)組而導(dǎo)致主機(jī)性能變差,主機(jī)可采用多線程來(lái)實(shí)現(xiàn)將操作日志寫(xiě)入不同磁盤(pán)組,如主機(jī)的主線程可先從存放操作日志的內(nèi)存數(shù)據(jù)庫(kù)中獲取實(shí)時(shí)記錄的操作日志,將獲取到的操作日志更新到公共緩存區(qū)中,然后通知專門(mén)寫(xiě)操作日志的兩個(gè)子線程(也可依據(jù)實(shí)際情況增加寫(xiě)操作日志的子線程數(shù)目)執(zhí)行寫(xiě)操作日志處理,如可觸發(fā)第一子線程將上述公共緩存區(qū)中的操作日志寫(xiě)入主用磁盤(pán)組中,觸發(fā)第二子線程將上述公共緩存區(qū)中的操作日志寫(xiě)入備用磁盤(pán)組中,進(jìn)ー步的,當(dāng)?shù)谝蛔泳€程和第二子線程完成寫(xiě)操作日志后,可向主機(jī)上報(bào)寫(xiě)完成指令,以使主機(jī)的主線程獲知操作日志已寫(xiě)入主用磁盤(pán)組和備用磁盤(pán)組??衫斫獾氖牵趯?shí)際應(yīng)用中,每份操作日志中均攜帯流水號(hào),因此主機(jī)可依據(jù)操作日志的流水號(hào),從內(nèi)存數(shù)據(jù)庫(kù)中獲取新記錄的操作日志更新到公共緩存區(qū)中。102、當(dāng)雙機(jī)切換觸發(fā)時(shí),將存儲(chǔ)上述操作日志的至少ー個(gè)備用磁盤(pán)組從主機(jī)上解掛并掛接到備機(jī);在實(shí)際應(yīng)用中,主機(jī)上的監(jiān)控程序或者與主機(jī)相連的其它監(jiān)控設(shè)備可實(shí)時(shí)對(duì)主機(jī) 進(jìn)行檢測(cè),以便及時(shí)發(fā)現(xiàn)是否存在需要觸發(fā)雙機(jī)切換的異常,如可對(duì)主機(jī)的主用磁盤(pán)組進(jìn)行檢測(cè),若出現(xiàn)主用磁盤(pán)組無(wú)法正常的寫(xiě)入和/或讀出數(shù)據(jù)、主用磁盤(pán)組意外解掛等異常,則觸發(fā)雙機(jī)切換;進(jìn)ー步的,還可對(duì)主機(jī)的存儲(chǔ)操作日志的備用磁盤(pán)組進(jìn)行檢測(cè),當(dāng)備用磁盤(pán)組出現(xiàn)異常,如出現(xiàn)無(wú)法寫(xiě)入和/或讀出操作日志,意外解掛等的異常,則輸出告警信息,指示該備用磁盤(pán)組出現(xiàn)的異常,但不觸發(fā)雙機(jī)切換。由于主機(jī)是采用異步方式將操作日志備份到備機(jī)上,因此,當(dāng)主用磁盤(pán)組出現(xiàn)異常而需要觸發(fā)雙機(jī)切換時(shí),此時(shí)備機(jī)上存儲(chǔ)的操作日志并不一定與主機(jī)上存儲(chǔ)的操作日志完全同步,而若此時(shí)備機(jī)上存儲(chǔ)的操作日志與主機(jī)上存儲(chǔ)的操作日志不同步,當(dāng)雙機(jī)切換觸發(fā)后,備機(jī)將無(wú)法正常接管主機(jī)的業(yè)務(wù),從而導(dǎo)致業(yè)務(wù)中斷。因此,當(dāng)雙機(jī)切換觸發(fā)時(shí),主機(jī)可將存儲(chǔ)上述操作日志的至少ー個(gè)備用磁盤(pán)組從主機(jī)上解掛并掛接到備機(jī)上,使得當(dāng)備機(jī)上存儲(chǔ)的操作日志與主機(jī)上存儲(chǔ)的操作日志不同步時(shí),備機(jī)可利用掛接到備機(jī)上的備用磁盤(pán)組中存儲(chǔ)的操作日志重新對(duì)本地存儲(chǔ)的操作日志進(jìn)行同步。在ー種應(yīng)用場(chǎng)景下,當(dāng)主用磁盤(pán)組出現(xiàn)異常而需要觸發(fā)雙機(jī)切換時(shí),主機(jī)也可先判斷備機(jī)上存儲(chǔ)的操作日志是否與本機(jī)的主用磁盤(pán)組或備用磁盤(pán)組上存儲(chǔ)的操作日志同步,若同步,則可不執(zhí)行步驟102,若不同,才執(zhí)行步驟102??衫斫獾氖?,在實(shí)際應(yīng)用中,每份操作日志中均攜帯流水號(hào),因此可依據(jù)操作日志的流水號(hào)來(lái)判斷主機(jī)上存儲(chǔ)的操作日志與備機(jī)上存儲(chǔ)的操作日志是否同歩。由上可見(jiàn),本發(fā)明實(shí)施例中,主機(jī)將實(shí)時(shí)記錄的操作日志分別寫(xiě)入主用磁盤(pán)組和至少ー個(gè)備用磁盤(pán)組中,當(dāng)雙機(jī)切換觸發(fā)時(shí),即可將存儲(chǔ)操作日志的至少ー個(gè)備用磁盤(pán)組從主機(jī)上解掛并掛接到備機(jī)上,由備機(jī)代替主機(jī)執(zhí)行業(yè)務(wù)處理,從而保證了在主用磁盤(pán)組損壞的情況下,也可通過(guò)雙機(jī)切換來(lái)維護(hù)業(yè)務(wù)的正常運(yùn)行,提高系統(tǒng)的可靠性,同時(shí)也降低了業(yè)務(wù)中斷的風(fēng)險(xiǎn)。下面對(duì)本發(fā)明實(shí)施例中主機(jī)寫(xiě)操作日志的流程進(jìn)行描述,請(qǐng)參閱圖2,本發(fā)明實(shí)施一種內(nèi)存數(shù)據(jù)庫(kù)雙機(jī)熱備方法的另ー個(gè)實(shí)施例包括201、主線程獲取實(shí)時(shí)記錄的操作日志;主機(jī)調(diào)用主線程從內(nèi)存數(shù)據(jù)庫(kù)中獲取實(shí)時(shí)記錄的操作日志。
可理解的是,在實(shí)際應(yīng)用中,每份操作日志中均攜帯流水號(hào),因此主機(jī)可依據(jù)操作日志的流水號(hào),從內(nèi)存數(shù)據(jù)庫(kù)中獲取新記錄的操作日志。202、主線程將獲取到的操作日志更新到公共緩存區(qū)中;主線程將獲取到的操作日志更新到各個(gè)線程的公共緩存區(qū)中。203、主線程觸發(fā)第一子線程寫(xiě)操作日志;204、主線程觸發(fā)第二子線程寫(xiě)操作日志;205、主線程等待第一子線程和第二子線程完成寫(xiě)操作日志;206、第一子線程寫(xiě)操作日志;
第一子線程接收到主線程的觸發(fā)命令后,從上述公共緩存區(qū)中獲取操作日志,并將獲取到的操作日志寫(xiě)入主機(jī)的主用磁盤(pán)組中。207、第二子線程寫(xiě)操作日志;第二子線程接收到主線程的觸發(fā)命令后,從上述公共緩存區(qū)中獲取操作日志,并將獲取到的操作日志寫(xiě)入主機(jī)的備用磁盤(pán)組中。208、第一子線程向主線程返回寫(xiě)完成指令;當(dāng)?shù)谝蛔泳€程將公共緩存區(qū)中的操作日志寫(xiě)入主用磁盤(pán)組后,向主線程返回寫(xiě)完成指令,以使主線程獲知第一子線程已完成寫(xiě)操作日志。209、第二子線程向主線程返回寫(xiě)完成指令;當(dāng)?shù)诙泳€程將公共緩存區(qū)中的操作日志寫(xiě)入主用磁盤(pán)組后,向主線程返回寫(xiě)完成指令,以使主線程獲知第二子線程已完成寫(xiě)操作日志。可理解,當(dāng)主線程接收到第一子線程及第ニ子線程返回的寫(xiě)完成指令后,其重復(fù)執(zhí)行步驟201 205。需要說(shuō)明的是,本發(fā)明實(shí)施例采用兩個(gè)子線程來(lái)實(shí)現(xiàn)寫(xiě)操作日志處理,在實(shí)際應(yīng)用中,也可増加子線程數(shù)目來(lái)完成寫(xiě)操作日志,若將操作日志寫(xiě)入兩個(gè)以上的備用磁盤(pán)組中,也可采用不同的子線程將操作日志寫(xiě)入不同的備用磁盤(pán)組中,此處不作限定。由上可見(jiàn),本發(fā)明實(shí)施例采用多線程的方式將操作日志寫(xiě)入主磁盤(pán)組和備磁盤(pán)組中,防止了主機(jī)因采用單一線程將操作日志寫(xiě)入主磁盤(pán)組和備磁盤(pán)組而導(dǎo)致的性能變差的問(wèn)題。下面對(duì)基于本發(fā)明實(shí)施例中一種內(nèi)存數(shù)據(jù)庫(kù)雙機(jī)熱備方法的雙機(jī)切換前后的流程進(jìn)行描述,請(qǐng)參閱圖3,本發(fā)明實(shí)施例中的內(nèi)存數(shù)據(jù)庫(kù)雙機(jī)熱備方法再一個(gè)實(shí)施例包括301、檢測(cè)主機(jī)是否存在異常;主機(jī)上的監(jiān)控程序可實(shí)時(shí)對(duì)主機(jī)進(jìn)行檢測(cè),以便及時(shí)發(fā)現(xiàn)是否存在需要觸發(fā)雙機(jī)切換的異常,如可對(duì)主機(jī)的主用磁盤(pán)組進(jìn)行檢測(cè),若出現(xiàn)主用磁盤(pán)組無(wú)法正常的寫(xiě)入和/或讀出數(shù)據(jù)、主用磁盤(pán)組意外解掛等異常,則觸發(fā)雙機(jī)切換;進(jìn)ー步的,還可對(duì)主機(jī)的存儲(chǔ)操作日志的備用磁盤(pán)組進(jìn)行檢測(cè),當(dāng)備用磁盤(pán)組出現(xiàn)異常,如出現(xiàn)無(wú)法寫(xiě)入和/或讀出操作日志,意外解掛等的異常,則輸出告警信息,指示該備用磁盤(pán)組出現(xiàn)的異常,但不觸發(fā)雙機(jī)切換。當(dāng)然,在實(shí)際應(yīng)用中,上述檢測(cè)過(guò)程也可由與主機(jī)相連的其它監(jiān)控設(shè)備來(lái)完成,此處不作限定。當(dāng)主機(jī)存在異常時(shí),執(zhí)行步驟302。
302、主機(jī)執(zhí)行資源下線操作;當(dāng)雙機(jī)切換觸發(fā)時(shí),主機(jī)停止業(yè)務(wù)進(jìn)程,執(zhí)行資源下線操作。303、主機(jī)解掛備用磁盤(pán)組,并將該備用磁盤(pán)組掛接到備機(jī)上;主機(jī)解掛存儲(chǔ)操作日志的備用磁盤(pán)組,并將該備用磁盤(pán)組掛接到備機(jī)上??衫斫獾氖?,上述備用磁盤(pán)組為可正常使用的磁盤(pán)組。304、主機(jī)向備機(jī)發(fā)送雙機(jī)切換觸發(fā)消息;主機(jī)可通過(guò)局域網(wǎng)向備機(jī)發(fā)送雙機(jī)切換觸發(fā)消息,通知備機(jī)觸發(fā)雙機(jī)切換處理。305、備機(jī)執(zhí)行資源上線操作;
當(dāng)備機(jī)接收到主機(jī)發(fā)送的雙機(jī)切換觸發(fā)消息后,執(zhí)行資源上線操作,準(zhǔn)備接管主機(jī)上業(yè)務(wù)。306、備機(jī)保證操作日志同步;備機(jī)比較掛接的備用磁盤(pán)日志中存儲(chǔ)的操作日志與主機(jī)上存儲(chǔ)的操作日志是否同步,若不同歩,則重新對(duì)本地存儲(chǔ)的操作日志進(jìn)行同歩,以保證本地存儲(chǔ)的操作日志的同步性??衫斫獾氖?,在實(shí)際應(yīng)用中,每份操作日志中均攜帯流水號(hào),因此可依據(jù)操作日志的流水號(hào)來(lái)判斷主機(jī)上存儲(chǔ)的操作日志與備機(jī)上存儲(chǔ)的操作日志是否同歩。307、備機(jī)接管主機(jī)上的業(yè)務(wù),轉(zhuǎn)換為新的主機(jī);備機(jī)可依據(jù)本地存儲(chǔ)的內(nèi)存數(shù)據(jù)庫(kù)的鏡像文件及操作日志,啟動(dòng)索引原有的業(yè)務(wù)進(jìn)程,接管主機(jī)上的業(yè)務(wù),替代原有主機(jī)進(jìn)行業(yè)務(wù)的處理。由上可見(jiàn),本發(fā)明實(shí)施例中,主機(jī)將實(shí)時(shí)記錄的操作日志分別寫(xiě)入主用磁盤(pán)組和至少ー個(gè)備用磁盤(pán)組中,當(dāng)雙機(jī)切換觸發(fā)時(shí),即可將存儲(chǔ)操作日志的至少ー個(gè)備用磁盤(pán)組從主機(jī)上解掛并掛接到備機(jī)上,由備機(jī)代替主機(jī)執(zhí)行業(yè)務(wù)處理,從而保證了在主用磁盤(pán)組損壞的情況下,也可通過(guò)雙機(jī)切換來(lái)維護(hù)業(yè)務(wù)的正常運(yùn)行,提高系統(tǒng)的可靠性,同時(shí)也降低了業(yè)務(wù)中斷的風(fēng)險(xiǎn)。下面對(duì)本發(fā)明實(shí)施例提供的主機(jī)進(jìn)行描述,請(qǐng)參閱圖4,本發(fā)明實(shí)施例中的主機(jī)400包括記錄單元401,寫(xiě)磁盤(pán)單元402,解掛掛接單元403,主用磁盤(pán)組404和至少ー個(gè)備用磁盤(pán)組405 ;記錄單元401用于實(shí)時(shí)記錄操作日志;在實(shí)際應(yīng)用中,記錄單元401將上述操作日志記錄在內(nèi)存數(shù)據(jù)庫(kù)中,如記錄在內(nèi)存數(shù)據(jù)庫(kù)的日志區(qū)中。寫(xiě)磁盤(pán)單元402用于將記錄單元401實(shí)時(shí)記錄的操作日志分別寫(xiě)入主用磁盤(pán)組404和至少ー個(gè)備用磁盤(pán)組405中;為了防止寫(xiě)磁盤(pán)單元402將操作日志分別寫(xiě)入主用磁盤(pán)組404和備用磁盤(pán)組405而導(dǎo)致主機(jī)400的性能變差,寫(xiě)磁盤(pán)單元402可采用多線程來(lái)實(shí)現(xiàn)將操作日志寫(xiě)入不同磁盤(pán)組。具體的,在實(shí)際應(yīng)用中,寫(xiě)磁盤(pán)單元402可包括獲取單元,更新単元,第一觸發(fā)單元和第二觸發(fā)單元。其中,獲取單元用于獲取記錄單元401實(shí)時(shí)記錄的操作日志,如獲取單元可從存放操作日志的內(nèi)存數(shù)據(jù)庫(kù)中獲取實(shí)時(shí)記錄的操作日志;可理解,在實(shí)際應(yīng)用中,每份操作日志中均攜帯流水號(hào),因此獲取単元可依據(jù)操作日志的流水號(hào),從內(nèi)存數(shù)據(jù)庫(kù)中獲取新記錄的操作日志更新到公共緩存區(qū)中。存儲(chǔ)單元用于將上述獲取單元獲取的操作日志更新到各線程的公共緩存區(qū)中。第一觸發(fā)單元用于觸發(fā)第一子線程將公共緩存區(qū)中的操作日志寫(xiě)入主用磁盤(pán)組404中。第二觸發(fā)單元用于觸發(fā)第二子線程將公共緩存區(qū)中的操作日志寫(xiě)入備用磁盤(pán)組405中。在實(shí)際應(yīng)用中,寫(xiě)磁盤(pán)單元402也可依據(jù)實(shí)際情況增加寫(xiě)操作日志的子線程數(shù)目,此處不作限定。進(jìn)ー步的,當(dāng)寫(xiě)磁盤(pán)單元402完成寫(xiě)操作日志后,可向主機(jī)400上報(bào)寫(xiě)完成指令,以使主機(jī)400的主線程獲知操作日志已寫(xiě)入主用磁盤(pán)組和備用磁盤(pán)組。解掛掛接單元403,用于當(dāng)雙機(jī)切換觸發(fā)時(shí),將存儲(chǔ)操作日志的至少ー個(gè)備用磁盤(pán)組405從主機(jī)400上解掛并掛接到備機(jī)。在實(shí)際應(yīng)用中,主機(jī)400可包括檢測(cè)單元和切換觸發(fā)單元;其中,檢測(cè)單元用于檢測(cè)主機(jī)400上的主用磁盤(pán)組404是否出現(xiàn)異常,如檢測(cè)單元可對(duì)主機(jī)400的主用磁盤(pán)組404進(jìn)行檢測(cè),若出現(xiàn)主用磁盤(pán)組404無(wú)法正常的寫(xiě)入和/或 讀出數(shù)據(jù)、主用磁盤(pán)組意外解掛,則可判定該主用磁盤(pán)組404出現(xiàn)異常。上述觸發(fā)單元用于當(dāng)上述檢測(cè)單元檢測(cè)出主用磁盤(pán)組404出現(xiàn)異常時(shí),觸發(fā)雙機(jī)切換。在實(shí)際應(yīng)用中,上述檢測(cè)單元還可用于對(duì)主機(jī)存儲(chǔ)操作日志的備用磁盤(pán)組405進(jìn)行檢測(cè),主機(jī)400進(jìn)ー步可包括告警輸出単元,用于當(dāng)上述檢測(cè)單元檢測(cè)出備用磁盤(pán)組405出現(xiàn)異常(如出現(xiàn)無(wú)法寫(xiě)入和/或讀出操作日志,意外解掛等的異常)時(shí),輸出告警信息。在ー種應(yīng)用場(chǎng)景下,當(dāng)主用磁盤(pán)組404出現(xiàn)異常而需要觸發(fā)雙機(jī)切換時(shí),主機(jī)400也可先判斷備機(jī)上存儲(chǔ)的操作日志是否與本機(jī)的主用磁盤(pán)組404或備用磁盤(pán)組405上存儲(chǔ)的操作日志同歩,因此,主機(jī)400可包括判斷単元,當(dāng)雙機(jī)切換觸發(fā)時(shí),主機(jī)400通過(guò)判斷單元判斷備機(jī)存儲(chǔ)的操作日志是否與主機(jī)上的主用磁盤(pán)組404或備用磁盤(pán)組405存儲(chǔ)的操作日志同步;解掛掛接単元403可在上述判斷単元判斷出備機(jī)存儲(chǔ)的操作日志與主用磁盤(pán)組404或備用磁盤(pán)組405存儲(chǔ)的操作日志不同步時(shí),才將存儲(chǔ)上述操作日志的至少ー個(gè)備用磁盤(pán)組405從主機(jī)400上解掛并掛接到備機(jī)。由上可見(jiàn),本發(fā)明實(shí)施例中,主機(jī)將實(shí)時(shí)記錄的操作日志分別寫(xiě)入主用磁盤(pán)組和至少ー個(gè)備用磁盤(pán)組中,當(dāng)雙機(jī)切換觸發(fā)時(shí),即可將存儲(chǔ)操作日志的至少ー個(gè)備用磁盤(pán)組從主機(jī)上解掛并掛接到備機(jī)上,由備機(jī)代替主機(jī)執(zhí)行業(yè)務(wù)處理,從而保證了在主用磁盤(pán)組損壞的情況下,也可通過(guò)雙機(jī)切換來(lái)維護(hù)業(yè)務(wù)的正常運(yùn)行,提高系統(tǒng)的可靠性,同時(shí)也降低了業(yè)務(wù)中斷的風(fēng)險(xiǎn)。需要說(shuō)明的是,本實(shí)施例的主機(jī)可以如上述方法實(shí)施例中的主機(jī),可以用于實(shí)現(xiàn)上述方法實(shí)施例中的全部技術(shù)方案,其各個(gè)功能模塊的功能可以根據(jù)上述方法實(shí)施例中的方法具體實(shí)現(xiàn),其具體實(shí)現(xiàn)過(guò)程可參照上述實(shí)施例中的相關(guān)描述,此處不再贅述。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于ー種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,隨機(jī)存儲(chǔ)器、磁盤(pán)或光盤(pán)等。以上對(duì)本發(fā)明所提供的一種內(nèi)存數(shù)據(jù)庫(kù)雙機(jī)熱備方法及主機(jī)進(jìn)行了詳細(xì)介紹,對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明實(shí)施例的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1.一種內(nèi)存數(shù)據(jù)庫(kù)雙機(jī)熱備方法,其特征在于,包括 主機(jī)將實(shí)時(shí)記錄的操作日志分別寫(xiě)入主用磁盤(pán)組和至少一個(gè)備用磁盤(pán)組中; 當(dāng)雙機(jī)切換觸發(fā)時(shí),將存儲(chǔ)所述操作日志的至少一個(gè)備用磁盤(pán)組從所述主機(jī)上解掛并掛接到備機(jī)。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于, 所述將存儲(chǔ)所述操作日志的至少一個(gè)備用磁盤(pán)組從所述主機(jī)上解掛并掛接到備機(jī)的步驟之前包括 判斷所述備機(jī)存儲(chǔ)的操作日志是否與所述主用磁盤(pán)組或所述備用磁盤(pán)組存儲(chǔ)的操作日志同步, 若不同步,才將存儲(chǔ)所述操作日志的至少一個(gè)備用磁盤(pán)組從所述主機(jī)上解掛并掛接到所述備機(jī)。
3.根據(jù)權(quán)利要求I或2所述的方法,其特征在于, 所述將實(shí)時(shí)記錄的操作日志分別寫(xiě)入主用磁盤(pán)組和至少一個(gè)備用磁盤(pán)組中的步驟包括 獲取實(shí)時(shí)記錄的操作日志; 將獲取的操作日志更新到公共緩存區(qū)中; 觸發(fā)第一子線程將所述公共緩存區(qū)中的操作日志寫(xiě)入主用磁盤(pán)組中; 觸發(fā)第二子線程將所述公共緩存區(qū)中的操作日志寫(xiě)入備用磁盤(pán)組中。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于, 所述觸發(fā)雙機(jī)切換的步驟之前包括 檢測(cè)所述主用磁盤(pán)組是否出現(xiàn)異常,若是,則觸發(fā)雙機(jī)切換。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于, 所述對(duì)所述主用磁盤(pán)組進(jìn)行檢測(cè)的步驟具體為 檢測(cè)所述主用磁盤(pán)組的寫(xiě)入和/或讀出功能是否正常,若不正常,則判定所述主用磁盤(pán)組出現(xiàn)異常。
6.根據(jù)權(quán)利要求3所述的方法,其特征在于, 所述方法還包括 對(duì)所述備用磁盤(pán)組進(jìn)行檢測(cè),若所述備用磁盤(pán)組出現(xiàn)異常,則輸出告警信息。
7.—種主機(jī),其特征在于,包括 記錄單元,寫(xiě)磁盤(pán)單元,解掛掛接單元,主用磁盤(pán)組和至少一個(gè)備用磁盤(pán)組; 所述記錄單元用于實(shí)時(shí)記錄操作日志; 所述寫(xiě)磁盤(pán)單元用于將所述記錄單元實(shí)時(shí)記錄的操作日志分別寫(xiě)入所述主用磁盤(pán)組和至少一個(gè)所述備用磁盤(pán)組中; 所述解掛掛接單元,用于當(dāng)雙機(jī)切換觸發(fā)時(shí),將存儲(chǔ)所述操作日志的至少一個(gè)所述備用磁盤(pán)組從所述主機(jī)上解掛并掛接到備機(jī)。
8.根據(jù)權(quán)利要求7所述的主機(jī),其特征在于, 還包括判斷單元,用于當(dāng)雙機(jī)切換觸發(fā)時(shí),判斷所述備機(jī)存儲(chǔ)的操作日志是否與所述主用磁盤(pán)組或所述備用磁盤(pán)組存儲(chǔ)的操作日志同步; 所述解掛掛接單元具體用于,當(dāng)雙機(jī)切換觸發(fā),且所述判斷單元判斷出所述備機(jī)存儲(chǔ)的操作日志與所述主用磁盤(pán)組或所述備用磁盤(pán)組存儲(chǔ)的操作日志不同步時(shí),將存儲(chǔ)所述操作日志的至少ー個(gè)所述備用磁盤(pán)組從所述主機(jī)上解掛并掛接到所述備機(jī)。
9.根據(jù)權(quán)利要求7或8所述的主機(jī),其特征在干, 所述寫(xiě)磁盤(pán)單元包括 獲取單元,更新単元,第一觸發(fā)單元,第二觸發(fā)單元; 所述獲取単元用于獲取所述記錄單元實(shí)時(shí)記錄的操作日志; 所述存儲(chǔ)単元用于將所述獲取單元獲取的操作日志更新到公共緩存區(qū)中; 所述第一觸發(fā)單元用于觸發(fā)第一子線程將所述公共緩存區(qū)中的操作日志寫(xiě)入主用磁 盤(pán)組中; 所述第二觸發(fā)單元用于觸發(fā)第二子線程將所述公共緩存區(qū)中的操作日志寫(xiě)入備用磁盤(pán)組中。
10.根據(jù)權(quán)利要求9所述的主機(jī),其特征在干, 還包括檢測(cè)單元和切換觸發(fā)單元; 所述檢測(cè)単元用于檢測(cè)所述主用磁盤(pán)組是否出現(xiàn)異常; 所述觸發(fā)単元用于當(dāng)所述檢測(cè)単元檢測(cè)出所述主用磁盤(pán)組出現(xiàn)異常時(shí),觸發(fā)雙機(jī)切換。
全文摘要
本發(fā)明實(shí)施例公開(kāi)了一種內(nèi)存數(shù)據(jù)庫(kù)雙機(jī)熱備方法及主機(jī),其中,一種內(nèi)存數(shù)據(jù)庫(kù)雙機(jī)熱備方法包括主機(jī)將實(shí)時(shí)記錄的操作日志分別寫(xiě)入主用磁盤(pán)組和至少一個(gè)備用磁盤(pán)組中;當(dāng)雙機(jī)切換觸發(fā)時(shí),將存儲(chǔ)所述操作日志的至少一個(gè)備用磁盤(pán)組從所述主機(jī)上解掛并掛接到備機(jī)。本發(fā)明提供的技術(shù)方案可有效提高系統(tǒng)的可靠性,降低業(yè)務(wù)中斷的風(fēng)險(xiǎn)。
文檔編號(hào)G06F11/14GK102855163SQ20111017586
公開(kāi)日2013年1月2日 申請(qǐng)日期2011年6月27日 優(yōu)先權(quán)日2011年6月27日
發(fā)明者梁遠(yuǎn)勝 申請(qǐng)人:華為軟件技術(shù)有限公司