国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種擴(kuò)充主從式數(shù)據(jù)庫系統(tǒng)的方法和裝置與流程

      文檔序號(hào):11919100閱讀:233來源:國知局
      一種擴(kuò)充主從式數(shù)據(jù)庫系統(tǒng)的方法和裝置與流程

      本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種擴(kuò)充主從式數(shù)據(jù)庫系統(tǒng)的方法和裝置。



      背景技術(shù):

      在計(jì)算機(jī)技術(shù)領(lǐng)域中,為了防止誤刪數(shù)據(jù)或未來的數(shù)據(jù)量的增多,會(huì)進(jìn)行數(shù)據(jù)庫的擴(kuò)充。在眾多數(shù)據(jù)庫類型中,主從式數(shù)據(jù)庫系統(tǒng)通常包含有一個(gè)主數(shù)據(jù)庫和一個(gè)或者多個(gè)從數(shù)據(jù)庫,實(shí)現(xiàn)了數(shù)據(jù)庫讀寫功能的分離。一般來說,主數(shù)據(jù)庫負(fù)責(zé)寫入數(shù)據(jù)的操作,從數(shù)據(jù)庫負(fù)責(zé)對(duì)主數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行備份以及負(fù)責(zé)數(shù)據(jù)查詢等操作。在MySQL主從式數(shù)據(jù)庫系統(tǒng)的擴(kuò)充,一般情況下是從數(shù)據(jù)庫的擴(kuò)充,首先將數(shù)據(jù)備份到一個(gè)非本地的數(shù)據(jù)存儲(chǔ)中,然后擴(kuò)充中新增加的從數(shù)據(jù)庫從相應(yīng)的數(shù)據(jù)存儲(chǔ)中讀取備份數(shù)據(jù)。但是,這種方式,一方面,將數(shù)據(jù)備份到數(shù)據(jù)存儲(chǔ)中消耗的時(shí)間較長;另一方面,新增加的從數(shù)據(jù)庫從相應(yīng)的數(shù)據(jù)存儲(chǔ)中讀取備份數(shù)據(jù)也會(huì)消耗較長的時(shí)間。例如,數(shù)據(jù)是2T,備份數(shù)據(jù)需要4h,新的從數(shù)據(jù)庫讀取數(shù)據(jù)也需要4h,總共需要至少8h的時(shí)間;且新的從數(shù)據(jù)庫讀取完備份數(shù)據(jù)后,還需要將消耗的8小時(shí)中新增的數(shù)據(jù)進(jìn)行同步??梢姡F(xiàn)有技術(shù)中的主從式數(shù)據(jù)庫系統(tǒng)的擴(kuò)充的效率較低,影響數(shù)據(jù)庫系統(tǒng)的整體速度。



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

      鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的擴(kuò)充主從式數(shù)據(jù)庫系統(tǒng)的方法和相應(yīng)的裝置。

      依據(jù)本發(fā)明的一個(gè)方面,提供了一種擴(kuò)充主從式數(shù)據(jù)庫系統(tǒng)的方法,包括:

      選定主從式數(shù)據(jù)庫系統(tǒng)中的一個(gè)從數(shù)據(jù)庫,在該選定從數(shù)據(jù)庫所在節(jié)點(diǎn)的本地為該從數(shù)據(jù)庫創(chuàng)建一個(gè)鏡像庫;

      將所述鏡像庫中的數(shù)據(jù)傳輸?shù)狡渌?jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例中;

      在將所述鏡像庫中的數(shù)據(jù)傳輸完畢后,啟動(dòng)所述新的數(shù)據(jù)庫實(shí)例并將其作為新的從數(shù)據(jù)庫加入到所述主從式數(shù)據(jù)庫系統(tǒng)中。

      可選地,將所述鏡像庫中的數(shù)據(jù)傳輸?shù)狡渌?jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例中包括:

      將所述鏡像庫中的數(shù)據(jù)利用多線程傳輸?shù)狡渌?jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例中。

      可選地,所述將所述鏡像庫中的數(shù)據(jù)利用多線程傳輸?shù)狡渌?jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例中包括:

      將所述鏡像庫中的數(shù)據(jù)切分為N塊數(shù)據(jù),并進(jìn)行編號(hào);N為大于或等于2的自然數(shù);

      啟動(dòng)N個(gè)線程分別傳輸所述N數(shù)據(jù)到其他節(jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例中;

      在所述新的數(shù)據(jù)庫實(shí)例中根據(jù)各數(shù)據(jù)塊的編號(hào)將各數(shù)據(jù)塊進(jìn)行組合。

      可選地,該方法進(jìn)一步包括:

      在該選定從數(shù)據(jù)庫所在節(jié)點(diǎn)的本地為該從數(shù)據(jù)庫創(chuàng)建一個(gè)鏡像庫之前,啟動(dòng)該選定從數(shù)據(jù)庫的數(shù)據(jù)讀取鎖;

      在將所述鏡像庫中的數(shù)據(jù)傳輸完畢后,釋放該選定從數(shù)據(jù)庫的數(shù)據(jù)讀取鎖。

      可選地,該方法進(jìn)一步包括:

      獲取該選定從數(shù)據(jù)庫在啟動(dòng)該選定從數(shù)據(jù)庫的數(shù)據(jù)讀取鎖至釋放該選定從數(shù)據(jù)庫的數(shù)據(jù)讀取鎖的時(shí)間段內(nèi)的主從同步日志;

      根據(jù)所述主從同步日志,將主數(shù)據(jù)庫的數(shù)據(jù)同步到所述新的從數(shù)據(jù)庫中。

      根據(jù)本發(fā)明的另一方面,提供了一種擴(kuò)充主從式數(shù)據(jù)庫系統(tǒng)的裝置,包括:

      鏡像單元,適于選定主從式數(shù)據(jù)庫系統(tǒng)中的一個(gè)從數(shù)據(jù)庫,在該選定從數(shù)據(jù)庫所在節(jié)點(diǎn)的本地為該從數(shù)據(jù)庫創(chuàng)建一個(gè)鏡像庫;

      數(shù)據(jù)傳輸單元,適于將所述鏡像庫中的數(shù)據(jù)傳輸?shù)狡渌?jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例中;

      擴(kuò)充單元,適于在所述數(shù)據(jù)傳輸單元將所述鏡像庫中的數(shù)據(jù)傳輸完畢后,啟動(dòng)所述新的數(shù)據(jù)庫實(shí)例并將其作為新的從數(shù)據(jù)庫加入到所述主從式數(shù)據(jù)庫系統(tǒng)中。

      可選地,所述數(shù)據(jù)傳輸單元,適于將所述鏡像庫中的數(shù)據(jù)利用多線程傳輸?shù)狡渌?jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例中。

      可選地,所述數(shù)據(jù)傳輸單元,適于將所述鏡像庫中的數(shù)據(jù)切分為N塊數(shù)據(jù),并進(jìn)行編號(hào);N為大于或等于2的自然數(shù);啟動(dòng)N個(gè)線程分別傳輸所述N數(shù)據(jù)到其他節(jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例中;在所述新的數(shù)據(jù)庫實(shí)例中根據(jù)各數(shù)據(jù)塊的編號(hào)將各數(shù)據(jù)塊進(jìn)行組合。

      可選地,所述鏡像單元,進(jìn)一步適于在該選定從數(shù)據(jù)庫所在節(jié)點(diǎn)的本地為該從數(shù)據(jù)庫做一個(gè)鏡像庫之前,啟動(dòng)該選定從數(shù)據(jù)庫的數(shù)據(jù)讀取鎖;以及適于在所述數(shù)據(jù)傳輸單元將所述鏡像庫中的數(shù)據(jù)傳輸完畢后,釋放該選定從數(shù)據(jù)庫的數(shù)據(jù)讀取鎖。

      可選地,該裝置進(jìn)一步包括:

      數(shù)據(jù)同步單元,適于獲取該選定從數(shù)據(jù)庫在啟動(dòng)該選定從數(shù)據(jù)庫的數(shù)據(jù)讀取鎖至釋放該選定從數(shù)據(jù)庫的數(shù)據(jù)讀取鎖的時(shí)間段內(nèi)的主從同步日志;以及根據(jù)所述主從同步日志,將主數(shù)據(jù)庫的數(shù)據(jù)同步到所述新的從數(shù)據(jù)庫中。

      根據(jù)本發(fā)明的技術(shù)方案,選定主從式數(shù)據(jù)庫系統(tǒng)中的一個(gè)從數(shù)據(jù)庫后,在該選定從數(shù)據(jù)庫所在節(jié)點(diǎn)的本地為該從數(shù)據(jù)庫創(chuàng)建一個(gè)鏡像庫,提高數(shù)據(jù)備份的速度;然后將鏡像庫中的數(shù)據(jù)傳輸?shù)狡渌?jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例中;在將鏡像庫中的數(shù)據(jù)傳輸完畢后,啟動(dòng)新的數(shù)據(jù)庫實(shí)例并將其作為新的從數(shù)據(jù)庫加入到所述主從式數(shù)據(jù)庫系統(tǒng)中,這樣就可以完成一個(gè)主從式數(shù)據(jù)庫的擴(kuò)充。綜上所述,本發(fā)明可以提高主從式數(shù)據(jù)庫系統(tǒng)的擴(kuò)充速度,保證擴(kuò)充效率,保證數(shù)據(jù)庫系統(tǒng)的整體速度。

      上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。

      附圖說明

      通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:

      圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種擴(kuò)充主從式數(shù)據(jù)庫系統(tǒng)的方法的流程示意圖;

      圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種擴(kuò)充主從式數(shù)據(jù)庫系統(tǒng)的裝置的結(jié)構(gòu)示意圖;

      圖3示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的一種擴(kuò)充主從式數(shù)據(jù)庫系統(tǒng)的裝置的結(jié)構(gòu)示意圖。

      具體實(shí)施方式

      下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。

      圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種擴(kuò)充主從式數(shù)據(jù)庫系統(tǒng)的方法的流程示意圖。如圖1所示,該方法包括:

      步驟S110,選定主從式數(shù)據(jù)庫系統(tǒng)中的一個(gè)從數(shù)據(jù)庫,在該選定從數(shù)據(jù)庫所在節(jié)點(diǎn)的本地為該從數(shù)據(jù)庫創(chuàng)建一個(gè)鏡像庫。

      在主從式數(shù)據(jù)庫系統(tǒng)中選定一個(gè)從數(shù)據(jù)庫,這里的選定可以是在主從式數(shù)據(jù)庫中堆積選擇一個(gè),也可以指定一個(gè)從數(shù)據(jù)庫;然后對(duì)選定的從數(shù)據(jù)庫中的數(shù)據(jù)創(chuàng)建一個(gè)鏡像庫,因?yàn)閺臄?shù)據(jù)庫的數(shù)據(jù)是對(duì)主數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行備份,就相當(dāng)于將該數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)創(chuàng)建了一個(gè)鏡像庫。在創(chuàng)建鏡像庫時(shí)的時(shí)候,在該選定從數(shù)據(jù)庫所在節(jié)點(diǎn)的本地為該從數(shù)據(jù)庫創(chuàng)建是指在數(shù)據(jù)庫系統(tǒng)的本地創(chuàng)建鏡像庫或者在選定的從數(shù)據(jù)庫的本地創(chuàng)建鏡像庫。例如,從數(shù)據(jù)庫的數(shù)據(jù)占用的資源空間為1T,而從數(shù)據(jù)庫總共的資源空間是3T,從數(shù)據(jù)庫的本地可以提供鏡像庫所需要的1T資源空間,那么只要在該從數(shù)據(jù)庫本地創(chuàng)建鏡像庫即可。在本地進(jìn)行創(chuàng)建鏡像庫的速度非常快,消耗的時(shí)間與備份數(shù)據(jù)到非本地的數(shù)據(jù)存儲(chǔ)的時(shí)間相比大大減少。

      步驟S120,將鏡像庫中的數(shù)據(jù)傳輸?shù)狡渌?jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例中。

      這里其他節(jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例就是指新增加的從數(shù)據(jù)庫,因?yàn)閺臄?shù)據(jù)庫的數(shù)據(jù)是是對(duì)主數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行備份,所以,新增加的從數(shù)據(jù)庫投入使用時(shí)需要將主數(shù)據(jù)庫中已存在的數(shù)據(jù)傳輸?shù)叫略黾拥膹臄?shù)據(jù)庫中。上一步驟中,已經(jīng)創(chuàng)建了數(shù)據(jù)的鏡像庫,所以,只需要將將鏡像庫中的數(shù)據(jù)傳輸?shù)狡渌?jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例中,即新增加的從數(shù)據(jù)庫中。

      步驟S130,在將鏡像庫中的數(shù)據(jù)傳輸完畢后,啟動(dòng)新的數(shù)據(jù)庫實(shí)例并將其作為新的從數(shù)據(jù)庫加入到主從式數(shù)據(jù)庫系統(tǒng)中。

      當(dāng)向新增加的從數(shù)據(jù)庫中進(jìn)行數(shù)據(jù)傳輸完畢后,為了將該新增加的從數(shù)據(jù)庫和該主從式數(shù)據(jù)庫系統(tǒng)建立相關(guān)聯(lián)系,真正投入使用,需要將該新增加的從數(shù)據(jù)庫啟動(dòng),并將其加入到主從式數(shù)據(jù)庫系統(tǒng)中。這里將該新增加的從數(shù)據(jù)庫加入到主從式數(shù)據(jù)庫中,需要在該主從式數(shù)據(jù)庫中的主庫中添加該新增加的從數(shù)據(jù)庫的相關(guān)信息,以及在該新增加的從數(shù)據(jù)庫中添加主數(shù)據(jù)庫的相關(guān)信息和相關(guān)的邏輯關(guān)系。

      可見,本發(fā)明可以提高主從式數(shù)據(jù)庫系統(tǒng)的擴(kuò)充速度,保證擴(kuò)充效率,保證數(shù)據(jù)庫系統(tǒng)的整體速度。

      為了進(jìn)一步提高主從式數(shù)據(jù)庫系統(tǒng)擴(kuò)充的效率,在本方的一個(gè)實(shí)施例中,不同于備份數(shù)據(jù)中的單線程傳輸數(shù)據(jù),步驟S120中的將鏡像庫中的數(shù)據(jù)傳輸?shù)狡渌?jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例中包括:將鏡像庫中的數(shù)據(jù)利用多線程傳輸?shù)狡渌?jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例中,進(jìn)一步節(jié)省數(shù)據(jù)傳輸?shù)臅r(shí)間,提高主從式數(shù)據(jù)庫系統(tǒng)擴(kuò)充的效率。

      進(jìn)一步地,為了實(shí)現(xiàn)數(shù)據(jù)的多線程傳輸,步驟S120中的將鏡像庫中的數(shù)據(jù)利用多線程傳輸?shù)狡渌?jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例中包括:將鏡像庫中的數(shù)據(jù)切分為N塊數(shù)據(jù),為了將切分后的數(shù)據(jù)進(jìn)行重新組合,對(duì)切分后的N塊數(shù)據(jù)進(jìn)行編號(hào);N為大于或等于2的自然數(shù)。然后啟動(dòng)N個(gè)線程分別傳輸N數(shù)據(jù)到其他節(jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例中,每個(gè)線程進(jìn)行一個(gè)數(shù)據(jù)塊的傳輸;最后在新的數(shù)據(jù)庫實(shí)例中根據(jù)各數(shù)據(jù)塊的編號(hào)將各數(shù)據(jù)塊進(jìn)行組合。

      例如,將一份數(shù)據(jù)切分成10塊,按順序編號(hào)為1、2、3、4、5、6、7、8、9、10;啟用10個(gè)線程分別傳輸編號(hào)1、編號(hào)2、編號(hào)3、編號(hào)4、編號(hào)5、編號(hào)6、編號(hào)7、編號(hào)8、編號(hào)9、編號(hào)10的數(shù)據(jù)塊,傳輸完成后,在新的數(shù)據(jù)庫實(shí)例中根據(jù)各數(shù)據(jù)塊的編號(hào),按照編號(hào)1、編號(hào)2、編號(hào)3、編號(hào)4、編號(hào)5、編號(hào)6、編號(hào)7、編號(hào)8、編號(hào)9、編號(hào)10將各數(shù)據(jù)塊進(jìn)行組合。

      從數(shù)據(jù)庫負(fù)責(zé)對(duì)主數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行備份以及負(fù)責(zé)數(shù)據(jù)查詢和數(shù)據(jù)讀取等操作。雖然創(chuàng)建鏡像庫進(jìn)行鏡像數(shù)據(jù)是可以實(shí)時(shí)進(jìn)行的,實(shí)時(shí)進(jìn)行數(shù)據(jù)的更新,但是在進(jìn)行鏡像庫中的數(shù)據(jù)傳輸?shù)臅r(shí)候,選定的從數(shù)據(jù)庫需要暫時(shí)停止寫入數(shù)據(jù)的操作,停止數(shù)據(jù)的更新,只可以進(jìn)行數(shù)據(jù)讀取的操作。為了在進(jìn)行鏡像庫中的數(shù)據(jù)傳輸?shù)臅r(shí)候使得選定的從數(shù)據(jù)庫的數(shù)據(jù)暫時(shí)停止寫入的操作,在進(jìn)行鏡像庫的數(shù)據(jù)開始傳輸數(shù)據(jù)之前需要啟動(dòng)從數(shù)據(jù)庫的讀取鎖,所以,在本發(fā)明的一個(gè)實(shí)施例中,圖1所示的方法進(jìn)一步包括:在該選定從數(shù)據(jù)庫所在節(jié)點(diǎn)的本地為該從數(shù)據(jù)庫創(chuàng)建一個(gè)鏡像庫之前,啟動(dòng)該選定從數(shù)據(jù)庫的數(shù)據(jù)讀取鎖,停止該選定的從數(shù)據(jù)庫的寫入數(shù)據(jù)的操作;在將鏡像庫中的數(shù)據(jù)傳輸完畢后,釋放該選定從數(shù)據(jù)庫的數(shù)據(jù)讀取鎖,恢復(fù)該選定的從數(shù)據(jù)庫的寫入數(shù)據(jù)的操作。

      從數(shù)據(jù)庫進(jìn)行更新和備份數(shù)據(jù)的時(shí)候是通過獲取主數(shù)據(jù)庫的相應(yīng)的主從同步日志,然后根據(jù)主從同步日志進(jìn)行數(shù)據(jù)的更新。但是鏡像庫的數(shù)據(jù)傳輸時(shí)是需要啟動(dòng)選定的從數(shù)據(jù)庫的讀取鎖的,不會(huì)把新更新的數(shù)據(jù)也傳輸?shù)叫碌膹臄?shù)據(jù)庫中,也就是說將鏡像庫中的數(shù)據(jù)傳輸?shù)叫碌膹臄?shù)據(jù)庫中之后,新的從數(shù)據(jù)庫中的數(shù)據(jù)是不包含在傳輸數(shù)據(jù)這段時(shí)間中新更新的數(shù)據(jù)的,為了使得新的從數(shù)據(jù)庫的數(shù)據(jù)可以獲取到新更新的數(shù)據(jù),在本發(fā)明的一個(gè)實(shí)施例中,上述方法進(jìn)一步包括:獲取該選定從數(shù)據(jù)庫在啟動(dòng)該選定從數(shù)據(jù)庫的數(shù)據(jù)讀取鎖至釋放該選定從數(shù)據(jù)庫的數(shù)據(jù)讀取鎖的時(shí)間段內(nèi)的主從同步日志;根據(jù)主從同步日志,將主數(shù)據(jù)庫的數(shù)據(jù)同步到新的從數(shù)據(jù)庫中。

      圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種擴(kuò)充主從式數(shù)據(jù)庫系統(tǒng)的裝置的結(jié)構(gòu)示意圖。如圖2所示,該擴(kuò)充主從式數(shù)據(jù)庫系統(tǒng)的裝置包括:

      鏡像單元210,適于選定主從式數(shù)據(jù)庫系統(tǒng)中的一個(gè)從數(shù)據(jù)庫,在該選定從數(shù)據(jù)庫所在節(jié)點(diǎn)的本地為該從數(shù)據(jù)庫創(chuàng)建一個(gè)鏡像庫。

      在主從式數(shù)據(jù)庫系統(tǒng)中選定一個(gè)從數(shù)據(jù)庫,這里的選定可以是在主從式數(shù)據(jù)庫中堆積選擇一個(gè),也可以指定一個(gè)從數(shù)據(jù)庫;然后對(duì)選定的從數(shù)據(jù)庫中的數(shù)據(jù)創(chuàng)建一個(gè)鏡像庫,因?yàn)閺臄?shù)據(jù)庫的數(shù)據(jù)是對(duì)主數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行備份,就相當(dāng)于將該數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)創(chuàng)建了一個(gè)鏡像庫。在創(chuàng)建鏡像庫時(shí)的時(shí)候,在該選定從數(shù)據(jù)庫所在節(jié)點(diǎn)的本地為該從數(shù)據(jù)庫創(chuàng)建是指在數(shù)據(jù)庫系統(tǒng)的本地創(chuàng)建鏡像庫或者在選定的從數(shù)據(jù)庫的本地創(chuàng)建鏡像庫。例如,從數(shù)據(jù)庫的數(shù)據(jù)占用的資源空間為1T,而從數(shù)據(jù)庫總共的資源空間是3T,從數(shù)據(jù)庫的本地可以提供鏡像庫所需要的1T資源空間,那么只要在該從數(shù)據(jù)庫本地創(chuàng)建鏡像庫即可。在本地進(jìn)行創(chuàng)建鏡像庫的速度非???,消耗的時(shí)間與備份數(shù)據(jù)到非本地的數(shù)據(jù)存儲(chǔ)的時(shí)間相比大大減少。

      數(shù)據(jù)傳輸單元220,適于將鏡像庫中的數(shù)據(jù)傳輸?shù)狡渌?jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例中。

      這里其他節(jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例就是指新增加的從數(shù)據(jù)庫,因?yàn)閺臄?shù)據(jù)庫的數(shù)據(jù)是是對(duì)主數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行備份,所以,新增加的從數(shù)據(jù)庫投入使用時(shí)需要將主數(shù)據(jù)庫中已存在的數(shù)據(jù)傳輸?shù)叫略黾拥膹臄?shù)據(jù)庫中。上一單元中,已經(jīng)創(chuàng)建了數(shù)據(jù)的鏡像庫,所以,只需要將將鏡像庫中的數(shù)據(jù)傳輸?shù)狡渌?jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例中,即新增加的從數(shù)據(jù)庫中。

      擴(kuò)充單元230,適于在數(shù)據(jù)傳輸單元將鏡像庫中的數(shù)據(jù)傳輸完畢后,啟動(dòng)新的數(shù)據(jù)庫實(shí)例并將其作為新的從數(shù)據(jù)庫加入到主從式數(shù)據(jù)庫系統(tǒng)中。

      當(dāng)向新增加的從數(shù)據(jù)庫中進(jìn)行數(shù)據(jù)傳輸完畢后,為了將該新增加的從數(shù)據(jù)庫和該主從式數(shù)據(jù)庫系統(tǒng)建立相關(guān)聯(lián)系,真正投入使用,需要將該新增加的從數(shù)據(jù)庫啟動(dòng),并將其加入到主從式數(shù)據(jù)庫系統(tǒng)中。這里將該新增加的從數(shù)據(jù)庫加入到主從式數(shù)據(jù)庫中,需要在該主從式數(shù)據(jù)庫中的主庫中添加該新增加的從數(shù)據(jù)庫的相關(guān)信息,以及在該新增加的從數(shù)據(jù)庫中添加主數(shù)據(jù)庫的相關(guān)信息和相關(guān)的邏輯關(guān)系。

      可見,本發(fā)明可以提高主從式數(shù)據(jù)庫系統(tǒng)的擴(kuò)充速度,保證擴(kuò)充效率,保證數(shù)據(jù)庫系統(tǒng)的整體速度。

      為了進(jìn)一步提高主從式數(shù)據(jù)庫系統(tǒng)擴(kuò)充的效率,在本方的一個(gè)實(shí)施例中,不同于備份數(shù)據(jù)中的單線程傳輸數(shù)據(jù),數(shù)據(jù)傳輸單元220,適于將鏡像庫中的數(shù)據(jù)利用多線程傳輸?shù)狡渌?jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例中,進(jìn)一步節(jié)省數(shù)據(jù)傳輸?shù)臅r(shí)間,提高主從式數(shù)據(jù)庫系統(tǒng)擴(kuò)充的效率。

      進(jìn)一步地,為了實(shí)現(xiàn)數(shù)據(jù)的多線程傳輸,數(shù)據(jù)傳輸單元220,適于將鏡像庫中的數(shù)據(jù)切分為N塊數(shù)據(jù),為了將切分后的數(shù)據(jù)進(jìn)行重新組合,對(duì)切分后的N塊數(shù)據(jù)進(jìn)行編號(hào);N為大于或等于2的自然數(shù)。然后啟動(dòng)N個(gè)線程分別傳輸N數(shù)據(jù)到其他節(jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例中,每個(gè)線程進(jìn)行一個(gè)數(shù)據(jù)塊的傳輸;最后在新的數(shù)據(jù)庫實(shí)例中根據(jù)各數(shù)據(jù)塊的編號(hào)將各數(shù)據(jù)塊進(jìn)行組合。

      例如,將一份數(shù)據(jù)切分成10塊,按順序編號(hào)為1、2、3、4、5、6、7、8、9、10;啟用10個(gè)線程分別傳輸編號(hào)1、編號(hào)2、編號(hào)3、編號(hào)4、編號(hào)5、編號(hào)6、編號(hào)7、編號(hào)8、編號(hào)9、編號(hào)10的數(shù)據(jù)塊,傳輸完成后,在新的數(shù)據(jù)庫實(shí)例中根據(jù)各數(shù)據(jù)塊的編號(hào),按照編號(hào)1、編號(hào)2、編號(hào)3、編號(hào)4、編號(hào)5、編號(hào)6、編號(hào)7、編號(hào)8、編號(hào)9、編號(hào)10將各數(shù)據(jù)塊進(jìn)行組合。

      從數(shù)據(jù)庫負(fù)責(zé)對(duì)主數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行備份以及負(fù)責(zé)數(shù)據(jù)查詢和數(shù)據(jù)讀取等操作。雖然創(chuàng)建鏡像庫進(jìn)行鏡像數(shù)據(jù)是可以實(shí)時(shí)進(jìn)行的,實(shí)時(shí)進(jìn)行數(shù)據(jù)的更新,但是在進(jìn)行鏡像庫中的數(shù)據(jù)傳輸?shù)臅r(shí)候,選定的從數(shù)據(jù)庫需要暫時(shí)停止寫入數(shù)據(jù)的操作,停止數(shù)據(jù)的更新,只可以進(jìn)行數(shù)據(jù)讀取的操作。為了在進(jìn)行鏡像庫中的數(shù)據(jù)傳輸?shù)臅r(shí)候使得選定的從數(shù)據(jù)庫的數(shù)據(jù)暫時(shí)停止寫入的操作,在進(jìn)行鏡像庫的數(shù)據(jù)開始傳輸數(shù)據(jù)之前需要啟動(dòng)從數(shù)據(jù)庫的讀取鎖,所以,在本發(fā)明的一個(gè)實(shí)施例中,鏡像單元210,進(jìn)一步適于在該選定從數(shù)據(jù)庫所在節(jié)點(diǎn)的本地為該從數(shù)據(jù)庫做一個(gè)鏡像庫之前,啟動(dòng)該選定從數(shù)據(jù)庫的數(shù)據(jù)讀取鎖,停止該選定的從數(shù)據(jù)庫的寫入數(shù)據(jù)的操作;以及適于在數(shù)據(jù)傳輸單元將鏡像庫中的數(shù)據(jù)傳輸完畢后,釋放該選定從數(shù)據(jù)庫的數(shù)據(jù)讀取鎖,恢復(fù)該選定的從數(shù)據(jù)庫的寫入數(shù)據(jù)的操作。

      圖3示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的一種擴(kuò)充主從式數(shù)據(jù)庫系統(tǒng)的裝置的結(jié)構(gòu)示意圖。如圖3所示,該擴(kuò)充主從式數(shù)據(jù)庫系統(tǒng)的裝置300包括:鏡像單元310、數(shù)據(jù)傳輸單元320、擴(kuò)充單元330和數(shù)據(jù)同步單元340。其中,鏡像單元310、數(shù)據(jù)傳輸單元320、擴(kuò)充單元330和圖2所示的鏡像單元210、數(shù)據(jù)傳輸單元220、擴(kuò)充單元230具有對(duì)應(yīng)相同的功能,相同的部分在此不再贅述。

      從數(shù)據(jù)庫進(jìn)行更新和備份數(shù)據(jù)的時(shí)候是通過獲取主數(shù)據(jù)庫的相應(yīng)的主從同步日志,然后根據(jù)主從同步日志進(jìn)行數(shù)據(jù)的更新。但是鏡像庫的數(shù)據(jù)傳輸時(shí)是需要啟動(dòng)選定的從數(shù)據(jù)庫的讀取鎖的,不會(huì)把新更新的數(shù)據(jù)也傳輸?shù)叫碌膹臄?shù)據(jù)庫中,也就是說將鏡像庫中的數(shù)據(jù)傳輸?shù)叫碌膹臄?shù)據(jù)庫中之后,新的從數(shù)據(jù)庫中的數(shù)據(jù)是不包含在傳輸數(shù)據(jù)這段時(shí)間中新更新的數(shù)據(jù)的,為了使得新的從數(shù)據(jù)庫的數(shù)據(jù)可以獲取到新更新的數(shù)據(jù),數(shù)據(jù)同步單元340,適于獲取該選定從數(shù)據(jù)庫在啟動(dòng)該選定從數(shù)據(jù)庫的數(shù)據(jù)讀取鎖至釋放該選定從數(shù)據(jù)庫的數(shù)據(jù)讀取鎖的時(shí)間段內(nèi)的主從同步日志;以及根據(jù)主從同步日志,將主數(shù)據(jù)庫的數(shù)據(jù)同步到新的從數(shù)據(jù)庫中。

      綜上所述,根據(jù)本發(fā)明的技術(shù)方案,選定主從式數(shù)據(jù)庫系統(tǒng)中的一個(gè)從數(shù)據(jù)庫后,在該選定從數(shù)據(jù)庫所在節(jié)點(diǎn)的本地為該從數(shù)據(jù)庫創(chuàng)建一個(gè)鏡像庫,提高數(shù)據(jù)備份的速度;然后將鏡像庫中的數(shù)據(jù)傳輸?shù)狡渌?jié)點(diǎn)上的一個(gè)新的數(shù)據(jù)庫實(shí)例中;在將鏡像庫中的數(shù)據(jù)傳輸完畢后,啟動(dòng)新的數(shù)據(jù)庫實(shí)例并將其作為新的從數(shù)據(jù)庫加入到所述主從式數(shù)據(jù)庫系統(tǒng)中,這樣就可以完成一個(gè)主從式數(shù)據(jù)庫的擴(kuò)充??梢姡景l(fā)明可以提高主從式數(shù)據(jù)庫系統(tǒng)的擴(kuò)充速度,保證擴(kuò)充效率,保證數(shù)據(jù)庫系統(tǒng)的整體速度。

      需要說明的是:

      在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬裝置或者其它設(shè)備固有相關(guān)。各種通用裝置也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類裝置所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。

      在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。

      類似地,應(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í)施例。

      本領(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è)特征可以由提供相同、等同或相似目的的替代特征來代替。

      此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。

      本發(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í)施例的擴(kuò)充主從式數(shù)據(jù)庫系統(tǒng)的裝置中的一些或者全部部件的一些或者全部功能。本發(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)上提供,或者以任何其他形式提供。

      應(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)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1