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

一種數(shù)據(jù)庫集群的高可用解決方法和裝置制造方法

文檔序號(hào):6639986閱讀:210來源:國知局
一種數(shù)據(jù)庫集群的高可用解決方法和裝置制造方法
【專利摘要】本發(fā)明提供了一種數(shù)據(jù)庫集群的高可用解決方法和裝置,屬于計(jì)算機(jī)領(lǐng)域。該方法包括:當(dāng)數(shù)據(jù)庫集群的主數(shù)據(jù)庫無法提供服務(wù)時(shí),通過獲取數(shù)據(jù)庫集群的所有從數(shù)據(jù)庫的列表,在該列表記錄的所有從數(shù)據(jù)庫中,篩選得到一個(gè)從數(shù)據(jù)庫作為新的主數(shù)據(jù)庫,將數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到該新的主數(shù)據(jù)庫,可以在數(shù)據(jù)庫集群的主數(shù)據(jù)庫由于宕機(jī)等原因無法提供服務(wù)時(shí),自動(dòng)選擇一個(gè)從數(shù)據(jù)庫切換為新的主數(shù)據(jù)庫,保證數(shù)據(jù)的全面并能讓業(yè)務(wù)在極短的時(shí)間內(nèi)得到恢復(fù)。
【專利說明】一種數(shù)據(jù)庫集群的高可用解決方法和裝置

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體涉及一種數(shù)據(jù)庫集群的高可用解決方法和裝置。

【背景技術(shù)】
[0002]在目前,關(guān)系型數(shù)據(jù)庫的應(yīng)用非常廣泛,例如Mysql數(shù)據(jù)庫。目前,關(guān)系型數(shù)據(jù)庫集群中多采用一主多從的架構(gòu)。如圖1所示,為一mysql數(shù)據(jù)庫集群的架構(gòu)示意圖,其包括:主數(shù)據(jù)庫master和三個(gè)從數(shù)據(jù)庫,三個(gè)從數(shù)據(jù)庫分別為:
[0003]Slave-K Slave-2 和 Slave3。
[0004]例如圖1中所示,Slave-1和Slave-2位于機(jī)房1,Slave3位于機(jī)房2。主數(shù)據(jù)庫master分別與從數(shù)據(jù)庫Slave-1、Slave-2和Slave3連接。
[0005]在現(xiàn)實(shí)對(duì)mysql數(shù)據(jù)庫的使用中,主數(shù)據(jù)庫master有可能因?yàn)楦鞣N原因宕機(jī),例如系統(tǒng)故障、硬件故障等,均有可能導(dǎo)致主數(shù)據(jù)庫master宕機(jī),從而導(dǎo)致整個(gè)mysql數(shù)據(jù)庫集群無法使用,而現(xiàn)有技術(shù)中并未存在解決這一問題的有效技術(shù)手段。


【發(fā)明內(nèi)容】

[0006]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種數(shù)據(jù)庫集群的高可用解決方法和相應(yīng)地裝置。
[0007]依據(jù)本發(fā)明的一個(gè)方面,提供了一種數(shù)據(jù)庫集群的高可用解決方法,所述數(shù)據(jù)庫集群采用主從式結(jié)構(gòu),所述方法包括:
[0008]當(dāng)所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫無法提供服務(wù)時(shí),獲取所述數(shù)據(jù)庫集群的所有從數(shù)據(jù)庫的列表;
[0009]依據(jù)預(yù)設(shè)條件,在所述列表記錄的所述所有從數(shù)據(jù)庫中,篩選得到一個(gè)從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫;以及
[0010]將所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到所述新的主數(shù)據(jù)庫。
[0011]可選地,所述列表中記錄有所有從數(shù)據(jù)庫對(duì)應(yīng)的IP地址。
[0012]可選地,依據(jù)預(yù)設(shè)條件,在所述列表記錄的所述所有從數(shù)據(jù)庫中,篩選得到一個(gè)從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫的步驟進(jìn)一步包括:
[0013]在所述列表記錄的所述所有從數(shù)據(jù)庫中,選擇具備生命力的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫,其中,所述從數(shù)據(jù)庫具備生命力是指該從數(shù)據(jù)庫能夠提供數(shù)據(jù)和/或業(yè)務(wù)支持。
[0014]可選地,在所述列表記錄的所述所有從數(shù)據(jù)庫中,選擇具備生命力的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫的步驟進(jìn)一步包括:
[0015]選擇狀態(tài)標(biāo)識(shí)為alive狀態(tài)的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫;和/或
[0016]選擇延遲事務(wù)數(shù)量小于預(yù)設(shè)數(shù)量的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫。
[0017]可選地,選擇狀態(tài)標(biāo)識(shí)為alive狀態(tài)的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫的步驟進(jìn)一步包括:
[0018]通過對(duì)所述從數(shù)據(jù)庫執(zhí)行ping操作,獲取所述從數(shù)據(jù)庫的延遲時(shí)間;
[0019]判斷所述延遲時(shí)間是否小于預(yù)設(shè)時(shí)間;
[0020]當(dāng)所述延遲時(shí)間小于所述預(yù)設(shè)時(shí)間時(shí),判斷所述從數(shù)據(jù)庫的狀態(tài)標(biāo)識(shí)為alive狀態(tài);以及
[0021 ] 選擇所述從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫。
[0022]可選地,選擇延遲事務(wù)數(shù)量小于預(yù)設(shè)數(shù)量的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫的步驟進(jìn)一步包括:
[0023]獲取所述從數(shù)據(jù)庫的信息以確定所述從數(shù)據(jù)庫延遲的事務(wù)數(shù)量;
[0024]判斷延遲的所述事務(wù)數(shù)量是否小于預(yù)設(shè)數(shù)量;以及
[0025]當(dāng)延遲的所述事務(wù)數(shù)量小于所述預(yù)設(shè)數(shù)量時(shí),選擇所述從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫。
[0026]可選地,所述方法進(jìn)一步包括:
[0027]在所述將所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到所述新的主數(shù)據(jù)庫之前,對(duì)所述新的主數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行補(bǔ)全。
[0028]可選地,所述方法進(jìn)一步包括:
[0029]在所述將所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到所述新的主數(shù)據(jù)庫之后,將切換后的所述新的主數(shù)據(jù)庫的各項(xiàng)配置更新到中間層,以恢復(fù)業(yè)務(wù)。
[0030]可選地,所述數(shù)據(jù)庫集群中的所有主數(shù)據(jù)庫和從數(shù)據(jù)庫皆開啟了 gtid(globaltransact1n identifier,全局事務(wù)標(biāo)不符)。
[0031]依據(jù)本發(fā)明的一個(gè)方面,還提供了一種數(shù)據(jù)庫集群的高可用解決裝置,所述數(shù)據(jù)庫集群采用主從式結(jié)構(gòu),包括:
[0032]列表獲取模塊,適于當(dāng)所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫無法提供服務(wù)時(shí),獲取所述數(shù)據(jù)庫集群的所有從數(shù)據(jù)庫的列表;
[0033]主庫篩選模塊,適于依據(jù)預(yù)設(shè)條件,在所述列表記錄的所述所有從數(shù)據(jù)庫中,篩選得到一個(gè)從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫;
[0034]切換模塊,適于將所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到所述新的主數(shù)據(jù)庫。
[0035]可選地,所述列表中記錄有所有從數(shù)據(jù)庫對(duì)應(yīng)的IP地址。
[0036]可選地,所述主庫篩選模塊進(jìn)一步適于,在所述列表記錄的所述所有從數(shù)據(jù)庫中,選擇具備生命力的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫,其中,所述從數(shù)據(jù)庫具備生命力是指該從數(shù)據(jù)庫能夠提供數(shù)據(jù)和/或業(yè)務(wù)支持。
[0037]可選地,所述主庫篩選模塊進(jìn)一步適于:
[0038]選擇狀態(tài)標(biāo)識(shí)為alive狀態(tài)的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫;和/或
[0039]選擇延遲事務(wù)數(shù)量小于預(yù)設(shè)數(shù)量的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫。
[0040]可選地,所述主庫篩選模塊進(jìn)一步適于按照如下方式選擇狀態(tài)標(biāo)識(shí)為alive狀態(tài)的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫:
[0041]通過對(duì)所述從數(shù)據(jù)庫執(zhí)行ping操作,獲取所述從數(shù)據(jù)庫的延遲時(shí)間;
[0042]判斷所述延遲時(shí)間是否小于預(yù)設(shè)時(shí)間;
[0043]當(dāng)所述延遲時(shí)間小于所述預(yù)設(shè)時(shí)間時(shí),判斷所述從數(shù)據(jù)庫的狀態(tài)標(biāo)識(shí)為alive狀態(tài);以及
[0044]選擇所述從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫。
[0045]可選地,所述主庫篩選模塊進(jìn)一步適于按照如下方式選擇延遲事務(wù)數(shù)量小于預(yù)設(shè)數(shù)量的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫:
[0046]獲取所述從數(shù)據(jù)庫的信息以確定所述從數(shù)據(jù)庫延遲的事務(wù)數(shù)量;
[0047]判斷延遲的所述事務(wù)數(shù)量是否小于預(yù)設(shè)數(shù)量;以及
[0048]當(dāng)延遲的所述事務(wù)數(shù)量小于所述預(yù)設(shè)數(shù)量時(shí),選擇所述從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫。
[0049]可選地,所述裝置進(jìn)一步包括:
[0050]補(bǔ)全模塊,適于在將所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到所述新的主數(shù)據(jù)庫之前,將所述新的主數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行補(bǔ)全。
[0051]可選地,所述裝置進(jìn)一步包括:
[0052]配置模塊,適于在將所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到所述新的主數(shù)據(jù)庫之后,將切換后的所述新的主數(shù)據(jù)庫的各項(xiàng)配置更新到中間層,以恢復(fù)業(yè)務(wù)。
[0053]可選地,所述數(shù)據(jù)庫集群中的所有主數(shù)據(jù)庫和從數(shù)據(jù)庫皆開啟了 gtid。
[0054]本發(fā)明提供了一種數(shù)據(jù)庫集群的高可用解決方法和裝置,當(dāng)數(shù)據(jù)庫集群的主數(shù)據(jù)庫無法提供服務(wù)時(shí),通過獲取數(shù)據(jù)庫集群的所有從數(shù)據(jù)庫的列表,在該列表記錄的所有從數(shù)據(jù)庫中,篩選得到一個(gè)從數(shù)據(jù)庫作為新的主數(shù)據(jù)庫,將數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到該新的主數(shù)據(jù)庫,可以在數(shù)據(jù)庫集群的主數(shù)據(jù)庫由于宕機(jī)等原因無法提供服務(wù)時(shí),自動(dòng)選擇一個(gè)從數(shù)據(jù)庫切換為新的主數(shù)據(jù)庫,保證數(shù)據(jù)的全面并能讓業(yè)務(wù)在極短的時(shí)間內(nèi)得到恢復(fù)。
[0055]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
[0056]根據(jù)下文結(jié)合附圖對(duì)本發(fā)明具體實(shí)施例的詳細(xì)描述,本領(lǐng)域技術(shù)人員將會(huì)更加明了本發(fā)明的上述以及其他目的、優(yōu)點(diǎn)和特征。

【專利附圖】

【附圖說明】
[0057]通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0058]圖1是一種現(xiàn)有的關(guān)系型數(shù)據(jù)庫mysql數(shù)據(jù)庫集群的架構(gòu)示意圖;
[0059]圖2是本發(fā)明一個(gè)實(shí)施例提供的一種數(shù)據(jù)庫集群的高可用解決方法的流程示意圖;
[0060]圖3是本發(fā)明一個(gè)實(shí)施例提供的一種mysql數(shù)據(jù)庫集群的高可用解決方法具體流程不意圖;
[0061]圖4是本發(fā)明一個(gè)實(shí)施例提供的判斷所有從數(shù)據(jù)庫中的某一從數(shù)據(jù)庫是否符合作為新的主數(shù)據(jù)庫的篩選條件的方法流程示意圖;
[0062]圖5是本發(fā)明一個(gè)實(shí)施例提供的切換到新的主數(shù)據(jù)庫的mysql數(shù)據(jù)庫集群的架構(gòu)示意圖;
[0063]圖6是本發(fā)明一個(gè)實(shí)施例提供的一種數(shù)據(jù)庫集群的高可用解決裝置結(jié)構(gòu)示意圖。

【具體實(shí)施方式】
[0064]下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)該被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0065]實(shí)施例一
[0066]本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫集群的高可用解決方法,其可以實(shí)現(xiàn)在數(shù)據(jù)庫集群中,當(dāng)數(shù)據(jù)庫集群中的主數(shù)據(jù)庫無法提供服務(wù)時(shí),可以立刻選擇一備選從數(shù)據(jù)庫作為新的主數(shù)據(jù)庫,保證數(shù)據(jù)庫集群的正常運(yùn)行。
[0067]圖2是本實(shí)施例提供的一種數(shù)據(jù)庫集群的高可用解決方法的流程示意圖,該方法包括步驟S202至步驟S206。
[0068]S202:當(dāng)數(shù)據(jù)庫集群的主數(shù)據(jù)庫無法提供服務(wù)時(shí),獲取該數(shù)據(jù)庫集群的所有從數(shù)據(jù)庫的列表。
[0069]S204:依據(jù)預(yù)設(shè)條件,在列表記錄的所有從數(shù)據(jù)庫中,篩選得到一個(gè)從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫。
[0070]S206:將數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到上述新的主數(shù)據(jù)庫。
[0071]本發(fā)明提供了一種數(shù)據(jù)庫集群的高可用解決方法,當(dāng)數(shù)據(jù)庫集群的主數(shù)據(jù)庫無法提供服務(wù)時(shí),通過獲取數(shù)據(jù)庫集群的所有從數(shù)據(jù)庫的列表,在該列表記錄的所有從數(shù)據(jù)庫中,篩選得到一個(gè)從數(shù)據(jù)庫作為新的主數(shù)據(jù)庫,將數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到該新的主數(shù)據(jù)庫,可以在數(shù)據(jù)庫集群的主數(shù)據(jù)庫由于宕機(jī)等原因無法提供服務(wù)時(shí),自動(dòng)選擇一個(gè)從數(shù)據(jù)庫切換為新的主數(shù)據(jù)庫,保證數(shù)據(jù)的全面并能讓業(yè)務(wù)在極短的時(shí)間內(nèi)得到恢復(fù)。
[0072]實(shí)施例二
[0073]本實(shí)施例為上述實(shí)施例一的一種具體應(yīng)用場(chǎng)景,通過本實(shí)施例,能夠更加清楚、具體地闡述本發(fā)明所提供的方法。
[0074]應(yīng)可理解,本發(fā)明并不限定數(shù)據(jù)庫的類型,只要可以應(yīng)用本發(fā)明下述方案以達(dá)到高可用目的的數(shù)據(jù)庫都適用于此。此外,所述連接控制裝置也不限定于通過服務(wù)器來實(shí)現(xiàn),本領(lǐng)域技術(shù)人員在閱讀本發(fā)明的基礎(chǔ)上亦可以其他方式來實(shí)施所述的連接控制裝置,其皆應(yīng)涵蓋在本發(fā)明的范圍內(nèi)。
[0075]以下,將以Mysql數(shù)據(jù)為例說明本發(fā)明的技術(shù)方案:
[0076]為了能夠?qū)Ρ景l(fā)明實(shí)施例所提供的方法進(jìn)行更清楚的說明,在本實(shí)施例二中,仍以【背景技術(shù)】中圖1所示的mysql數(shù)據(jù)庫集群為例,當(dāng)前數(shù)據(jù)庫集群的主數(shù)據(jù)庫master由于宕機(jī)而無法提供服務(wù),且mysql數(shù)據(jù)庫集群中共包括3個(gè)從數(shù)據(jù)庫為例,說明如何解決主數(shù)據(jù)庫宕機(jī)時(shí)的解決方法。
[0077]如圖3所示,為本發(fā)明實(shí)施例提供的一種mysql數(shù)據(jù)庫集群的高可用解決方法,該方法共包括步驟S301至S305。
[0078]在步驟S301中,當(dāng)Mysql數(shù)據(jù)庫集群的主數(shù)據(jù)庫無法提供服務(wù)時(shí),獲取當(dāng)前mysql數(shù)據(jù)庫中的全部從數(shù)據(jù)庫,并組成列表;
[0079]其中,在本實(shí)施例中,mysql共包括三個(gè)從數(shù)據(jù)庫:
[0080]Slave-K Slave-2 和 Slave-3。
[0081]因此,可以有上述三個(gè)從數(shù)據(jù)庫組成mysql數(shù)據(jù)庫的所有從數(shù)據(jù)庫的列表,在該列表中可以使用上述三個(gè)從數(shù)據(jù)庫的IP地址進(jìn)行記錄。
[0082]進(jìn)一步地,可以將該列表中的從數(shù)據(jù)庫組成一個(gè)循環(huán),以供下面步驟中對(duì)從數(shù)據(jù)庫進(jìn)行篩選。
[0083]在得到所有從數(shù)據(jù)庫的列表后,執(zhí)行步驟S302,在列表中篩選符合新的主數(shù)據(jù)庫的條件的從數(shù)據(jù)庫,并將篩選得到的從數(shù)據(jù)庫作為新的主數(shù)據(jù)庫。
[0084]其中,可以作為新的主數(shù)據(jù)庫的從數(shù)據(jù)庫應(yīng)符合如下預(yù)設(shè)條件:
[0085]從數(shù)據(jù)庫的狀態(tài)為al ive狀態(tài);
[0086]延遲事務(wù)數(shù)量小于預(yù)設(shè)數(shù)量;
[0087]開啟了 gtid信息。
[0088]需要說明的是,從數(shù)據(jù)庫的狀態(tài)為alive狀態(tài)、開啟了 gtid信息為作為新的主數(shù)據(jù)庫的首選條件,對(duì)于延遲事務(wù)數(shù)量的要求則可以根據(jù)具體情況進(jìn)行選擇。
[0089]在從數(shù)據(jù)庫中進(jìn)行新的主數(shù)據(jù)庫的篩選時(shí),至少可以包括如下三種方式:
[0090](I)以循環(huán)的方式依次對(duì)所有的從數(shù)據(jù)庫進(jìn)行判斷,若得到任意一個(gè)符合作為新的主數(shù)據(jù)庫的條件的從數(shù)據(jù)庫,即可將該從數(shù)據(jù)庫作為新的主數(shù)據(jù)庫,停止對(duì)其他從數(shù)據(jù)庫的判斷。
[0091](2)以循環(huán)的方式依次對(duì)所有的從數(shù)據(jù)庫進(jìn)行判斷,全部判斷結(jié)束后,在符合新的主數(shù)據(jù)庫的條件的從數(shù)據(jù)庫中選取其中條件最好的一個(gè)從數(shù)據(jù)庫作為新的主數(shù)據(jù)庫。
[0092]例如,延遲時(shí)間最小、延遲事務(wù)數(shù)量最少等。
[0093](3)以循環(huán)的方式依次對(duì)所有的從數(shù)據(jù)庫進(jìn)行判斷,全部判斷結(jié)束后,在符合新的主數(shù)據(jù)庫的條件的從數(shù)據(jù)庫中任意選取一個(gè)從數(shù)據(jù)庫作為新的主數(shù)據(jù)庫。
[0094]下面對(duì)以循環(huán)的方式對(duì)所有的從數(shù)據(jù)庫進(jìn)行篩選的過程進(jìn)行具體說明,如圖4所示,提供了判斷所有從數(shù)據(jù)庫中的某一從數(shù)據(jù)庫是否符合作為新的主數(shù)據(jù)庫的篩選條件的方法流程圖,包括如下步驟:
[0095]在步驟S302-1中,判斷當(dāng)前從數(shù)據(jù)庫是否為alive狀態(tài),如果是,則執(zhí)行步驟S302-2,如果不是,則當(dāng)前從數(shù)據(jù)庫不符合新的主數(shù)據(jù)庫的篩選條件,跳轉(zhuǎn)到對(duì)下一從數(shù)據(jù)庫的判斷。
[0096]其中,判斷當(dāng)前從數(shù)據(jù)庫是否為alive狀態(tài)的方法可以是:
[0097]對(duì)當(dāng)前從數(shù)據(jù)庫執(zhí)行ping操作,判斷其返回相應(yīng)的延遲時(shí)間是否超過預(yù)設(shè)時(shí)間(例如可以是0.5ms),如果不是,則判定其為alive狀態(tài),如果是,則判斷其不是alive狀
--τ O
[0098]在步驟S302-2中,判斷當(dāng)前從數(shù)據(jù)庫的gtid、binlog等信息是否開啟,如果是,貝Ij執(zhí)行步驟S302-3,如果不是,則當(dāng)前從數(shù)據(jù)庫不符合新的主數(shù)據(jù)庫的篩選條件,跳轉(zhuǎn)到對(duì)下一從數(shù)據(jù)庫的判斷。
[0099]其中,gtid在原主數(shù)據(jù)庫master上的事務(wù)提交時(shí)被創(chuàng)建,由于gtid需要在全局的主-備拓?fù)浣Y(jié)構(gòu)中保持唯一性,因此通過GTID我們可以在自動(dòng)切換時(shí)對(duì)一些復(fù)雜的復(fù)制拓?fù)浜芊奖愕奶嵘轮鲾?shù)據(jù)庫,例如通過指向特定的gtid來確定新備庫復(fù)制坐標(biāo)。
[0100]gtid—般由兩部分組成:
[0101]gtid = source_id:transact1n_id
[0102]source_id用于標(biāo)示源服務(wù)器,用server_uuid來表示,這個(gè)值在第一次啟動(dòng)時(shí)生成,并寫入到mysql數(shù)據(jù)庫的配置文件data/auto, cnf中;
[0103]transact1n_id則是根據(jù)在源服務(wù)器上第幾個(gè)提交的事務(wù)來確定。
[0104]一般情況下,gtid被記錄在mysql數(shù)據(jù)庫的binlog中,它在binlog中表現(xiàn)的事件類型可以是:
[0105]GTID_LOG_EVENT:用于表示隨后的事務(wù)的GTID ;
[0106]ANONYMOUS_GTID_LOG_EVENT:匿名 GTID 事件類型;
[0107]PREV1US_GTIDS_LOG_EVENT:用于表示當(dāng)前binlog文件之前已經(jīng)執(zhí)行過的GTID
口 O
[0108]它一般被記錄在binlog的文件頭。
[0109]在進(jìn)行查詢時(shí),可以通過執(zhí)行check_candidate_eligibility函數(shù)來查詢gtid、binlog等信息并確保其開啟。
[0110]在步驟S302-3中,判斷當(dāng)前從數(shù)據(jù)庫延遲的事務(wù)數(shù)量是否小于預(yù)設(shè)數(shù)量,如果是,則當(dāng)前從數(shù)據(jù)庫符合新的主數(shù)據(jù)庫的篩選條件,如果不是,則當(dāng)前從數(shù)據(jù)庫不符合新的主數(shù)據(jù)庫的篩選條件,跳轉(zhuǎn)到對(duì)下一從數(shù)據(jù)庫的判斷。
[0111]需要說明的是,若從數(shù)據(jù)庫延遲的事務(wù)數(shù)量過多,則說明其狀況不好,不能用作新的主數(shù)據(jù)庫,以免影響整個(gè)mysql數(shù)據(jù)庫的運(yùn)行效率,預(yù)設(shè)數(shù)量可以為100個(gè)。
[0112]在篩選得到新的主數(shù)據(jù)庫后,執(zhí)行步驟S303,對(duì)新的主數(shù)據(jù)庫進(jìn)行數(shù)據(jù)補(bǔ)全。
[0113]其中,在mysql數(shù)據(jù)庫的主從結(jié)構(gòu)中,要求主數(shù)據(jù)庫具有整個(gè)mysql集群中最全最新的數(shù)據(jù),而新的主數(shù)據(jù)庫由從數(shù)據(jù)庫中篩選得到,因此還需要將其進(jìn)行數(shù)據(jù)補(bǔ)全,以使其具有最新最全的數(shù)據(jù)才能進(jìn)行主數(shù)據(jù)庫的切換。
[0114]對(duì)于新的主數(shù)據(jù)庫的數(shù)據(jù)補(bǔ)全操作,可以按照如下方式:
[0115]將新的主數(shù)據(jù)庫與其他所有從數(shù)據(jù)庫進(jìn)行依次的比對(duì),若從數(shù)據(jù)庫的數(shù)據(jù)較新,則將從數(shù)據(jù)庫中的數(shù)據(jù)同步到新的主數(shù)據(jù)庫中,直至完成對(duì)所有從數(shù)據(jù)庫的比對(duì)和同步,此時(shí)可保證新的主數(shù)據(jù)庫具有最新最全的數(shù)據(jù)。
[0116]在完成對(duì)新的主數(shù)據(jù)庫的數(shù)據(jù)補(bǔ)全后,執(zhí)行步驟S304,將mysql數(shù)據(jù)庫的主數(shù)據(jù)庫切換到新的從數(shù)據(jù)庫。
[0117]其中,對(duì)于主數(shù)據(jù)庫的切換,可以通過修改mysql數(shù)據(jù)庫的配置文件完成。
[0118]在本實(shí)施例中,以新的主數(shù)據(jù)庫為Slave-1為例,如圖5所示,為切換到新的主數(shù)據(jù)庫的mysql數(shù)據(jù)庫集群的架構(gòu)示意圖,新的主數(shù)據(jù)庫為Slave-1,從數(shù)據(jù)庫為Slave-2和Slave_30
[0119]在完成主數(shù)據(jù)庫的切換后,繼而執(zhí)行步驟S305,將新的主數(shù)據(jù)庫的更新配置更新到中間層,以恢復(fù)業(yè)務(wù)。
[0120]本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫集群的高可用解決方法,當(dāng)數(shù)據(jù)庫集群的主數(shù)據(jù)庫無法提供服務(wù)時(shí),通過獲取數(shù)據(jù)庫集群的所有從數(shù)據(jù)庫的列表,在該列表記錄的所有從數(shù)據(jù)庫中,篩選得到一個(gè)從數(shù)據(jù)庫作為新的主數(shù)據(jù)庫,將數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到該新的主數(shù)據(jù)庫,可以在數(shù)據(jù)庫集群的主數(shù)據(jù)庫由于宕機(jī)等原因無法提供服務(wù)時(shí),自動(dòng)選擇一個(gè)從數(shù)據(jù)庫切換為新的主數(shù)據(jù)庫,保證數(shù)據(jù)的全面并能讓業(yè)務(wù)在極短的時(shí)間內(nèi)得到恢復(fù)。
[0121]實(shí)施例三
[0122]圖6是本發(fā)明一個(gè)實(shí)施例提供的一種數(shù)據(jù)庫集群的高可用解決裝置結(jié)構(gòu)框圖,該數(shù)據(jù)庫集群采用主從結(jié)構(gòu),該裝置600包括:
[0123]列表獲取模塊610,適于當(dāng)所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫無法提供服務(wù)時(shí),獲取所述數(shù)據(jù)庫的所有從數(shù)據(jù)庫的列表;
[0124]主庫篩選模塊620,適于依據(jù)預(yù)設(shè)條件,在上述列表記錄的所述所有從數(shù)據(jù)庫中,篩選得到一個(gè)從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫;
[0125]切換模塊630,適于將該數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到上述新的主數(shù)據(jù)庫。
[0126]可選地,上述列表中記錄有所有從數(shù)據(jù)庫對(duì)應(yīng)的IP地址。
[0127]可選地,主庫篩選模塊620進(jìn)一步適于,在上述列表記錄的所有從數(shù)據(jù)庫中,選擇具備生命力的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫,其中,從數(shù)據(jù)庫具備生命力是指該從數(shù)據(jù)庫能夠提供數(shù)據(jù)和/或業(yè)務(wù)支持。
[0128]可選地,主庫篩選模塊620進(jìn)一步適于:
[0129]選擇狀態(tài)標(biāo)識(shí)為alive狀態(tài)的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫;和/或
[0130]選擇延遲事務(wù)數(shù)量小于預(yù)設(shè)數(shù)量的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫。
[0131]可選地,主庫篩選模塊620進(jìn)一步適于按照如下方式選擇狀態(tài)標(biāo)識(shí)為alive狀態(tài)的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫:
[0132]通過對(duì)從數(shù)據(jù)庫執(zhí)行ping操作,獲取從數(shù)據(jù)庫的延遲時(shí)間;
[0133]判斷延遲時(shí)間是否小于預(yù)設(shè)時(shí)間;
[0134]當(dāng)延遲時(shí)間小于預(yù)設(shè)時(shí)間時(shí),判斷從數(shù)據(jù)庫的狀態(tài)標(biāo)識(shí)為alive狀態(tài);以及
[0135]選擇該從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫。
[0136]可選地,主庫篩選模塊620進(jìn)一步適于按照如下方式選擇延遲事務(wù)數(shù)量小于預(yù)設(shè)數(shù)量的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫:
[0137]獲取從數(shù)據(jù)庫的信息以確定從數(shù)據(jù)庫延遲的事務(wù)數(shù)量;
[0138]判斷延遲的事務(wù)數(shù)量是否小于預(yù)設(shè)數(shù)量;以及
[0139]當(dāng)延遲的事務(wù)數(shù)量小于預(yù)設(shè)數(shù)量時(shí),選擇該從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫。
[0140]可選地,上述裝置600還包括:
[0141]補(bǔ)全模塊640,適于在將數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到新的主數(shù)據(jù)庫之前,將該新的主數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行補(bǔ)全。
[0142]可選地,上述裝置600還包括:
[0143]配置模塊650,適于在將數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到新的主數(shù)據(jù)庫之后,將切換后的新的主數(shù)據(jù)庫的各項(xiàng)配置更新到中間層,以恢復(fù)業(yè)務(wù)。
[0144]本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫集群的高可用解決裝置,當(dāng)數(shù)據(jù)庫集群的主數(shù)據(jù)庫無法提供服務(wù)時(shí),通過獲取數(shù)據(jù)庫集群的所有從數(shù)據(jù)庫的列表,在該列表記錄的所有從數(shù)據(jù)庫中,篩選得到一個(gè)從數(shù)據(jù)庫作為新的主數(shù)據(jù)庫,將數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到該新的主數(shù)據(jù)庫,可以在數(shù)據(jù)庫集群的主數(shù)據(jù)庫由于宕機(jī)等原因無法提供服務(wù)時(shí),自動(dòng)選擇一個(gè)從數(shù)據(jù)庫切換為新的主數(shù)據(jù)庫,保證數(shù)據(jù)的全面并能讓業(yè)務(wù)在極短的時(shí)間內(nèi)得到恢復(fù)。
[0145]在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。
[0146]類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循【具體實(shí)施方式】的權(quán)利要求書由此明確地并入該【具體實(shí)施方式】,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
[0147]本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
[0148]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
[0149]本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)庫集群的高可用解決裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
[0150]應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
[0151]至此,本領(lǐng)域技術(shù)人員應(yīng)認(rèn)識(shí)到,雖然本文已詳盡示出和描述了本發(fā)明的多個(gè)示例性實(shí)施例,但是,在不脫離本發(fā)明精神和范圍的情況下,仍可根據(jù)本發(fā)明公開的內(nèi)容直接確定或推導(dǎo)出符合本發(fā)明原理的許多其他變型或修改。因此,本發(fā)明的范圍應(yīng)被理解和認(rèn)定為覆蓋了所有這些其他變型或修改。
[0152]本發(fā)明實(shí)施例提供了 Al.—種數(shù)據(jù)庫集群的高可用解決方法,所述數(shù)據(jù)庫集群采用主從式結(jié)構(gòu),所述方法包括:當(dāng)所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫無法提供服務(wù)時(shí),獲取所述數(shù)據(jù)庫集群的所有從數(shù)據(jù)庫的列表;依據(jù)預(yù)設(shè)條件,在所述列表記錄的所述所有從數(shù)據(jù)庫中,篩選得到一個(gè)從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫;以及,將所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到所述新的主數(shù)據(jù)庫。A2.根據(jù)Al所述的方法,其中,所述列表中記錄有所有從數(shù)據(jù)庫對(duì)應(yīng)的IP地址。A3.根據(jù)Al或A2所述的方法,其中,依據(jù)預(yù)設(shè)條件,在所述列表記錄的所述所有從數(shù)據(jù)庫中,篩選得到一個(gè)從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫的步驟進(jìn)一步包括:在所述列表記錄的所述所有從數(shù)據(jù)庫中,選擇具備生命力的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫,其中,所述從數(shù)據(jù)庫具備生命力是指該從數(shù)據(jù)庫能夠提供數(shù)據(jù)和/或業(yè)務(wù)支持。A4.根據(jù)A3所述的方法,其中,在所述列表記錄的所述所有從數(shù)據(jù)庫中,選擇具備生命力的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫的步驟進(jìn)一步包括:選擇狀態(tài)標(biāo)識(shí)為alive狀態(tài)的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫;和/或選擇延遲事務(wù)數(shù)量小于預(yù)設(shè)數(shù)量的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫。A5.根據(jù)A4所述的方法,其中,選擇狀態(tài)標(biāo)識(shí)為alive狀態(tài)的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫的步驟進(jìn)一步包括:通過對(duì)所述從數(shù)據(jù)庫執(zhí)行Ping操作,獲取所述從數(shù)據(jù)庫的延遲時(shí)間;判斷所述延遲時(shí)間是否小于預(yù)設(shè)時(shí)間;當(dāng)所述延遲時(shí)間小于所述預(yù)設(shè)時(shí)間時(shí),判斷所述從數(shù)據(jù)庫的狀態(tài)標(biāo)識(shí)為alive狀態(tài);以及,選擇所述從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫。A6.根據(jù)A4所述的方法,其中,選擇延遲事務(wù)數(shù)量小于預(yù)設(shè)數(shù)量的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫的步驟進(jìn)一步包括:獲取所述從數(shù)據(jù)庫的信息以確定所述從數(shù)據(jù)庫延遲的事務(wù)數(shù)量;判斷延遲的所述事務(wù)數(shù)量是否小于預(yù)設(shè)數(shù)量;以及,當(dāng)延遲的所述事務(wù)數(shù)量小于所述預(yù)設(shè)數(shù)量時(shí),選擇所述從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫。A7.根據(jù)Al至A6中任一項(xiàng)所述的方法,其中,所述方法進(jìn)一步包括:在所述將所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到所述新的主數(shù)據(jù)庫之前,對(duì)所述新的主數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行補(bǔ)全。AS.根據(jù)Al至A7中任一項(xiàng)所述的方法,其中,所述方法進(jìn)一步包括:在所述將所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到所述新的主數(shù)據(jù)庫之后,將切換后的所述新的主數(shù)據(jù)庫的各項(xiàng)配置更新到中間層,以恢復(fù)業(yè)務(wù)。A9.根據(jù)Al至AS中任一項(xiàng)所述的方法,其中,所述數(shù)據(jù)庫集群中的所有主數(shù)據(jù)庫和從數(shù)據(jù)庫皆開啟了全局事務(wù)標(biāo)示符 gtid。
[0153]本發(fā)明實(shí)施例提供了 B10.—種數(shù)據(jù)庫集群的高可用解決裝置,所述數(shù)據(jù)庫集群采用主從式結(jié)構(gòu),包括:列表獲取模塊,適于當(dāng)所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫無法提供服務(wù)時(shí),獲取所述數(shù)據(jù)庫集群的所有從數(shù)據(jù)庫的列表;主庫篩選模塊,適于依據(jù)預(yù)設(shè)條件,在所述列表記錄的所述所有從數(shù)據(jù)庫中,篩選得到一個(gè)從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫;切換模塊,適于將所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到所述新的主數(shù)據(jù)庫。Bll.根據(jù)BlO所述的裝置,其中,所述列表中記錄有所有從數(shù)據(jù)庫對(duì)應(yīng)的IP地址。B12.根據(jù)BlO或Bll所述的裝置,其中,所述主庫篩選模塊進(jìn)一步適于,在所述列表記錄的所述所有從數(shù)據(jù)庫中,選擇具備生命力的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫,其中,所述從數(shù)據(jù)庫具備生命力是指該從數(shù)據(jù)庫能夠提供數(shù)據(jù)和/或業(yè)務(wù)支持。B13.根據(jù)B12所述的裝置,其中,所述主庫篩選模塊進(jìn)一步適于:選擇狀態(tài)標(biāo)識(shí)為alive狀態(tài)的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫;和/或選擇延遲事務(wù)數(shù)量小于預(yù)設(shè)數(shù)量的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫。B14.根據(jù)B13所述的裝置,其中,所述主庫篩選模塊進(jìn)一步適于按照如下方式選擇狀態(tài)標(biāo)識(shí)為alive狀態(tài)的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫:通過對(duì)所述從數(shù)據(jù)庫執(zhí)行Ping操作,獲取所述從數(shù)據(jù)庫的延遲時(shí)間;判斷所述延遲時(shí)間是否小于預(yù)設(shè)時(shí)間;當(dāng)所述延遲時(shí)間小于所述預(yù)設(shè)時(shí)間時(shí),判斷所述從數(shù)據(jù)庫的狀態(tài)標(biāo)識(shí)為alive狀態(tài);以及,選擇所述從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫。B15.根據(jù)B13所述的裝置,其中,所述主庫篩選模塊進(jìn)一步適于按照如下方式選擇延遲事務(wù)數(shù)量小于預(yù)設(shè)數(shù)量的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫:獲取所述從數(shù)據(jù)庫的信息以確定所述從數(shù)據(jù)庫延遲的事務(wù)數(shù)量;判斷延遲的所述事務(wù)數(shù)量是否小于預(yù)設(shè)數(shù)量;以及,當(dāng)延遲的所述事務(wù)數(shù)量小于所述預(yù)設(shè)數(shù)量時(shí),選擇所述從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫。B16.根據(jù)BlO至B15中任一項(xiàng)所述的裝置,其中,所述裝置進(jìn)一步包括:補(bǔ)全模塊,適于在將所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到所述新的主數(shù)據(jù)庫之前,將所述新的主數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行補(bǔ)全。B17.根據(jù)BlO至B16中任一項(xiàng)所述的裝置,其中,所述裝置進(jìn)一步包括:配置模塊,適于在將所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到所述新的主數(shù)據(jù)庫之后,將切換后的所述新的主數(shù)據(jù)庫的各項(xiàng)配置更新到中間層,以恢復(fù)業(yè)務(wù)。B18.根據(jù)BlO至B17中任一項(xiàng)所述的裝置,其中,所述數(shù)據(jù)庫集群中的所有主數(shù)據(jù)庫和從數(shù)據(jù)庫皆開啟了全局事務(wù)標(biāo)示符gtid。
【權(quán)利要求】
1.一種數(shù)據(jù)庫集群的高可用解決方法,所述數(shù)據(jù)庫集群采用主從式結(jié)構(gòu),所述方法包括: 當(dāng)所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫無法提供服務(wù)時(shí),獲取所述數(shù)據(jù)庫集群的所有從數(shù)據(jù)庫的列表; 依據(jù)預(yù)設(shè)條件,在所述列表記錄的所述所有從數(shù)據(jù)庫中,篩選得到一個(gè)從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫;以及 將所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到所述新的主數(shù)據(jù)庫。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述列表中記錄有所有從數(shù)據(jù)庫對(duì)應(yīng)的IP地址。
3.根據(jù)權(quán)利要求1或2所述的方法,其中,依據(jù)預(yù)設(shè)條件,在所述列表記錄的所述所有從數(shù)據(jù)庫中,篩選得到一個(gè)從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫的步驟進(jìn)一步包括: 在所述列表記錄的所述所有從數(shù)據(jù)庫中,選擇具備生命力的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫,其中,所述從數(shù)據(jù)庫具備生命力是指該從數(shù)據(jù)庫能夠提供數(shù)據(jù)和/或業(yè)務(wù)支持。
4.根據(jù)權(quán)利要求3所述的方法,其中,在所述列表記錄的所述所有從數(shù)據(jù)庫中,選擇具備生命力的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫的步驟進(jìn)一步包括: 選擇狀態(tài)標(biāo)識(shí)為alive狀態(tài)的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫;和/或 選擇延遲事務(wù)數(shù)量小于預(yù)設(shè)數(shù)量的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫。
5.根據(jù)權(quán)利要求4所述的方法,其中,選擇狀態(tài)標(biāo)識(shí)為alive狀態(tài)的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫的步驟進(jìn)一步包括: 通過對(duì)所述從數(shù)據(jù)庫執(zhí)行Ping操作,獲取所述從數(shù)據(jù)庫的延遲時(shí)間; 判斷所述延遲時(shí)間是否小于預(yù)設(shè)時(shí)間; 當(dāng)所述延遲時(shí)間小于所述預(yù)設(shè)時(shí)間時(shí),判斷所述從數(shù)據(jù)庫的狀態(tài)標(biāo)識(shí)為alive狀態(tài);以及 選擇所述從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫。
6.一種數(shù)據(jù)庫集群的高可用解決裝置,所述數(shù)據(jù)庫集群采用主從式結(jié)構(gòu),包括: 列表獲取模塊,適于當(dāng)所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫無法提供服務(wù)時(shí),獲取所述數(shù)據(jù)庫集群的所有從數(shù)據(jù)庫的列表; 主庫篩選模塊,適于依據(jù)預(yù)設(shè)條件,在所述列表記錄的所述所有從數(shù)據(jù)庫中,篩選得到一個(gè)從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫; 切換模塊,適于將所述數(shù)據(jù)庫集群的主數(shù)據(jù)庫切換到所述新的主數(shù)據(jù)庫。
7.根據(jù)權(quán)利要求6所述的裝置,其中,所述列表中記錄有所有從數(shù)據(jù)庫對(duì)應(yīng)的IP地址。
8.根據(jù)權(quán)利要求6或7所述的裝置,其中,所述主庫篩選模塊進(jìn)一步適于,在所述列表記錄的所述所有從數(shù)據(jù)庫中,選擇具備生命力的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫,其中,所述從數(shù)據(jù)庫具備生命力是指該從數(shù)據(jù)庫能夠提供數(shù)據(jù)和/或業(yè)務(wù)支持。
9.根據(jù)權(quán)利要求8所述的裝置,其中,所述主庫篩選模塊進(jìn)一步適于: 選擇狀態(tài)標(biāo)識(shí)為alive狀態(tài)的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫;和/或 選擇延遲事務(wù)數(shù)量小于預(yù)設(shè)數(shù)量的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫。
10.根據(jù)權(quán)利要求9所述的裝置,其中,所述主庫篩選模塊進(jìn)一步適于按照如下方式選擇狀態(tài)標(biāo)識(shí)為alive狀態(tài)的從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫: 通過對(duì)所述從數(shù)據(jù)庫執(zhí)行Ping操作,獲取所述從數(shù)據(jù)庫的延遲時(shí)間; 判斷所述延遲時(shí)間是否小于預(yù)設(shè)時(shí)間; 當(dāng)所述延遲時(shí)間小于所述預(yù)設(shè)時(shí)間時(shí),判斷所述從數(shù)據(jù)庫的狀態(tài)標(biāo)識(shí)為alive狀態(tài);以及 選擇所述從數(shù)據(jù)庫以作為新的主數(shù)據(jù)庫。
【文檔編號(hào)】G06F11/14GK104516966SQ201410818093
【公開日】2015年4月15日 申請(qǐng)日期:2014年12月24日 優(yōu)先權(quán)日:2014年12月24日
【發(fā)明者】楊挺 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
山东省| 阳朔县| 新邵县| 绿春县| 河池市| 碌曲县| 基隆市| 响水县| 海口市| 龙口市| 临漳县| 厦门市| 香港 | 义马市| 和平区| 云龙县| 保定市| 拜城县| 松原市| 普洱| 东平县| 玉屏| 南川市| 房产| 体育| 新宾| 友谊县| 亚东县| 京山县| 芜湖市| 喜德县| 宜州市| 南汇区| 年辖:市辖区| 通渭县| 桑植县| 德安县| 牙克石市| 黄陵县| 弥渡县| 明光市|