国产精品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>

      主備數(shù)據(jù)庫數(shù)據(jù)同步方法及裝置制造方法

      文檔序號(hào):6639672閱讀:402來源:國知局
      主備數(shù)據(jù)庫數(shù)據(jù)同步方法及裝置制造方法
      【專利摘要】本發(fā)明提供主備數(shù)據(jù)庫數(shù)據(jù)同步方法及裝置,所述方法應(yīng)用于高可用性HA存儲(chǔ)系統(tǒng)中的主節(jié)點(diǎn)上,包括:向備節(jié)點(diǎn)發(fā)送心跳報(bào)文,該心跳報(bào)文攜帶有預(yù)設(shè)數(shù)值或同步校驗(yàn)值,以使備節(jié)點(diǎn)根據(jù)同步校驗(yàn)值判定主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致;接收備節(jié)點(diǎn)發(fā)送的回復(fù)報(bào)文,該回復(fù)報(bào)文能夠指示主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致;當(dāng)該回復(fù)報(bào)文指示主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致時(shí),則停止發(fā)送心跳報(bào)文,將主數(shù)據(jù)庫的WAL文件發(fā)送到備節(jié)點(diǎn),以使備節(jié)點(diǎn)根據(jù)WAL文件對(duì)備數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。應(yīng)用本發(fā)明實(shí)施例可以減少主備數(shù)據(jù)庫數(shù)據(jù)同步所需的時(shí)間,并提高主備數(shù)據(jù)庫數(shù)據(jù)同步的效率。
      【專利說明】主備數(shù)據(jù)庫數(shù)據(jù)同步方法及裝置

      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及網(wǎng)絡(luò)通信【技術(shù)領(lǐng)域】,尤其涉及主備數(shù)據(jù)庫數(shù)據(jù)同步方法及裝置。

      【背景技術(shù)】
      [0002]隨著網(wǎng)絡(luò)通信技術(shù)的不斷發(fā)展,越來越多的前端數(shù)據(jù)需要存儲(chǔ)。為了提高前端數(shù)據(jù)存儲(chǔ)的可靠性,一般采用主、備存儲(chǔ)設(shè)備進(jìn)行同步存儲(chǔ)的方式。如何同步主、備存儲(chǔ)設(shè)備各自的數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)則成了一個(gè)關(guān)鍵問題。
      [0003]現(xiàn)有技術(shù)中,主、備存儲(chǔ)設(shè)備各自的數(shù)據(jù)庫的同步過程一般為:當(dāng)主、備存儲(chǔ)設(shè)備正常運(yùn)行時(shí),將存儲(chǔ)數(shù)據(jù)寫入主存儲(chǔ)設(shè)備的主數(shù)據(jù)庫中,并實(shí)時(shí)地通過數(shù)據(jù)庫相關(guān)技術(shù),比如:流復(fù)制技術(shù),寫入備存儲(chǔ)設(shè)備的備數(shù)據(jù)庫中;當(dāng)主、備存儲(chǔ)設(shè)備發(fā)生故障時(shí)則會(huì)出現(xiàn)主、備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致的情況,當(dāng)上述故障排除后,需要備份主數(shù)據(jù)庫的整個(gè)數(shù)據(jù)目錄,生成整個(gè)數(shù)據(jù)包文件,并使用rsync或scp拷貝該數(shù)據(jù)包文件到備存儲(chǔ)設(shè)備對(duì)應(yīng)目錄下,并通知備存儲(chǔ)設(shè)備導(dǎo)入新的數(shù)據(jù)文件,從而完成同步。其中,rsync是類unix操作系統(tǒng)下的一種數(shù)據(jù)鏡像備份工具,scp是文件復(fù)制的命令,可以在不同的Linux操作系統(tǒng)之間復(fù)制文件。
      [0004]但是,隨著主數(shù)據(jù)庫中數(shù)據(jù)的不斷增加,數(shù)據(jù)庫文件會(huì)不斷增大,導(dǎo)致從主存儲(chǔ)設(shè)備同步數(shù)據(jù)庫到備存儲(chǔ)設(shè)備的時(shí)間會(huì)不斷增加,從而影響前端業(yè)務(wù)。


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

      [0005]本發(fā)明提供主備數(shù)據(jù)庫數(shù)據(jù)同步方法及裝置,以解決現(xiàn)有技術(shù)中隨著主數(shù)據(jù)庫中數(shù)據(jù)的不斷增加,數(shù)據(jù)庫文件會(huì)不斷增大,導(dǎo)致從主存儲(chǔ)設(shè)備同步數(shù)據(jù)庫到備存儲(chǔ)設(shè)備的時(shí)間會(huì)不斷增加,從而影響前端業(yè)務(wù)的問題。
      [0006]根據(jù)本發(fā)明實(shí)施例的第一方面,提供一種主備數(shù)據(jù)庫數(shù)據(jù)同步方法,所述方法應(yīng)用于高可用性HA存儲(chǔ)系統(tǒng)中的主節(jié)點(diǎn)上,所述主節(jié)點(diǎn)與所述HA存儲(chǔ)系統(tǒng)中的備節(jié)點(diǎn)相連接,所述主節(jié)點(diǎn)包括主數(shù)據(jù)庫,所述備節(jié)點(diǎn)包括備數(shù)據(jù)庫,所述方法包括:
      [0007]向備節(jié)點(diǎn)發(fā)送心跳報(bào)文,所述心跳報(bào)文攜帶有預(yù)設(shè)數(shù)值或同步校驗(yàn)值,以使所述備節(jié)點(diǎn)根據(jù)所述同步校驗(yàn)值判定所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致;
      [0008]接收所述備節(jié)點(diǎn)發(fā)送的所述心跳報(bào)文的回復(fù)報(bào)文,所述回復(fù)報(bào)文能夠指示所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致;
      [0009]當(dāng)所述回復(fù)報(bào)文指示所述主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致時(shí),則停止發(fā)送所述心跳報(bào)文,將所述主數(shù)據(jù)庫的WAL文件發(fā)送到備節(jié)點(diǎn),以使所述備節(jié)點(diǎn)根據(jù)所述WAL文件對(duì)所述備數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。
      [0010]根據(jù)本發(fā)明實(shí)施例的第二方面,提供一種主備數(shù)據(jù)庫數(shù)據(jù)同步方法,所述方法應(yīng)用于高可用性HA存儲(chǔ)系統(tǒng)中的備節(jié)點(diǎn)上,所述備節(jié)點(diǎn)與所述HA存儲(chǔ)系統(tǒng)中的主節(jié)點(diǎn)相連接,所述主節(jié)點(diǎn)包括主數(shù)據(jù)庫,所述備節(jié)點(diǎn)包括備數(shù)據(jù)庫,所述方法包括:
      [0011]接收主節(jié)點(diǎn)發(fā)送的心跳報(bào)文;
      [0012]根據(jù)所述心跳報(bào)文中的同步校驗(yàn)值判定所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致,并根據(jù)判定結(jié)果生成回復(fù)報(bào)文;
      [0013]將所述回復(fù)報(bào)文發(fā)送至所述主節(jié)點(diǎn),所述回復(fù)報(bào)文能夠指示所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致,以使所述主節(jié)點(diǎn)根據(jù)所述回復(fù)報(bào)文的指示確定是否進(jìn)行數(shù)據(jù)同步;
      [0014]當(dāng)所述回復(fù)報(bào)文指示所述主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致時(shí),接收所述主節(jié)點(diǎn)發(fā)送的WAL文件,并根據(jù)所述WAL文件對(duì)所述備的數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。
      [0015]根據(jù)本發(fā)明實(shí)施例的第三方面,提供一種主備數(shù)據(jù)庫數(shù)據(jù)同步裝置,所述裝置應(yīng)用于高可用性HA存儲(chǔ)系統(tǒng)中的主節(jié)點(diǎn)上,所述主節(jié)點(diǎn)與所述HA存儲(chǔ)系統(tǒng)中的備節(jié)點(diǎn)相連接,所述主節(jié)點(diǎn)包括主數(shù)據(jù)庫,所述備節(jié)點(diǎn)包括備數(shù)據(jù)庫,所述裝置包括:
      [0016]發(fā)送單元,用于向備節(jié)點(diǎn)發(fā)送心跳報(bào)文,所述心跳報(bào)文攜帶有預(yù)設(shè)數(shù)值或同步校驗(yàn)值,以使所述備節(jié)點(diǎn)根據(jù)所述同步校驗(yàn)值判定所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致;
      [0017]接收單元,用于接收所述備節(jié)點(diǎn)發(fā)送的所述心跳報(bào)文的回復(fù)報(bào)文,所述回復(fù)報(bào)文能夠指示所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致;
      [0018]同步單元,用于當(dāng)所述回復(fù)報(bào)文指示所述主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致時(shí),則停止發(fā)送所述心跳報(bào)文,將所述主數(shù)據(jù)庫的WAL文件發(fā)送到備節(jié)點(diǎn),以使所述備節(jié)點(diǎn)根據(jù)所述WAL文件對(duì)所述備數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。
      [0019]根據(jù)本發(fā)明實(shí)施例的第四方面,提供一種主備數(shù)據(jù)庫數(shù)據(jù)同步裝置,所述裝置應(yīng)用于高可用性HA存儲(chǔ)系統(tǒng)中的備節(jié)點(diǎn)上,所述備節(jié)點(diǎn)與所述HA存儲(chǔ)系統(tǒng)中的主節(jié)點(diǎn)相連接,所述主節(jié)點(diǎn)包括主數(shù)據(jù)庫,所述備節(jié)點(diǎn)包括備數(shù)據(jù)庫,所述裝置包括:
      [0020]接收單元,用于接收主節(jié)點(diǎn)發(fā)送的心跳報(bào)文;
      [0021]判定單元,用于根據(jù)所述心跳報(bào)文中的同步校驗(yàn)值判定所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致,并根據(jù)判定結(jié)果生成回復(fù)報(bào)文;
      [0022]發(fā)送單元,用于將所述回復(fù)報(bào)文發(fā)送至所述主節(jié)點(diǎn),所述回復(fù)報(bào)文能夠指示所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致,以使所述主節(jié)點(diǎn)根據(jù)所述回復(fù)報(bào)文的指示確定是否進(jìn)行數(shù)據(jù)同步;
      [0023]同步單元,用于當(dāng)所述回復(fù)報(bào)文指示所述主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致時(shí),接收所述主節(jié)點(diǎn)發(fā)送的WAL文件,并根據(jù)所述WAL文件對(duì)所述備的數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。
      [0024]應(yīng)用本發(fā)明實(shí)施例,主節(jié)點(diǎn)定時(shí)向備節(jié)點(diǎn)發(fā)送心跳報(bào)文,以使備節(jié)點(diǎn)根據(jù)心跳報(bào)文中的同步校驗(yàn)值判定主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致,并返回回復(fù)報(bào)文,當(dāng)一致時(shí),主節(jié)點(diǎn)只保留兩個(gè)最新的WAL文件,當(dāng)不一致時(shí),將最新的兩個(gè)WAL文件發(fā)送至備數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步,從而保證了主數(shù)據(jù)庫和備數(shù)據(jù)庫保持同步,大大減少對(duì)前端業(yè)務(wù)的影響,而且數(shù)據(jù)同步不是對(duì)整個(gè)數(shù)據(jù)庫進(jìn)行同步,而是對(duì)最新的兩個(gè)WAL文件進(jìn)行數(shù)據(jù)同步,減少了主備數(shù)據(jù)庫數(shù)據(jù)同步所需的時(shí)間,提高了主備數(shù)據(jù)庫數(shù)據(jù)同步的效率。

      【專利附圖】

      【附圖說明】
      [0025]圖1是應(yīng)用本發(fā)明實(shí)施例主備數(shù)據(jù)庫數(shù)據(jù)同步的應(yīng)用場景示意圖;
      [0026]圖2是本發(fā)明主備數(shù)據(jù)庫數(shù)據(jù)同步方法的一個(gè)實(shí)施例流程圖;
      [0027]圖3是本發(fā)明主備數(shù)據(jù)庫數(shù)據(jù)同步方法的另一個(gè)實(shí)施例流程圖;
      [0028]圖4是本發(fā)明主備數(shù)據(jù)庫數(shù)據(jù)同步裝置所在設(shè)備的一種硬件結(jié)構(gòu)圖;
      [0029]圖5是本發(fā)明主備數(shù)據(jù)庫數(shù)據(jù)同步裝置的一個(gè)實(shí)施例框圖;
      [0030]圖6是本發(fā)明主備數(shù)據(jù)庫數(shù)據(jù)同步裝置的另一個(gè)實(shí)施例框圖。

      【具體實(shí)施方式】
      [0031 ] 為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明實(shí)施例中的技術(shù)方案,并使本發(fā)明實(shí)施例的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例中技術(shù)方案作進(jìn)一步詳細(xì)的說明。
      [0032]參見圖1,為應(yīng)用本發(fā)明實(shí)施例主備數(shù)據(jù)庫數(shù)據(jù)同步的應(yīng)用場景示意圖:
      [0033]圖1中示出了一種高可用性(High Available,HA)系統(tǒng)的組網(wǎng)架構(gòu)。如圖所示,HA存儲(chǔ)系統(tǒng)包括主節(jié)點(diǎn)和備節(jié)點(diǎn)。其中,HA是一種保持存儲(chǔ)業(yè)務(wù)在存儲(chǔ)系統(tǒng)出現(xiàn)異常時(shí)持續(xù)運(yùn)行,提高存儲(chǔ)系統(tǒng)業(yè)務(wù)可靠性的技術(shù)。該HA存儲(chǔ)系統(tǒng)使用HA技術(shù)可以提高前端業(yè)務(wù)運(yùn)行的可靠性。
      [0034]當(dāng)主節(jié)點(diǎn)為主存儲(chǔ)設(shè)備,備節(jié)點(diǎn)為備存儲(chǔ)設(shè)備時(shí),主存儲(chǔ)設(shè)備的數(shù)據(jù)庫和備存儲(chǔ)設(shè)備的數(shù)據(jù)庫也形成了主備關(guān)系,即主存儲(chǔ)設(shè)備的數(shù)據(jù)庫為主數(shù)據(jù)庫,備存儲(chǔ)設(shè)備的數(shù)據(jù)庫為備數(shù)據(jù)庫。主節(jié)點(diǎn)、備節(jié)點(diǎn)之間通過用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol,UDP)心跳報(bào)文進(jìn)行實(shí)時(shí)監(jiān)測,通過內(nèi)部網(wǎng)口完成主、備數(shù)據(jù)庫的數(shù)據(jù)同步。
      [0035]主節(jié)點(diǎn)、備節(jié)點(diǎn)正常運(yùn)行時(shí),前端業(yè)務(wù)寫入主數(shù)據(jù)庫的數(shù)據(jù)將實(shí)時(shí)通過數(shù)據(jù)庫相關(guān)技術(shù),比如,流復(fù)制技術(shù),寫入備數(shù)據(jù)庫中,從而保證主、備數(shù)據(jù)庫中所存儲(chǔ)的數(shù)據(jù)的一致性。其中,HA存儲(chǔ)系統(tǒng)中始終以主數(shù)據(jù)庫為依據(jù),備數(shù)據(jù)庫盡可能和主數(shù)據(jù)庫保持一致。
      [0036]當(dāng)主節(jié)點(diǎn)或備節(jié)點(diǎn)發(fā)生故障時(shí),則會(huì)出現(xiàn)主備數(shù)據(jù)庫數(shù)據(jù)不一致的情況,當(dāng)上述故障排除后,主備節(jié)點(diǎn)之間需要重新同步數(shù)據(jù),主、備數(shù)據(jù)庫的同步需要在兩個(gè)節(jié)點(diǎn)之間通過內(nèi)部網(wǎng)口進(jìn)行數(shù)據(jù)文件的拷貝。
      [0037]當(dāng)主、備節(jié)點(diǎn)配置HA機(jī)制后,主節(jié)點(diǎn)根據(jù)心跳發(fā)送時(shí)間間隔(interval)定時(shí)通過內(nèi)部網(wǎng)口發(fā)送UDP心跳報(bào)文,備節(jié)點(diǎn)后臺(tái)進(jìn)程定時(shí)接收主節(jié)點(diǎn)發(fā)送的UDP心跳報(bào)文。其中,心跳發(fā)送時(shí)間間隔(interval)小于主、備節(jié)點(diǎn)內(nèi)部網(wǎng)口一次網(wǎng)絡(luò)故障閃斷到網(wǎng)絡(luò)恢復(fù)正常的時(shí)間。
      [0038]主節(jié)點(diǎn)從HA配置完成開始,啟動(dòng)數(shù)據(jù)庫的預(yù)寫式日志(Write-ahead logging,WAL)機(jī)制,并設(shè)置WAL的大小,隨著前端業(yè)務(wù)不斷的改變數(shù)據(jù)庫數(shù)據(jù),主數(shù)據(jù)庫后臺(tái)機(jī)制不斷的生成指定大小的WAL文件,主數(shù)據(jù)庫的操作越頻繁,生成WAL文件的個(gè)數(shù)也會(huì)越多,WAL文件中保存了對(duì)應(yīng)時(shí)間段的主數(shù)據(jù)庫的全部操作。
      [0039]因此,本發(fā)明實(shí)施例的目的是保證主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)一致,當(dāng)不一致時(shí),主、備節(jié)點(diǎn)之間需要對(duì)不一致期間內(nèi)的數(shù)據(jù)進(jìn)行數(shù)據(jù)同步,尤其當(dāng)備節(jié)點(diǎn)出現(xiàn)故障并從故障中恢復(fù)過來時(shí),主、備節(jié)點(diǎn)之間需要對(duì)備節(jié)點(diǎn)出現(xiàn)故障期間內(nèi)未存儲(chǔ)的數(shù)據(jù)同步進(jìn)行數(shù)據(jù)同步。
      [0040]下面結(jié)合附圖對(duì)本發(fā)明主備數(shù)據(jù)庫數(shù)據(jù)同步的實(shí)施例進(jìn)行詳細(xì)描述。
      [0041]參見圖2,為本發(fā)明主備數(shù)據(jù)庫數(shù)據(jù)同步方法的一個(gè)實(shí)施例流程圖,該實(shí)施例從HA存儲(chǔ)系統(tǒng)中的主節(jié)點(diǎn)側(cè)進(jìn)行描述,該主節(jié)點(diǎn)與HA存儲(chǔ)系統(tǒng)中的備節(jié)點(diǎn)相連接,主節(jié)點(diǎn)包括主數(shù)據(jù)庫,備節(jié)點(diǎn)包括備數(shù)據(jù)庫,包括以下步驟:
      [0042]步驟210:向備節(jié)點(diǎn)發(fā)送心跳報(bào)文,該心跳報(bào)文攜帶有預(yù)設(shè)數(shù)值或同步校驗(yàn)值,以使備節(jié)點(diǎn)根據(jù)同步校驗(yàn)值判定主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致。
      [0043]本實(shí)施例中,向備節(jié)點(diǎn)發(fā)送的心跳報(bào)文包括第一心跳報(bào)文和第二心跳報(bào)文。
      [0044]其中,第一心跳報(bào)文攜帶有預(yù)設(shè)數(shù)值,比如:0x0。該預(yù)設(shè)數(shù)值是主節(jié)點(diǎn)和備節(jié)點(diǎn)事先協(xié)商好的,用于備節(jié)點(diǎn)根據(jù)該預(yù)設(shè)數(shù)值獲知主節(jié)點(diǎn)沒有出現(xiàn)故障。因?yàn)槿绻鞴?jié)點(diǎn)出現(xiàn)故障,將會(huì)導(dǎo)致正在運(yùn)行的前端業(yè)務(wù)不能正常運(yùn)行時(shí),則需要備節(jié)點(diǎn)立即接續(xù)主節(jié)點(diǎn)來執(zhí)行前端業(yè)務(wù)。
      [0045]第二心跳報(bào)文攜帶有同步校驗(yàn)值,該同步校驗(yàn)值和第一心跳報(bào)文的預(yù)設(shè)數(shù)值不同,而是主節(jié)點(diǎn)隨機(jī)生成的一個(gè)數(shù)值,比如:一個(gè)六位的隨機(jī)數(shù)0x183569,用于備節(jié)點(diǎn)根據(jù)該同步校驗(yàn)值判定主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致。
      [0046]本實(shí)施例中不限于上述隨機(jī)生成同步校驗(yàn)值這一種方法,還可以包括其他方法。本發(fā)明實(shí)施例中主要利用同步校驗(yàn)值判定主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致。至于對(duì)同步校驗(yàn)值的具體數(shù)值并不限制,只要保證生成的各個(gè)同步校驗(yàn)值不同即可。主節(jié)點(diǎn)生成的同步校驗(yàn)值寫入主數(shù)據(jù)庫中,并通過數(shù)據(jù)庫相關(guān)技術(shù),比如,流復(fù)制技術(shù)寫入備數(shù)據(jù)庫中。當(dāng)備節(jié)點(diǎn)接收攜帶有同步校驗(yàn)值的第二心跳報(bào)文后,會(huì)根據(jù)接收到的同步校驗(yàn)值在備數(shù)據(jù)庫中查詢,當(dāng)查詢到該同步校驗(yàn)值,則判定主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)一致;當(dāng)沒有查詢到該同步校驗(yàn)值,則判斷主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致,并根據(jù)判定結(jié)果生成需要發(fā)送至主節(jié)點(diǎn)的回復(fù)報(bào)文。
      [0047]另外,一般情況下,首先向備節(jié)點(diǎn)發(fā)送N次第一心跳報(bào)文后,隨機(jī)生成一個(gè)同步校驗(yàn)值,將該同步校驗(yàn)值保存在主數(shù)據(jù)庫中,并向備節(jié)點(diǎn)發(fā)送一次攜帶有該同步校驗(yàn)值的第二心跳報(bào)文,然后再發(fā)送N次第一心跳報(bào)文后,隨機(jī)生成另一個(gè)同步校驗(yàn)值,將該同步校驗(yàn)值保存在主數(shù)據(jù)庫中,并向備節(jié)點(diǎn)發(fā)送一次攜帶有該另一個(gè)同步校驗(yàn)值的第二心跳報(bào)文,以此類推,直至接收到備節(jié)點(diǎn)發(fā)送的回復(fù)報(bào)文指示判定主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致,則停止發(fā)送第一心跳報(bào)文和第二心跳報(bào)文。
      [0048]上述N次第一心跳報(bào)文和I次第二心跳報(bào)文交替進(jìn)行發(fā)送,其中,各個(gè)第一心跳報(bào)文攜帶有相同的預(yù)設(shè)數(shù)值,各個(gè)第二心跳報(bào)文攜帶有不同的同步校驗(yàn)值,同步校驗(yàn)值和預(yù)設(shè)數(shù)值不同。
      [0049]步驟220:接收備節(jié)點(diǎn)發(fā)送的針對(duì)心跳報(bào)文的回復(fù)報(bào)文,該回復(fù)報(bào)文能夠指示主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致。當(dāng)回復(fù)報(bào)文指示主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致時(shí),執(zhí)行步驟230 ;當(dāng)回復(fù)報(bào)文指示主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)一致時(shí),執(zhí)行步驟240。
      [0050]本實(shí)施例中,回復(fù)報(bào)文的形式有很多種,比如,用攜帶有Oxllll的回復(fù)報(bào)文來指示主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)一致,用遠(yuǎn)程報(bào)警信息指示主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致。本發(fā)明對(duì)回復(fù)報(bào)文的格式?jīng)]有限制,只要能夠指示主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致即可。
      [0051]步驟230:當(dāng)回復(fù)報(bào)文指示主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致時(shí),則停止發(fā)送心跳報(bào)文,將主數(shù)據(jù)庫的WAL文件發(fā)送到備節(jié)點(diǎn),以使備節(jié)點(diǎn)根據(jù)WAL文件對(duì)備數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。
      [0052]步驟240:當(dāng)回復(fù)報(bào)文指示主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)一致時(shí),根據(jù)主數(shù)據(jù)庫的WAL文件的生成時(shí)間,將最后生成的兩個(gè)WAL文件之外的WAL文件進(jìn)行刪除。
      [0053]本實(shí)施例中,主節(jié)點(diǎn)WAL文件中保存了對(duì)應(yīng)時(shí)間段的數(shù)據(jù)庫的全部操作。當(dāng)主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)一致時(shí),則只保留兩個(gè)最新的WAL文件,其他的WAL文件皆刪除。
      [0054]上述只保留兩個(gè)最新的WAL文件的原因是:WAL文件的生成時(shí)間和HA心跳機(jī)制中的心跳時(shí)間并無關(guān)聯(lián),最新的兩個(gè)WAL文件中包含了一段時(shí)間之內(nèi)主數(shù)據(jù)庫的全部操作。另外,主數(shù)據(jù)庫和備數(shù)據(jù)庫中的數(shù)據(jù)不一致由HA心跳機(jī)制定時(shí)檢測,一個(gè)WAL文件能保存的數(shù)據(jù)時(shí)間要比心跳時(shí)間的時(shí)間間隔長的多,但可能出現(xiàn)檢測到主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致時(shí),對(duì)應(yīng)時(shí)間段的數(shù)據(jù)剛好分布在最新兩個(gè)WAL文件中,因此需要兩個(gè)WAL文件。而且根據(jù)WAL文件的生成時(shí)間,保留時(shí)間最新的兩個(gè)WAL文件,因?yàn)椴灰恢碌臄?shù)據(jù)只保存在最新的兩個(gè)WAL文件中。
      [0055]可選的,在上述實(shí)施例中,所述方法還包括:
      [0056](I)接收備節(jié)點(diǎn)發(fā)送的故障恢復(fù)消息。
      [0057]本實(shí)施例中,當(dāng)備節(jié)點(diǎn)發(fā)生故障時(shí),不管主節(jié)點(diǎn)向備節(jié)點(diǎn)發(fā)送多少心報(bào)文,備節(jié)點(diǎn)也不會(huì)返回回復(fù)報(bào)文,則主數(shù)據(jù)庫保存的WAL文件也不會(huì)被刪除。一旦備節(jié)點(diǎn)排除故障即從故障中恢復(fù)過來,則此時(shí)備數(shù)據(jù)庫中的數(shù)據(jù)和主數(shù)據(jù)庫中的數(shù)據(jù)不一致,需要進(jìn)行數(shù)據(jù)同步,為此,備節(jié)點(diǎn)向主節(jié)點(diǎn)發(fā)送故障恢復(fù)消息,該故障恢復(fù)消息表明備節(jié)點(diǎn)可以正常工作,能夠同步主節(jié)點(diǎn)數(shù)據(jù)中的數(shù)據(jù)。
      [0058](2)根據(jù)故障恢復(fù)消息停止向備節(jié)點(diǎn)發(fā)送心跳報(bào)文,并將在備節(jié)點(diǎn)處于故障期間內(nèi)所存儲(chǔ)的所有WAL文件發(fā)送到備節(jié)點(diǎn),以使備節(jié)點(diǎn)根據(jù)接收到的WAL文件對(duì)所述備數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。
      [0059]本實(shí)施例中,在備節(jié)點(diǎn)處于故障期間內(nèi),主節(jié)點(diǎn)的前端業(yè)務(wù)一直運(yùn)行,其存儲(chǔ)的WAL文件一直在增加,當(dāng)接收到備節(jié)點(diǎn)的故障恢復(fù)消息后,需要把在備節(jié)點(diǎn)處于故障期間內(nèi)所存儲(chǔ)的所有WAL文件發(fā)送到備節(jié)點(diǎn)進(jìn)行數(shù)據(jù)同步。當(dāng)發(fā)送后,主節(jié)點(diǎn)刪除自身存儲(chǔ)在備節(jié)點(diǎn)處于故障期間內(nèi)所存儲(chǔ)的所有WAL文件。
      [0060]進(jìn)一步可選的,在上述實(shí)施例中,所述方法還包括:
      [0061](I)接收備節(jié)點(diǎn)發(fā)送的數(shù)據(jù)同步完成消息。
      [0062](2)根據(jù)數(shù)據(jù)同步完成消息繼續(xù)向備節(jié)點(diǎn)發(fā)送心跳報(bào)文。
      [0063]本實(shí)施例中,當(dāng)備節(jié)點(diǎn)完成數(shù)據(jù)同步后,則需要主節(jié)點(diǎn)重新發(fā)送心跳報(bào)文,備節(jié)點(diǎn)重新接收心跳報(bào)文,使得HA機(jī)制重新運(yùn)行。
      [0064]由上述實(shí)施例可見,主節(jié)點(diǎn)定時(shí)向備節(jié)點(diǎn)發(fā)送心跳報(bào)文,以使備節(jié)點(diǎn)根據(jù)心跳報(bào)文中的同步校驗(yàn)值判定主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致,并返回回復(fù)報(bào)文,當(dāng)一致時(shí),主節(jié)點(diǎn)只保留兩個(gè)最新的WAL文件,當(dāng)不一致時(shí),將最新的兩個(gè)WAL文件發(fā)送至備數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步,從而保證了主數(shù)據(jù)庫和備數(shù)據(jù)庫保持同步,大大減少對(duì)前端業(yè)務(wù)的影響,而且數(shù)據(jù)同步不是對(duì)整個(gè)數(shù)據(jù)庫進(jìn)行同步,而是對(duì)最新的兩個(gè)WAL文件進(jìn)行數(shù)據(jù)同步,減少了數(shù)據(jù)庫數(shù)據(jù)同步所需的時(shí)間,提高了主備數(shù)據(jù)庫數(shù)據(jù)同步的效率。
      [0065]參見圖3,為本發(fā)明主備數(shù)據(jù)庫數(shù)據(jù)同步方法的另一個(gè)實(shí)施例流程圖,該實(shí)施例從HA存儲(chǔ)系統(tǒng)中的備節(jié)點(diǎn)側(cè)進(jìn)行描述,該備節(jié)點(diǎn)與HA存儲(chǔ)系統(tǒng)中的主節(jié)點(diǎn)相連接,主節(jié)點(diǎn)包括主數(shù)據(jù)庫,備節(jié)點(diǎn)包括備數(shù)據(jù)庫,包括以下步驟:
      [0066]步驟310:接收主節(jié)點(diǎn)發(fā)送的心跳報(bào)文。
      [0067]本實(shí)施例中,接收到的主節(jié)點(diǎn)發(fā)送的心跳報(bào)文包括:第一心跳報(bào)文和第二心跳報(bào)文。其中,攜帶有預(yù)設(shè)數(shù)值的心跳報(bào)文為第一心跳報(bào)文,攜帶有同步校驗(yàn)值的心跳報(bào)文為第二心跳報(bào)文。預(yù)設(shè)數(shù)值是主節(jié)點(diǎn)和備節(jié)點(diǎn)事先協(xié)商的,根據(jù)預(yù)設(shè)數(shù)值獲知主節(jié)點(diǎn)正處于工作狀態(tài),沒有出現(xiàn)故障,然后將該第一心跳報(bào)文丟棄;當(dāng)攜帶有不是預(yù)設(shè)數(shù)值的心跳報(bào)文即為第二心跳報(bào)文,該不是預(yù)設(shè)數(shù)值的數(shù)值為同步校驗(yàn)值,根據(jù)該同步校驗(yàn)值可以判斷主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致。
      [0068]一般情況下,當(dāng)連續(xù)接收N次第一心跳報(bào)文后,接收攜帶有同步校驗(yàn)值的第二心跳報(bào)文,然后再連續(xù)接收N次第一心跳報(bào)文后,接收攜帶有另一同步校驗(yàn)值的第二心跳報(bào)文,以此類推,直至備節(jié)點(diǎn)根據(jù)同步校驗(yàn)值判定主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致時(shí),停止接收第一心跳報(bào)文和第二心跳報(bào)文,配合主節(jié)點(diǎn)進(jìn)行數(shù)據(jù)同步。
      [0069]步驟320:根據(jù)心跳報(bào)文中的同步校驗(yàn)值判定主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致,并根據(jù)判斷結(jié)果生成回復(fù)報(bào)文。
      [0070]可選地,根據(jù)同步校驗(yàn)值判定主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致的過程包括:
      [0071]在備數(shù)據(jù)庫中查詢接收到的同步校驗(yàn)值,當(dāng)查詢到該同步校驗(yàn)值,則判定結(jié)果為主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)一致;當(dāng)沒有查詢到所述同步校驗(yàn)值,則判定結(jié)果為主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致,并根據(jù)上述判定結(jié)果生成回復(fù)報(bào)文。該回復(fù)報(bào)文能夠指示主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致。
      [0072]另外,在上述查詢時(shí)可以在接收到心跳報(bào)文后進(jìn)行適當(dāng)延時(shí)后,再在備數(shù)據(jù)庫中查詢接收到的同步校驗(yàn)值,從而保證了寫入主數(shù)據(jù)庫中的同步校驗(yàn)值有充分的時(shí)間同步到備數(shù)據(jù)庫中。
      [0073]步驟330:將回復(fù)報(bào)文發(fā)送至主節(jié)點(diǎn)。該回復(fù)報(bào)文能夠指示主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致,以使主節(jié)點(diǎn)根據(jù)回復(fù)報(bào)文的指示確定是否進(jìn)行數(shù)據(jù)同步;
      [0074]步驟340:當(dāng)回復(fù)報(bào)文指示主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致時(shí),接收主節(jié)點(diǎn)發(fā)送的WAL文件,并根據(jù)WAL文件對(duì)備數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。其中,主節(jié)點(diǎn)發(fā)送的WAL文件是主數(shù)據(jù)庫保留的兩個(gè)最新的WAL文件。
      [0075]可選的,在上述實(shí)施例中,所述方法還包括:
      [0076](I)當(dāng)檢測到自身故障恢復(fù)時(shí),向所述主節(jié)點(diǎn)發(fā)送故障恢復(fù)消息;
      [0077](2)接收主節(jié)點(diǎn)發(fā)送的在備節(jié)點(diǎn)處于故障期間內(nèi)所存儲(chǔ)的所有WAL文件,并根據(jù)WAL文件對(duì)備的數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。
      [0078]本實(shí)施例中,當(dāng)備節(jié)點(diǎn)發(fā)生故障時(shí),盡管主節(jié)點(diǎn)還向備節(jié)點(diǎn)發(fā)送心報(bào)文,但備節(jié)點(diǎn)也不會(huì)返回回復(fù)報(bào)文。當(dāng)備節(jié)點(diǎn)排除故障即從故障中恢復(fù)過來,則需要進(jìn)行數(shù)據(jù)同步,為此,備節(jié)點(diǎn)向主節(jié)點(diǎn)發(fā)送故障恢復(fù)消息,該故障恢復(fù)消息表明備節(jié)點(diǎn)可以正常工作,能夠同步主節(jié)點(diǎn)數(shù)據(jù)中的數(shù)據(jù)。
      [0079]進(jìn)一步可選地,在上述實(shí)施例中,所述方法還包括:
      [0080]當(dāng)完成數(shù)據(jù)同步時(shí),向主節(jié)點(diǎn)發(fā)送同步完成消息,并繼續(xù)接收主節(jié)點(diǎn)發(fā)送的心跳報(bào)文。
      [0081]本實(shí)施例中,當(dāng)備節(jié)點(diǎn)完成數(shù)據(jù)同步后,則需要主節(jié)點(diǎn)重新發(fā)送心跳報(bào)文,備節(jié)點(diǎn)重新接收心跳報(bào)文,使得HA機(jī)制重新運(yùn)行。
      [0082]由上述實(shí)施例可見,備節(jié)點(diǎn)定時(shí)接收主節(jié)點(diǎn)發(fā)送的心跳報(bào)文,以使備節(jié)點(diǎn)根據(jù)心跳報(bào)文中的同步校驗(yàn)值判定主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致,并返回回復(fù)報(bào)文,當(dāng)不一致時(shí),接收主節(jié)點(diǎn)發(fā)送的最新的兩個(gè)WAL文件進(jìn)行數(shù)據(jù)同步,從而保證了主數(shù)據(jù)庫和備數(shù)據(jù)庫保持同步,大大減少對(duì)前端業(yè)務(wù)的影響,而且數(shù)據(jù)同步不是對(duì)整個(gè)數(shù)據(jù)庫進(jìn)行同步,而是對(duì)最新的兩個(gè)WAL文件進(jìn)行數(shù)據(jù)同步,減少了主備數(shù)據(jù)庫數(shù)據(jù)同步所需的時(shí)間,提高了主備數(shù)據(jù)庫數(shù)據(jù)同步的效率。
      [0083]與前述主備數(shù)據(jù)庫數(shù)據(jù)同步方法實(shí)施例相對(duì)應(yīng),本發(fā)明還提供了主備數(shù)據(jù)庫數(shù)據(jù)同步裝置的實(shí)施例。
      [0084]本發(fā)明主備數(shù)據(jù)庫數(shù)據(jù)同步裝置的實(shí)施例可以應(yīng)用在網(wǎng)絡(luò)設(shè)備上。裝置實(shí)施例可以通過軟件實(shí)現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為一個(gè)邏輯意義上的裝置,是通過其所在設(shè)備的處理器將非易失性存儲(chǔ)器中對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。從硬件層面而言,如圖4所示,為本發(fā)明主備數(shù)據(jù)庫數(shù)據(jù)同步裝置所在設(shè)備的一種硬件結(jié)構(gòu)圖,除了圖4所示的處理器、網(wǎng)絡(luò)接口、內(nèi)存以及非易失性存儲(chǔ)器之外,實(shí)施例中裝置所在的設(shè)備通常還可以包括其他硬件,如負(fù)責(zé)處理報(bào)文的轉(zhuǎn)發(fā)芯片等等;從硬件結(jié)構(gòu)上來講該設(shè)備還可能是分布式的設(shè)備,可能包括多個(gè)接口卡,以便在硬件層面進(jìn)行報(bào)文處理的擴(kuò)展。
      [0085]參見圖5,為本發(fā)明主備數(shù)據(jù)庫數(shù)據(jù)同步裝置的一個(gè)實(shí)施例框圖,所述裝置可以應(yīng)用HA存儲(chǔ)系統(tǒng)中的主節(jié)點(diǎn)上,所述主節(jié)點(diǎn)與所述HA存儲(chǔ)系統(tǒng)中的備節(jié)點(diǎn)相連接,所述主節(jié)點(diǎn)包括主數(shù)據(jù)庫,所述備節(jié)點(diǎn)包括備數(shù)據(jù)庫,所述裝置包括:發(fā)送單元51、接收單元52和同步單元53ο
      [0086]其中,發(fā)送單元51用于向備節(jié)點(diǎn)發(fā)送心跳報(bào)文,所述心跳報(bào)文攜帶有預(yù)設(shè)數(shù)值或同步校驗(yàn)值,以使所述備節(jié)點(diǎn)根據(jù)所述同步校驗(yàn)值判定所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致。
      [0087]接收單元52用于接收所述備節(jié)點(diǎn)發(fā)送的所述心跳報(bào)文的回復(fù)報(bào)文,所述回復(fù)報(bào)文能夠指示所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致。
      [0088]同步單元53用于當(dāng)所述回復(fù)報(bào)文指示所述主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致時(shí),則停止發(fā)送所述心跳報(bào)文,將所述主數(shù)據(jù)庫的WAL文件發(fā)送到備節(jié)點(diǎn),以使所述備節(jié)點(diǎn)根據(jù)所述WAL文件對(duì)所述備數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。
      [0089]在一個(gè)可選的實(shí)現(xiàn)方式中,所述裝置還可以包括:刪除單元(圖5中未標(biāo)出)。
      [0090]刪除單元用于當(dāng)所述回復(fù)報(bào)文指示所述主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)一致時(shí),根據(jù)主數(shù)據(jù)庫的WAL文件的生成時(shí)間,將最后生成的兩個(gè)WAL文件之外的WAL文件進(jìn)行刪除。
      [0091]在另一個(gè)可選的實(shí)現(xiàn)方式中,所述心跳報(bào)文包括第一心跳報(bào)文和第二心跳報(bào)文,所述發(fā)送單元51還用于向所述備節(jié)點(diǎn)發(fā)送所述第一心跳報(bào)文,所述第一心跳報(bào)文攜帶有所述預(yù)設(shè)數(shù)值,以使所述備節(jié)點(diǎn)根據(jù)所述預(yù)設(shè)數(shù)值獲知所述主節(jié)點(diǎn)沒有出現(xiàn)故障;當(dāng)連續(xù)發(fā)送N次所述第一心跳報(bào)文后,隨機(jī)生成一個(gè)同步校驗(yàn)值,將所述同步校驗(yàn)值保存在主數(shù)據(jù)庫中,并向所述備節(jié)點(diǎn)發(fā)送攜帶有所述同步校驗(yàn)值的第二心跳報(bào)文,以使所述備節(jié)點(diǎn)根據(jù)所述同步校驗(yàn)值判定所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致;其中,N次第一心跳報(bào)文和I次第二心跳報(bào)文交替進(jìn)行發(fā)送,各個(gè)第一心跳報(bào)文攜帶有相同的預(yù)設(shè)數(shù)值,各個(gè)第二心跳報(bào)文攜帶有不同的同步校驗(yàn)值,所述同步校驗(yàn)值和所述預(yù)設(shè)數(shù)值不同。
      [0092]在另一個(gè)可選的實(shí)現(xiàn)方式中,所述接收單元52還用于接收所述備節(jié)點(diǎn)發(fā)送的故障恢復(fù)消息;以及,所述同步單元53還用于根據(jù)所述故障恢復(fù)消息停止向所述備節(jié)點(diǎn)發(fā)送所述心跳報(bào)文,并將在所述備節(jié)點(diǎn)處于故障期間內(nèi)所存儲(chǔ)的所有WAL文件發(fā)送到所述備節(jié)點(diǎn),以使所述備節(jié)點(diǎn)根據(jù)所述WAL文件對(duì)所述備數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。
      [0093]在另一個(gè)可選的實(shí)現(xiàn)方式中,所述接收單元52還用于接收所述備節(jié)點(diǎn)發(fā)送的數(shù)據(jù)同步完成消息;以及,發(fā)送單元51還用于根據(jù)所述數(shù)據(jù)同步完成消息繼續(xù)向所述備節(jié)點(diǎn)發(fā)送所述心跳報(bào)文。
      [0094]參見圖6,為本發(fā)明主備數(shù)據(jù)庫數(shù)據(jù)同步裝置的另一個(gè)實(shí)施例框圖,所述裝置可以應(yīng)用HA存儲(chǔ)系統(tǒng)中的備節(jié)點(diǎn)上,所述備節(jié)點(diǎn)與所述HA存儲(chǔ)系統(tǒng)中的主節(jié)點(diǎn)相連接,所述主節(jié)點(diǎn)包括主數(shù)據(jù)庫,所述備節(jié)點(diǎn)包括備數(shù)據(jù)庫,所述裝置包括:接收單元61、判定單元62、發(fā)送單元63和同步單元64。
      [0095]其中,接收單元61用于接收主節(jié)點(diǎn)發(fā)送的心跳報(bào)文。
      [0096]判定單元62用于根據(jù)所述心跳報(bào)文中的同步校驗(yàn)值判定所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致,并根據(jù)判定結(jié)果生成回復(fù)報(bào)文。
      [0097]發(fā)送單元63用于將所述回復(fù)報(bào)文發(fā)送至所述主節(jié)點(diǎn),所述回復(fù)報(bào)文能夠指示所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致,以使所述主節(jié)點(diǎn)根據(jù)所述回復(fù)報(bào)文的指示確定是否進(jìn)行數(shù)據(jù)同步。
      [0098]同步單元64用于當(dāng)所述回復(fù)報(bào)文指示所述主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致時(shí),接收所述主節(jié)點(diǎn)發(fā)送的WAL文件,并根據(jù)所述WAL文件對(duì)備的數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。
      [0099]在一個(gè)可選的實(shí)現(xiàn)方式中,所述心跳報(bào)文包括第一心跳報(bào)文和第二心跳報(bào)文,所述接收單元61還用于接收所述主節(jié)點(diǎn)發(fā)送所述第一心跳報(bào)文,所述第一心跳報(bào)文攜帶有預(yù)設(shè)數(shù)值,根據(jù)所述預(yù)設(shè)數(shù)值獲知所述主節(jié)點(diǎn)沒有出現(xiàn)故障;當(dāng)連續(xù)接收N次所述第一心跳報(bào)文后,接收攜帶有同步校驗(yàn)值的第二心跳報(bào)文。
      [0100]在另一個(gè)可選的實(shí)現(xiàn)方式中,所述判定單元62還用于在所述備數(shù)據(jù)庫中查詢所述同步校驗(yàn)值,當(dāng)查詢到所述同步校驗(yàn)值,則判定結(jié)果為所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)一致,并根據(jù)所述判定結(jié)果生成回復(fù)報(bào)文;當(dāng)沒有查詢到所述同步校驗(yàn)值,則判定結(jié)果為所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致,并根據(jù)所述判定結(jié)果生成回復(fù)報(bào)文。
      [0101]在另一個(gè)可選的實(shí)現(xiàn)方式中,所述發(fā)送單元63還用于當(dāng)檢測到自身故障恢復(fù)時(shí),向所述主節(jié)點(diǎn)發(fā)送故障恢復(fù)消息。
      [0102]以及,同步單元64還用于接收所述主節(jié)點(diǎn)發(fā)送的在所述備節(jié)點(diǎn)處于故障期間內(nèi)所存儲(chǔ)的所有WAL文件,并根據(jù)所述WAL文件對(duì)備的數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。
      [0103]在另一個(gè)可選的實(shí)現(xiàn)方式中,所述發(fā)送單元63還用于當(dāng)完成數(shù)據(jù)同步時(shí),向所述主節(jié)點(diǎn)發(fā)送同步完成消息;以及,所述接收單元61還用于繼續(xù)接收所述主節(jié)點(diǎn)發(fā)送的所述心跳報(bào)文。
      [0104]上述裝置中各個(gè)單元的功能和作用的實(shí)現(xiàn)過程具體詳見上述方法中對(duì)應(yīng)步驟的實(shí)現(xiàn)過程,在此不再贅述。
      [0105]對(duì)于裝置實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本發(fā)明方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
      [0106]由上述實(shí)施例可見,主節(jié)點(diǎn)定時(shí)向備節(jié)點(diǎn)發(fā)送心跳報(bào)文,以使備節(jié)點(diǎn)根據(jù)心跳報(bào)文中的同步校驗(yàn)值判定主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致,并返回回復(fù)報(bào)文,當(dāng)一致時(shí),主節(jié)點(diǎn)只保留兩個(gè)最新的WAL文件,當(dāng)不一致時(shí),將最新的兩個(gè)WAL文件發(fā)送至備數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步,從而保證了主數(shù)據(jù)庫和備數(shù)據(jù)庫保持同步,大大減少對(duì)前端業(yè)務(wù)的影響,而且數(shù)據(jù)同步不是對(duì)整個(gè)數(shù)據(jù)庫進(jìn)行同步,而是對(duì)最新的兩個(gè)WAL文件進(jìn)行數(shù)據(jù)同步,減少了主備數(shù)據(jù)庫數(shù)據(jù)同步所需的時(shí)間,提高了主備數(shù)據(jù)庫數(shù)據(jù)同步的效率。
      [0107]本領(lǐng)域技術(shù)人員在考慮說明書及實(shí)踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實(shí)施方案。本申請旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本發(fā)明未公開的本【技術(shù)領(lǐng)域】中的公知常識(shí)或慣用技術(shù)手段。說明書和實(shí)施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權(quán)利要求指出。
      [0108]應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。
      【權(quán)利要求】
      1.一種主備數(shù)據(jù)庫數(shù)據(jù)同步方法,其特征在于,所述方法應(yīng)用于高可用性HA存儲(chǔ)系統(tǒng)中的主節(jié)點(diǎn)上,所述主節(jié)點(diǎn)與所述HA存儲(chǔ)系統(tǒng)中的備節(jié)點(diǎn)相連接,所述主節(jié)點(diǎn)包括主數(shù)據(jù)庫,所述備節(jié)點(diǎn)包括備數(shù)據(jù)庫,所述方法包括: 向備節(jié)點(diǎn)發(fā)送心跳報(bào)文,所述心跳報(bào)文攜帶有預(yù)設(shè)數(shù)值或同步校驗(yàn)值,以使所述備節(jié)點(diǎn)根據(jù)所述同步校驗(yàn)值判定所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致; 接收所述備節(jié)點(diǎn)發(fā)送的所述心跳報(bào)文的回復(fù)報(bào)文,所述回復(fù)報(bào)文能夠指示所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致; 當(dāng)所述回復(fù)報(bào)文指示所述主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致時(shí),則停止發(fā)送所述心跳報(bào)文,將所述主數(shù)據(jù)庫的預(yù)寫式日志W(wǎng)AL文件發(fā)送到備節(jié)點(diǎn),以使所述備節(jié)點(diǎn)根據(jù)所述WAL文件對(duì)所述備數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 當(dāng)所述回復(fù)報(bào)文指示所述主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)一致時(shí),根據(jù)所述主數(shù)據(jù)庫的WAL文件的生成時(shí)間,將最后生成的兩個(gè)WAL文件之外的WAL文件進(jìn)行刪除。
      3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述心跳報(bào)文包括第一心跳報(bào)文和第二心跳報(bào)文,所述向備節(jié)點(diǎn)發(fā)送心跳報(bào)文,所述心跳報(bào)文攜帶有預(yù)設(shè)數(shù)值或同步校驗(yàn)值具體包括: 向所述備節(jié)點(diǎn)發(fā)送所述第一心跳報(bào)文,所述第一心跳報(bào)文攜帶有所述預(yù)設(shè)數(shù)值,以使所述備節(jié)點(diǎn)根據(jù)所述預(yù)設(shè)數(shù)值獲知所述主節(jié)點(diǎn)沒有出現(xiàn)故障; 當(dāng)主節(jié)點(diǎn)連續(xù)發(fā)送N次所述第一心跳報(bào)文后,隨機(jī)生成一個(gè)同步校驗(yàn)值,將所述同步校驗(yàn)值保存在所述主數(shù)據(jù)庫中,并向所述備節(jié)點(diǎn)發(fā)送攜帶有所述同步校驗(yàn)值的第二心跳報(bào)文,以使所述備節(jié)點(diǎn)根據(jù)所述同步校驗(yàn)值判定所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致; 其中,N次第一心跳報(bào)文和I次第二心跳報(bào)文交替進(jìn)行發(fā)送,各個(gè)第一心跳報(bào)文攜帶有相同的預(yù)設(shè)數(shù)值,各個(gè)第二心跳報(bào)文攜帶有不同的同步校驗(yàn)值,所述同步校驗(yàn)值和所述預(yù)設(shè)數(shù)值不同。
      4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 接收所述備節(jié)點(diǎn)發(fā)送的故障恢復(fù)消息; 根據(jù)所述故障恢復(fù)消息停止向所述備節(jié)點(diǎn)發(fā)送所述心跳報(bào)文,并將在所述備節(jié)點(diǎn)處于故障期間內(nèi)所存儲(chǔ)的所有WAL文件發(fā)送到所述備節(jié)點(diǎn),以使所述備節(jié)點(diǎn)根據(jù)所述WAL文件對(duì)所述備數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。
      5.根據(jù)權(quán)利要求1、3、4任一項(xiàng)所述的方法,其特征在于,所述方法還包括: 接收所述備節(jié)點(diǎn)發(fā)送的數(shù)據(jù)同步完成消息; 根據(jù)所述數(shù)據(jù)同步完成消息繼續(xù)向所述備節(jié)點(diǎn)發(fā)送所述心跳報(bào)文。
      6.一種主備數(shù)據(jù)庫數(shù)據(jù)同步方法,其特征在于,所述方法應(yīng)用于高可用性HA系統(tǒng)中的備節(jié)點(diǎn)上,所述備節(jié)點(diǎn)與所述HA存儲(chǔ)系統(tǒng)中的主節(jié)點(diǎn)相連接,所述主節(jié)點(diǎn)包括主數(shù)據(jù)庫,所述備節(jié)點(diǎn)包括備數(shù)據(jù)庫,所述方法包括: 接收主節(jié)點(diǎn)發(fā)送的心跳報(bào)文; 根據(jù)所述心跳報(bào)文中的同步校驗(yàn)值判定所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致,并根據(jù)判定結(jié)果生成回復(fù)報(bào)文; 將所述回復(fù)報(bào)文發(fā)送至所述主節(jié)點(diǎn),所述回復(fù)報(bào)文能夠指示所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致,以使所述主節(jié)點(diǎn)根據(jù)所述回復(fù)報(bào)文的指示確定是否進(jìn)行數(shù)據(jù)同步; 當(dāng)所述回復(fù)報(bào)文指示所述主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致時(shí),接收所述主節(jié)點(diǎn)發(fā)送的WAL文件,并根據(jù)所述WAL文件對(duì)所述備數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。
      7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述心跳報(bào)文包括第一心跳報(bào)文和第二心跳報(bào)文,所述接收主節(jié)點(diǎn)發(fā)送的心跳報(bào)文具體包括: 接收所述主節(jié)點(diǎn)發(fā)送所述第一心跳報(bào)文,所述第一心跳報(bào)文攜帶有預(yù)設(shè)數(shù)值; 根據(jù)所述預(yù)設(shè)數(shù)值獲知所述主節(jié)點(diǎn)沒有出現(xiàn)故障; 當(dāng)連續(xù)接收N次所述第一心跳報(bào)文后,接收攜帶有同步校驗(yàn)值的第二心跳報(bào)文。
      8.根據(jù)權(quán)利要求6或7所述的方法,其特征在于,所述根據(jù)所述心跳報(bào)文中的同步校驗(yàn)值判定所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致,并根據(jù)判定結(jié)果生成回復(fù)報(bào)文具體包括: 在所述備數(shù)據(jù)庫中查詢所述同步校驗(yàn)值,當(dāng)查詢到所述同步校驗(yàn)值,則判定結(jié)果為所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)一致,并根據(jù)所述判定結(jié)果生成回復(fù)報(bào)文;當(dāng)沒有查詢到所述同步校驗(yàn)值,則判定結(jié)果為所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致,并根據(jù)所述判定結(jié)果生成回復(fù)報(bào)文。
      9.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述方法還包括: 當(dāng)檢測到自身故障恢復(fù)時(shí),向所述主節(jié)點(diǎn)發(fā)送故障恢復(fù)消息; 接收所述主節(jié)點(diǎn)發(fā)送的在所述備節(jié)點(diǎn)處于故障期間內(nèi)所存儲(chǔ)的所有WAL文件,并根據(jù)所述WAL文件對(duì)所述備數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。
      10.根據(jù)權(quán)利要求6至9任一項(xiàng)所述的方法,其特征在于,所述方法還包括: 當(dāng)完成數(shù)據(jù)同步時(shí),向所述主節(jié)點(diǎn)發(fā)送同步完成消息,并繼續(xù)接收所述主節(jié)點(diǎn)發(fā)送的所述心跳報(bào)文。
      11.一種主備數(shù)據(jù)庫數(shù)據(jù)同步裝置,其特征在于,所述裝置應(yīng)用于高可用性HA存儲(chǔ)系統(tǒng)中的主節(jié)點(diǎn),所述主節(jié)點(diǎn)與所述HA存儲(chǔ)系統(tǒng)中的備節(jié)點(diǎn)相連接,所述主節(jié)點(diǎn)包括主數(shù)據(jù)庫,所述備節(jié)點(diǎn)包括備數(shù)據(jù)庫,所述裝置包括: 發(fā)送單元,用于向備節(jié)點(diǎn)發(fā)送心跳報(bào)文,所述心跳報(bào)文攜帶有預(yù)設(shè)數(shù)值或同步校驗(yàn)值,以使所述備節(jié)點(diǎn)根據(jù)所述同步校驗(yàn)值判定所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致; 接收單元,用于接收所述備節(jié)點(diǎn)發(fā)送的所述心跳報(bào)文的回復(fù)報(bào)文,所述回復(fù)報(bào)文能夠指示所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致; 同步單元,用于當(dāng)所述回復(fù)報(bào)文指示所述主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致時(shí),則停止發(fā)送所述心跳報(bào)文,將所述主數(shù)據(jù)庫的WAL文件發(fā)送到備節(jié)點(diǎn),以使所述備節(jié)點(diǎn)根據(jù)所述WAL文件對(duì)所述備數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。
      12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述裝置還包括: 刪除單元,用于當(dāng)所述回復(fù)報(bào)文指示所述主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)一致時(shí),根據(jù)所述主數(shù)據(jù)庫的WAL文件的生成時(shí)間,將最后生成的兩個(gè)WAL文件之外的WAL文件進(jìn)行刪除。
      13.根據(jù)權(quán)利要求11或12所述的裝置,其特征在于,所述心跳報(bào)文包括第一心跳報(bào)文和第二心跳報(bào)文,所述發(fā)送單元還用于向所述備節(jié)點(diǎn)發(fā)送所述第一心跳報(bào)文,所述第一心跳報(bào)文攜帶有所述預(yù)設(shè)數(shù)值,以使所述備節(jié)點(diǎn)根據(jù)所述預(yù)設(shè)數(shù)值獲知所述主節(jié)點(diǎn)沒有出現(xiàn)故障;當(dāng)連續(xù)發(fā)送N次所述第一心跳報(bào)文后,隨機(jī)生成一個(gè)同步校驗(yàn)值,將所述同步校驗(yàn)值保存在所述主數(shù)據(jù)庫中,并向所述備節(jié)點(diǎn)發(fā)送攜帶有所述同步校驗(yàn)值的第二心跳報(bào)文,以使所述備節(jié)點(diǎn)根據(jù)所述同步校驗(yàn)值判定所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致;其中,N次第一心跳報(bào)文和I次第二心跳報(bào)文交替進(jìn)行發(fā)送,各個(gè)第一心跳報(bào)文攜帶有相同的預(yù)設(shè)數(shù)值,各個(gè)第二心跳報(bào)文攜帶有不同的同步校驗(yàn)值,所述同步校驗(yàn)值和所述預(yù)設(shè)數(shù)值不同。
      14.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述接收單元還用于接收所述備節(jié)點(diǎn)發(fā)送的故障恢復(fù)消息; 以及,所述同步單元還用于根據(jù)所述故障恢復(fù)消息停止向所述備節(jié)點(diǎn)發(fā)送所述心跳報(bào)文,并將在所述備節(jié)點(diǎn)處于故障期間內(nèi)所存儲(chǔ)的所有WAL文件發(fā)送到所述備節(jié)點(diǎn),以使所述備節(jié)點(diǎn)根據(jù)所述WAL文件對(duì)所述備數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。
      15.根據(jù)權(quán)利要求11、13、14任一項(xiàng)所述的裝置,其特征在于,所述接收單元還用于接收所述備節(jié)點(diǎn)發(fā)送的數(shù)據(jù)同步完成消息; 以及,發(fā)送單元還用于根據(jù)所述數(shù)據(jù)同步完成消息繼續(xù)向所述備節(jié)點(diǎn)發(fā)送所述心跳報(bào)文。
      16.一種主備數(shù)據(jù)庫數(shù)據(jù)同步裝置,其特征在于,所述裝置應(yīng)用于高可用性HA存儲(chǔ)系統(tǒng)中的備節(jié)點(diǎn),所述備節(jié)點(diǎn)與所述HA存儲(chǔ)系統(tǒng)中的主節(jié)點(diǎn)相連接,所述主節(jié)點(diǎn)包括主數(shù)據(jù)庫,所述備節(jié)點(diǎn)包括備數(shù)據(jù)庫,所述裝置包括: 接收單元,用于接收主節(jié)點(diǎn)發(fā)送的心跳報(bào)文; 判定單元,用于根據(jù)所述心跳報(bào)文中的同步校驗(yàn)值判定所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致,并根據(jù)判定結(jié)果生成回復(fù)報(bào)文; 發(fā)送單元,用于將所述回復(fù)報(bào)文發(fā)送至所述主節(jié)點(diǎn),所述回復(fù)報(bào)文能夠指示所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)是否一致,以使所述主節(jié)點(diǎn)根據(jù)所述回復(fù)報(bào)文的指示確定是否進(jìn)行數(shù)據(jù)同步; 同步單元,用于當(dāng)所述回復(fù)報(bào)文指示所述主數(shù)據(jù)庫和備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致時(shí),接收所述主節(jié)點(diǎn)發(fā)送的WAL文件,并根據(jù)所述WAL文件對(duì)所述備的數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。
      17.根據(jù)權(quán)利要求16所述的裝置,其特征在于,所述心跳報(bào)文包括第一心跳報(bào)文和第二心跳報(bào)文,所述接收單元還用于接收所述主節(jié)點(diǎn)發(fā)送所述第一心跳報(bào)文,所述第一心跳報(bào)文攜帶有預(yù)設(shè)數(shù)值,根據(jù)所述預(yù)設(shè)數(shù)值獲知所述主節(jié)點(diǎn)沒有出現(xiàn)故障;當(dāng)連續(xù)接收N次所述第一心跳報(bào)文后,接收攜帶有同步校驗(yàn)值的第二心跳報(bào)文。
      18.根據(jù)權(quán)利要求16或17所述的裝置,其特征在于,所述判定單元還用于在所述備數(shù)據(jù)庫中查詢所述同步校驗(yàn)值,當(dāng)查詢到所述同步校驗(yàn)值,則判定結(jié)果為所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)一致,并根據(jù)所述判定結(jié)果生成回復(fù)報(bào)文;當(dāng)沒有查詢到所述同步校驗(yàn)值,則判定結(jié)果為所述主數(shù)據(jù)庫和所述備數(shù)據(jù)庫所存儲(chǔ)的數(shù)據(jù)不一致,并根據(jù)所述判定結(jié)果生成回復(fù)報(bào)文。
      19.根據(jù)權(quán)利要求16所述的裝置,其特征在于,所述發(fā)送單元還用于當(dāng)檢測到自身故障恢復(fù)時(shí),向所述主節(jié)點(diǎn)發(fā)送故障恢復(fù)消息; 以及,同步單元還用于接收所述主節(jié)點(diǎn)發(fā)送的在所述備節(jié)點(diǎn)處于故障期間內(nèi)所存儲(chǔ)的所有WAL文件,并根據(jù)所述WAL文件對(duì)所述備的數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。
      20.根據(jù)權(quán)利要求16至19任一項(xiàng)所述的裝置,其特征在于,所述發(fā)送單元還用于當(dāng)完成數(shù)據(jù)同步時(shí),向所述主節(jié)點(diǎn)發(fā)送同步完成消息; 以及,所述接收單元還用于繼續(xù)接收所述主節(jié)點(diǎn)發(fā)送的所述心跳報(bào)文。
      【文檔編號(hào)】G06F17/30GK104504062SQ201410805686
      【公開日】2015年4月8日 申請日期:2014年12月22日 優(yōu)先權(quán)日:2014年12月22日
      【發(fā)明者】張敏 申請人:浙江宇視科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1