數(shù)據(jù)庫的備份方法及備份裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,具體而言,本發(fā)明涉及一種數(shù)據(jù)庫的備份方法及備份裝置。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)應(yīng)用的迅速發(fā)展,人們對獲取信息的正確性和及時性的要求也越來越高。數(shù)據(jù)庫系統(tǒng)是目前存儲數(shù)據(jù)、檢索信息最為方便高效的手段,絕大多數(shù)企業(yè)都將信息存儲在數(shù)據(jù)庫中。目前數(shù)據(jù)庫系統(tǒng)的趨勢是由小型化向大型化、集中式向分布式發(fā)展,在分布式數(shù)據(jù)庫中,數(shù)據(jù)同步技術(shù)可以確保分布在不同地點的數(shù)據(jù)自動同步更新,從而保證數(shù)據(jù)的一致性。
[0003]但是,數(shù)據(jù)庫在任何時間點都有可能發(fā)生數(shù)據(jù)丟失或崩潰,現(xiàn)有主從數(shù)據(jù)庫構(gòu)架的數(shù)據(jù)庫系統(tǒng)中,包括一個主數(shù)據(jù)庫及多個從數(shù)據(jù)庫,當從數(shù)據(jù)庫服務(wù)器發(fā)生故障時,需要將主數(shù)據(jù)庫中的全部數(shù)據(jù)重新傳輸至從數(shù)據(jù)庫中進行數(shù)據(jù)恢復(fù),數(shù)據(jù)恢復(fù)過程耗時較長,增加服務(wù)端運維成本。
[0004]因此,需要實現(xiàn)一種主從數(shù)據(jù)庫架構(gòu)方案,確保當從數(shù)據(jù)庫發(fā)生故障后能夠在不影響前端數(shù)據(jù)業(yè)務(wù)的情況下將故障數(shù)據(jù)庫的數(shù)據(jù)快速修復(fù),在不增加數(shù)據(jù)庫服務(wù)器維護成本的同時,達到數(shù)據(jù)庫的高穩(wěn)定性和高業(yè)務(wù)連續(xù)性的設(shè)計目的。
【發(fā)明內(nèi)容】
[0005]為克服上述技術(shù)問題或者至少部分地解決上述技術(shù)問題,特提出以下技術(shù)方案:
[0006]本發(fā)明的實施例提出了一種數(shù)據(jù)庫的備份方法,應(yīng)用于主-從結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)的從數(shù)據(jù)庫,所述方法包括:
[0007]當接收到主數(shù)據(jù)庫的數(shù)據(jù)同步請求時,解析所述數(shù)據(jù)同步請求中的數(shù)據(jù)操作命令,執(zhí)行所述數(shù)據(jù)操作命令并在同步日志中記錄所述數(shù)據(jù)操作命令對應(yīng)的信息;
[0008]以預(yù)定的備份頻率,將所述從數(shù)據(jù)庫的同步日志備份至本地磁盤中,以生成備份曰志。
[0009]其中,所述數(shù)據(jù)操作命令對應(yīng)的信息包括所述數(shù)據(jù)操作命令及與所述數(shù)據(jù)同步請求相應(yīng)的標識信息。
[0010]其中,與所述數(shù)據(jù)同步請求相應(yīng)的標識信息,包括但不限于:
[0011]所述數(shù)據(jù)同步請求的時間信息;
[0012]所述數(shù)據(jù)同步請求的請求ID;
[0013]在所述從數(shù)據(jù)庫中執(zhí)行所述數(shù)據(jù)操作命令的時間信息;
[0014]在所述從數(shù)據(jù)庫中執(zhí)行所述數(shù)據(jù)操作命令的執(zhí)行ID。
[0015]優(yōu)選地,以預(yù)定的備份頻率,將所述從數(shù)據(jù)庫的同步日志備份至本地磁盤中,具體包括但不限于以下任一項情形:
[0016]依據(jù)預(yù)定的時間間隔,將所述從數(shù)據(jù)庫的同步日志備份至本地磁盤中;或
[0017]依據(jù)預(yù)定的數(shù)據(jù)操作的條目數(shù),將所述從數(shù)據(jù)庫的同步日志備份至本地磁盤中。
[0018]優(yōu)選地,當所述從數(shù)據(jù)庫重新加載時,該方法還包括:
[0019]基于所述備份日志,對所述從數(shù)據(jù)庫進行數(shù)據(jù)恢復(fù);
[0020]將所述備份日志中記錄的最后一條數(shù)據(jù)操作命令對應(yīng)的標識信息,與所述主數(shù)據(jù)庫中數(shù)據(jù)操作命令的標識信息進行對比,確定同步偏移量;
[0021 ]將所述主數(shù)據(jù)中與所述同步偏移量對應(yīng)的數(shù)據(jù)操作命令同步至所述從數(shù)據(jù)庫中。
[0022]優(yōu)選地,所述同步日志是二進制日志binlog。
[0023]優(yōu)選地,所述從數(shù)據(jù)庫為內(nèi)存型數(shù)據(jù)庫。
[0024]本發(fā)明的另一實施例提出了一種數(shù)據(jù)庫的備份裝置,應(yīng)用于主-從結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)的從數(shù)據(jù)庫,所述備份裝置包括:
[0025]操作執(zhí)行模塊,用于當接收到主數(shù)據(jù)庫的數(shù)據(jù)同步請求時,解析所述數(shù)據(jù)同步請求中的數(shù)據(jù)操作命令,執(zhí)行所述數(shù)據(jù)操作命令并在同步日志中記錄所述數(shù)據(jù)操作命令對應(yīng)的信息;
[0026]備份模塊,用于以預(yù)定的備份頻率,將所述從數(shù)據(jù)庫的同步日志備份至本地磁盤中,以生成備份日志。
[0027]其中,所述數(shù)據(jù)操作命令對應(yīng)的信息包括所述數(shù)據(jù)操作命令及與所述數(shù)據(jù)同步請求相應(yīng)的標識信息。
[0028]其中,與所述數(shù)據(jù)同步請求相應(yīng)的標識信息,包括但不限于:
[0029]所述數(shù)據(jù)同步請求的時間信息;
[0030]所述數(shù)據(jù)同步請求的請求ID;
[0031 ]在所述從數(shù)據(jù)庫中執(zhí)行所述數(shù)據(jù)操作命令的時間信息;
[0032]在所述從數(shù)據(jù)庫中執(zhí)行所述數(shù)據(jù)操作命令的執(zhí)行ID。
[0033]優(yōu)選地,所述備份模塊具體用于包括但不限于以下任一項情形:
[0034]依據(jù)預(yù)定的時間間隔,將所述從數(shù)據(jù)庫的同步日志備份至本地磁盤中;或
[0035]依據(jù)預(yù)定的數(shù)據(jù)操作的條目數(shù),將所述從數(shù)據(jù)庫的同步日志備份至本地磁盤中。
[0036]優(yōu)選地,當所述從數(shù)據(jù)庫重新加載時,該備份裝置還包括:
[0037]恢復(fù)模塊,用于基于所述備份日志,對所述從數(shù)據(jù)庫進行數(shù)據(jù)恢復(fù);
[0038]偏移量確定模塊,用于將所述備份日志中記錄的最后一條數(shù)據(jù)操作命令對應(yīng)的標識信息,與所述主數(shù)據(jù)庫中數(shù)據(jù)操作命令的標識信息進行對比,確定同步偏移量;
[0039]同步模塊,用于將所述主數(shù)據(jù)中與所述同步偏移量對應(yīng)的數(shù)據(jù)操作命令同步至所述從數(shù)據(jù)庫中。
[°04°] 優(yōu)選地,所述同步日志是二進制日志binlog。
[0041 ]優(yōu)選地,所述從數(shù)據(jù)庫為內(nèi)存型數(shù)據(jù)庫。
[0042]本發(fā)明的實施例中,提出了一種數(shù)據(jù)庫的備份方案,通過建立從數(shù)據(jù)庫中數(shù)據(jù)的落盤備份方式,在從數(shù)據(jù)庫發(fā)生故障的情況下,可通過本地磁盤的備份日志實現(xiàn)從庫的快速數(shù)據(jù)恢復(fù),大大提高了數(shù)據(jù)恢復(fù)效率,從而保證了從數(shù)據(jù)庫的持續(xù)數(shù)據(jù)穩(wěn)定性,為在主數(shù)據(jù)庫發(fā)生故障時由與其同步運行的其它從數(shù)據(jù)庫服務(wù)器代替該故障主數(shù)據(jù)庫服務(wù)器提供讀寫訪問服務(wù),以滿足數(shù)據(jù)庫系統(tǒng)向前端業(yè)務(wù)提供連續(xù)性服務(wù)提供有力保障。本發(fā)明的實施例中,通過從數(shù)據(jù)庫數(shù)據(jù)的落盤備份、從數(shù)據(jù)庫數(shù)據(jù)重新加載時通過落盤的備份日志快速恢復(fù)備份數(shù)據(jù)以及基于備份日志中的相應(yīng)標識通過主數(shù)據(jù)庫實現(xiàn)快速數(shù)據(jù)補齊,可確保當從數(shù)據(jù)庫發(fā)生故障后能夠?qū)⒐收蠌臄?shù)據(jù)庫的數(shù)據(jù)快速修復(fù),避免了數(shù)據(jù)意外丟失,最終實現(xiàn)主從數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)高穩(wěn)定性和高業(yè)務(wù)連續(xù)性。
[0043]本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
【附圖說明】
[0044]本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變得明顯和容易理解,其中:
[0045]圖1為本發(fā)明中一個實施例的數(shù)據(jù)庫的備份方法的流程圖;
[0046]圖2為本發(fā)明中一個優(yōu)選實施例的數(shù)據(jù)庫的備份方法的流程圖;
[0047]圖3為本發(fā)明中另一實施例的數(shù)據(jù)庫的備份裝置的結(jié)構(gòu)示意圖;
[0048]圖4為本發(fā)明中另一優(yōu)選實施例的數(shù)據(jù)庫的備份裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0049]下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
[0050]本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個或多個其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當我們稱元件被“連接”或“耦接”到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“親接”可以包括無線連接或無線耦接。這里使用的措辭“和/或”包括一個或更多個相關(guān)聯(lián)的列出項的全部或任一單元和全部組合。
[0051]本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(包括技術(shù)術(shù)語和科學(xué)術(shù)語)